Ứng Dụng Lý Thuyết Kiểm Thử Vào Hệ Thống Quản Lý Cấp Điện - Điện Lực Hải Phòng

Ứng dụng lý thuyết kiểm thử vào hệ thống quản lý cáp điện tại Điện lực Hải Phòng. Nâng cao hiệu quả, giảm thiểu rủi ro và tối ưu vận hành.

Trường đại học

Viện Đại học Mở Hà Nội

Chuyên ngành

Công nghệ thông tin

Người đăng

Ẩn danh

Thể loại

Đồ án tốt nghiệp

2015

146
2
0

Phí lưu trữ

35 Point

Mục lục chi tiết

LỜI CẢM ƠN

MỤC LỤC

MỞ ĐẦU

1. CHƯƠNG 1: TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM

1.1. Tổng quan về kiểm thử phần mềm

1.1.1. Khái niệm cơ bản về kiểm thử phần mềm

1.1.2. Một số thuật ngữ trong kiểm thử phần mềm

1.1.3. Vòng đời kiểm thử - Testing life cycle

1.1.4. Nguyên tắc kiểm thử phần mềm

1.1.5. Kế hoạch kiểm thử

1.2. Một số mô hình kiểm thử

1.2.1. Mô hình thác nước

1.2.2. Mô hình xoắn ốc

1.2.3. Mô hình agile

1.3. Các phương pháp kiểm thử

1.3.1. Kiểm thử tĩnh – Static testing

1.3.2. Kiểm thử động – Dynamic testing

1.4. Các kỹ thuật kiểm thử

1.4.1. Kiểm thử hộp đen – Black box testing

1.4.2. Kiểm thử hộp trắng – White box testing

1.4.3. Kiểm thử hộp xám

1.5. Các công cụ hỗ trợ kiểm thử

2. CHƯƠNG 2: CHẤT LƯỢNG PHẦN MỀM VÀ KIỂM THỬ PHẦN MỀM

2.1. Khái niệm về sản phẩm phần mềm

2.1.1. Thế nào là lỗi phần mềm

2.1.2. Tại sao lỗi phần mềm xuất hiện

2.1.3. Chi phí cho việc sửa lỗi

2.2. Chất lượng phần mềm

2.3. Vai trò của kiểm thử phần mềm

3. CHƯƠNG 3: CÁC CẤP ĐỘ KIỂM THỬ PHẦN MỀM

3.1. Kiểm thử đơn vị - Unit testing

3.2. Kiểm thử tích hợp – Integration testing

3.3. Kiểm thử hệ thống – System testing

3.4. Kiểm thử chấp nhận người dùng – Acceptance testing

3.5. Kiểm thử quy hồi

3.6. Một số cấp độ kiểm thử khác

4. CHƯƠNG 4: KIỂM THỬ MỘT WEBSITE

4.1. Giới thiệu chung

4.2. Thế nào là một ứng dụng web?

4.3. Tại sao cần kiểm thử một ứng dụng Website

4.4. Quy trình kiểm thử Website

4.4.1. Các bước trong một quy trình kiểm thử Website

4.4.2. Lập kế hoạch kiểm thử

4.4.3. Chuẩn bị dữ liệu kiểm thử

4.4.4. Chuẩn bị môi trường kiểm thử

4.4.5. Thực thi kiểm thử

4.4.6. Đánh giá kết quả kiểm thử

4.4.7. Những loại kiểm thử trong kiểm thử ứng dụng Web

5. CHƯƠNG 5: ỨNG DỤNG LÝ THUYẾT KIỂM THỬ VÀO HỆ THỐNG QUẢN LÝ CẤP ĐIỆN CÔNG TY TNHH MTV ĐIỆN LỰC HẢI PHÒNG

5.1. Phát biểu bài toán

5.2. Mô tả tổng quan

5.2.1. Tổng quan hệ thống

5.2.2. Yêu cầu chức năng

5.2.3. Mô tả chức năng chi tiết và biểu đồ dữ liệu

5.2.4. Danh sách các bảng

5.3. Đặc tả Service cung cấp cho hệ thống cấp điện

5.3.1. Lấy thông tin hồ sơ

5.3.2. Insert/ Update thông tin hồ sơ

5.3.3. Lấy thông tin danh mục trạm

5.3.4. Lấy thông tin danh mục vật tư

5.4. Kế hoạch kiểm thử hệ thống quản lý cấp điện công ty TNHH MTV Điện lực Hải Phòng

5.4.1. Giới thiệu chung

5.4.2. Công cụ test

5.4.3. Template testcase mẫu

TÀI LIỆU THAM KHẢO

Tóm tắt

I. Hướng Dẫn Toàn Diện Về Kiểm Thử Hệ Thống Quản Lý Cấp Điện

Kiểm thử hệ thống quản lý cấp điện là một quy trình kỹ thuật phức tạp, đóng vai trò nền tảng trong việc đảm bảo sự ổn định, an toàn và hiệu quả của toàn bộ lưới điện. Đây không chỉ là quá trình tìm lỗi đơn thuần mà là một hoạt động quản lý chất lượng toàn diện, từ khâu phân tích yêu cầu đến vận hành thực tế. Theo định nghĩa của Glen Myers trong “The Art of Software Testing”, kiểm thử là quá trình thực thi một chương trình với mục đích tìm ra lỗi, và một cuộc kiểm thử không phát hiện lỗi được xem là không thành công. Trong ngành điện lực, nơi mà một sai sót nhỏ có thể gây ra hậu quả nghiêm trọng, việc áp dụng một quy trình QA/QC hệ thống điện bài bản là yêu cầu bắt buộc. Quá trình này bao gồm nhiều giai đoạn và cấp độ, từ kiểm thử đơn vị (Unit Testing) các module phần mềm nhỏ nhất đến kiểm thử tích hợp hệ thống (SIT)kiểm thử chấp nhận người dùng (UAT). Mục tiêu cuối cùng là đảm bảo hệ thống quản lý cấp điện, dù là một Energy Management System (EMS) hay một Distribution Management System (DMS), đều phải đáp ứng chính xác các đặc tả kỹ thuật, yêu cầu nghiệp vụ và vận hành một cách tin cậy trong môi trường thực tế. Vòng đời kiểm thử, như được mô tả trong nhiều tài liệu học thuật, bắt đầu từ việc kiểm điểm yêu cầu, lập kế hoạch, thiết kế kịch bản, thiết lập môi trường, thực thi và cuối cùng là báo cáo, tạo thành một chu trình khép kín nhằm nâng cao chất lượng sản phẩm phần mềm điện lực.

1.1. Vai trò của xác minh và xác thực V V hệ thống điện

Trong lĩnh vực kỹ nghệ phần mềm cho ngành điện, hai khái niệm xác minh và xác thực (V&V) hệ thống điện là cốt lõi của đảm bảo chất lượng. Xác minh (Verification) là quá trình đảm bảo rằng sản phẩm phần mềm được xây dựng đúng theo đặc tả thiết kế. Nói cách khác, nó trả lời câu hỏi: "Chúng ta có xây dựng sản phẩm đúng cách không?". Ngược lại, xác thực (Validation) là quá trình đảm bảo sản phẩm đáp ứng được yêu cầu và mong đợi của người dùng cuối. Nó trả lời câu hỏi: "Chúng ta có xây dựng đúng sản phẩm không?". Trong thực tế, V&V là một quy trình song hành, trong đó xác minh thường được thực hiện trước để ngăn chặn lỗi giữa các công đoạn phát triển, còn xác thực tập trung vào sản phẩm cuối cùng. Việc áp dụng V&V hiệu quả giúp phát hiện sớm các sai lệch, giảm thiểu chi phí sửa lỗi và đảm bảo hệ thống quản lý điện năng hoạt động chính xác theo mục tiêu đề ra.

1.2. Tổng quan về vòng đời kiểm thử trong dự án điện lực

Vòng đời kiểm thử phần mềm (Software Testing Life Cycle - STLC) trong các dự án điện lực là một quy trình có cấu trúc chặt chẽ. Nó bao gồm các giai đoạn chính: Phân tích yêu cầu, Lập kế hoạch kiểm thử, Thiết kế kịch bản kiểm thử (Test Case Design), Thiết lập môi trường kiểm thử, Thực thi kiểm thử, và Báo cáo & Đóng chu trình kiểm thử. Mỗi giai đoạn đều có mục tiêu, đầu vào và đầu ra rõ ràng. Ví dụ, trong giai đoạn thiết kế, các kỹ sư sẽ xây dựng các kịch bản kiểm thử (test case) cho trạm biến áp hoặc các thành phần của lưới điện thông minh (Smart Grid). Giai đoạn thực thi sẽ chạy các kịch bản này để tìm lỗi và ghi nhận kết quả. Quy trình này đảm bảo rằng mọi khía cạnh của hệ thống, từ chức năng cơ bản đến hiệu năng và bảo mật, đều được kiểm tra một cách có hệ thống trước khi đưa vào vận hành.

1.3. Tầm quan trọng của QA QC hệ thống điện trong vận hành

Đảm bảo chất lượng (QA) và Kiểm soát chất lượng (QC) là hai hoạt động không thể tách rời. QA tập trung vào quy trình, đảm bảo các quy trình phát triển và kiểm thử được tuân thủ để ngăn ngừa lỗi. Trong khi đó, QC tập trung vào sản phẩm, thực hiện các hoạt động kiểm thử để xác định lỗi. Đối với QA/QC hệ thống điện, mục tiêu là đảm bảo độ tin cậy và tính sẵn sàng cao của hệ thống. Một hệ thống điều độ vận hành không ổn định có thể gây mất điện trên diện rộng, thiệt hại kinh tế và ảnh hưởng an ninh năng lượng. Do đó, việc đầu tư vào các hoạt động QA/QC, bao gồm cả kiểm định phần mềm quản lý điện năng, không chỉ là chi phí kỹ thuật mà còn là một khoản đầu tư chiến lược để giảm thiểu rủi ro vận hành.

II. Top Các Thách Thức Khi Kiểm Thử Hệ Thống Cấp Điện Hiện Đại

Việc kiểm thử hệ thống quản lý cấp điện trong bối cảnh hiện đại hóa và số hóa ngành điện phải đối mặt với nhiều thách thức to lớn. Thứ nhất, độ phức tạp của hệ thống ngày càng tăng. Các hệ thống hiện đại không còn là những ứng dụng độc lập mà là một hệ sinh thái kết nối chằng chịt giữa phần cứng và phần mềm, từ các thiết bị tại trạm biến áp, hệ thống SCADA, đến các phần mềm quản lý năng lượng cấp cao. Điều này đòi hỏi các phương pháp kiểm thử tích hợp hệ thống (SIT) phải cực kỳ tinh vi. Thứ hai, chi phí sửa lỗi tăng theo hàm mũ nếu chúng được phát hiện muộn. Theo nghiên cứu của Boehm, một lỗi được phát hiện ở giai đoạn vận hành có thể tốn kém gấp hàng trăm lần so với khi được phát hiện ở giai đoạn yêu cầu. Do đó, việc đánh giá rủi ro hệ thống điện và áp dụng kiểm thử sớm là cực kỳ quan trọng. Thứ ba, yêu cầu về an ninh mạng ngày càng trở nên cấp thiết. Các hệ thống điều khiển công nghiệp, vốn được thiết kế cho môi trường biệt lập, nay lại được kết nối với mạng ngoài, tạo ra các lỗ hổng bảo mật tiềm tàng. Cuối cùng, sự thiếu hụt các môi trường kiểm thử chuyên dụng có khả năng mô phỏng hệ thống điện một cách chính xác cũng là một rào cản lớn, khiến việc kiểm thử các kịch bản sự cố trở nên khó khăn và tốn kém.

2.1. Phân tích các rủi ro và chi phí sửa lỗi phần mềm điện lực

Chi phí sửa lỗi trong phần mềm điện lực là một yếu tố quan trọng cần được quản lý chặt chẽ. Như tài liệu nghiên cứu đã chỉ ra, "lỗi được phát hiện càng muộn thì chi phí cho việc sửa lỗi càng lớn". Một lỗi trong đặc tả yêu cầu nếu không được phát hiện sớm có thể lan truyền qua các giai đoạn thiết kế, lập trình và chỉ bộc lộ khi hệ thống đã vận hành, gây ra chi phí khắc phục khổng lồ. Việc tiến hành đánh giá rủi ro hệ thống điện ngay từ đầu dự án giúp xác định các khu vực có khả năng xảy ra lỗi cao. Qua đó, nguồn lực kiểm thử có thể được tập trung một cách hiệu quả, ưu tiên cho các chức năng quan trọng hoặc các module phức tạp, giúp tối ưu hóa chi phí và giảm thiểu tác động tiêu cực đến tiến độ dự án.

2.2. Vấn đề bảo mật hệ thống điều khiển công nghiệp ICS

An ninh mạng là thách thức hàng đầu đối với các hệ thống điện hiện đại. Bảo mật hệ thống điều khiển công nghiệp (ICS) và SCADA không còn là một lựa chọn mà là yêu cầu bắt buộc. Các hệ thống này điều khiển các hạ tầng thiết yếu, và bất kỳ sự xâm nhập nào cũng có thể gây ra hậu quả thảm khốc. Việc kiểm thử bảo mật cần phải được thực hiện một cách toàn diện, bao gồm kiểm tra thâm nhập (penetration testing), rà quét lỗ hổng, và đánh giá cấu hình an ninh. Các kịch bản tấn công cần được mô phỏng để đánh giá khả năng phòng thủ và phản ứng của hệ thống, đảm bảo tính toàn vẹn, tính bảo mật và tính sẵn sàng của hệ thống quản lý cấp điện trước các mối đe dọa từ không gian mạng.

2.3. Khó khăn trong kiểm thử tích hợp hệ thống SIT phức tạp

Hệ thống quản lý cấp điện là một tập hợp của nhiều hệ thống con giao tiếp với nhau, ví dụ như hệ thống SCADA, DMS, OMS, và các hệ thống của bên thứ ba. Kiểm thử tích hợp hệ thống (SIT) nhằm đảm bảo các thành phần này hoạt động trơn tru và trao đổi dữ liệu chính xác. Khó khăn chính nằm ở việc thiết lập một môi trường kiểm thử đầy đủ, mô phỏng được tất cả các giao diện và luồng dữ liệu. Các vấn đề về tương thích giao thức, đặc biệt là các giao thức chuyên ngành như giao thức IEC 61850, và sự khác biệt về định dạng dữ liệu thường là nguyên nhân chính gây ra lỗi tích hợp. Việc lập kế hoạch SIT cẩn thận và sử dụng các công cụ giả lập (simulator/emulator) là chìa khóa để vượt qua thách thức này.

III. Phương Pháp Kiểm Thử Hệ Thống Quản Lý Điện Năng Hiệu Quả

Để thực hiện việc kiểm thử hệ thống quản lý cấp điện một cách hiệu quả, cần áp dụng kết hợp nhiều phương pháp và kỹ thuật khác nhau. Các phương pháp này có thể được phân loại dựa trên việc có truy cập vào mã nguồn hay không, bao gồm kiểm thử hộp đen, hộp trắng và hộp xám. Kiểm thử hộp đen tập trung vào chức năng của hệ thống từ góc độ người dùng, không cần quan tâm đến cấu trúc bên trong. Đây là phương pháp chính để thực hiện kiểm định phần mềm quản lý điện năng theo yêu cầu nghiệp vụ. Ngược lại, kiểm thử hộp trắng đòi hỏi kiến thức về mã nguồn để kiểm tra các đường đi logic, các vòng lặp và điều kiện bên trong chương trình. Phương pháp này giúp phát hiện các lỗi tiềm ẩn mà kiểm thử hộp đen có thể bỏ sót. Ngoài ra, việc phân chia kiểm thử theo các cấp độ là rất quan trọng. Bắt đầu từ Kiểm thử đơn vị (Unit Test) do lập trình viên thực hiện, sau đó đến Kiểm thử tích hợp (Integration Test) để kiểm tra sự tương tác giữa các module. Cuối cùng là Kiểm thử hệ thống (System Test) để đánh giá toàn bộ hệ thống dựa trên các yêu cầu chức năng và phi chức năng như hiệu năng, độ tin cậy và bảo mật. Mỗi cấp độ có mục tiêu và phạm vi riêng, tạo thành một lưới phòng thủ nhiều lớp để đảm bảo chất lượng phần mềm.

3.1. Kỹ thuật kiểm thử hộp đen trong kiểm định phần mềm điện năng

Kiểm thử hộp đen (Black-box testing) là kỹ thuật kiểm thử dựa trên đặc tả yêu cầu mà không cần biết về cấu trúc mã nguồn bên trong. Các kỹ thuật phổ biến bao gồm phân vùng tương đương và phân tích giá trị biên. Trong kiểm định phần mềm quản lý điện năng, kỹ thuật này được sử dụng để xác minh rằng các chức năng như tính toán tổn thất, quản lý hồ sơ khách hàng, hay xuất báo cáo vận hành đều hoạt động chính xác. Người kiểm thử sẽ tạo ra các bộ dữ liệu đầu vào (hợp lệ và không hợp lệ) và kiểm tra xem kết quả đầu ra có khớp với kết quả mong đợi hay không. Đây là phương pháp hiệu quả để mô phỏng cách người dùng cuối tương tác với hệ thống và phát hiện các lỗi liên quan đến chức năng.

3.2. Áp dụng kiểm thử hộp trắng để phân tích mã nguồn hệ thống

Kiểm thử hộp trắng (White-box testing), hay kiểm thử cấu trúc, tập trung vào logic nội tại của phần mềm. Kỹ thuật này yêu cầu người kiểm thử phải có khả năng đọc và hiểu mã nguồn. Mục tiêu là đảm bảo rằng tất cả các câu lệnh, các nhánh rẽ (điều kiện if-else), và các vòng lặp trong chương trình đều được thực thi ít nhất một lần. Kỹ thuật đường diễn tiến (basis path testing) là một phương pháp phổ biến để xác định số lượng kịch bản kiểm thử tối thiểu cần thiết để bao phủ toàn bộ logic. Trong hệ thống quản lý điện, kiểm thử hộp trắng giúp tìm ra các lỗi logic tính toán phức tạp, các điều kiện xử lý ngoại lệ bị bỏ sót, hoặc các đoạn mã không bao giờ được thực thi (dead code).

3.3. Các cấp độ kiểm thử Từ Unit test đến System test

Quy trình kiểm thử được cấu trúc thành nhiều cấp độ. Kiểm thử đơn vị (Unit testing) là cấp độ đầu tiên, tập trung vào các đơn vị mã nguồn nhỏ nhất (hàm, phương thức). Kiểm thử tích hợp (Integration testing) kết hợp các đơn vị đã được kiểm thử và xác minh sự tương tác giữa chúng. Kiểm thử hệ thống (System testing) là bước kiểm tra toàn bộ hệ thống đã được tích hợp hoàn chỉnh để đảm bảo nó đáp ứng tất cả các yêu cầu. Cuối cùng, kiểm thử chấp nhận người dùng (UAT) được thực hiện bởi khách hàng hoặc người dùng cuối để xác nhận rằng hệ thống đáp ứng nhu cầu kinh doanh của họ. Việc tuân thủ các cấp độ này đảm bảo lỗi được phát hiện và sửa chữa ở giai đoạn sớm nhất có thể.

IV. Quy Trình Kiểm Thử Tự Động Hóa Lưới Điện Thông Minh Smart Grid

Sự phát triển của lưới điện thông minh (Smart Grid) đặt ra yêu cầu cao hơn về tốc độ, độ chính xác và phạm vi của hoạt động kiểm thử. Kiểm thử thủ công không còn đủ khả năng đáp ứng. Do đó, việc xây dựng một quy trình kiểm thử tự động hóa lưới điện là xu hướng tất yếu. Quy trình này bắt đầu bằng việc lựa chọn các công cụ kiểm thử tự động phù hợp, có khả năng tương tác với các giao thức chuyên dụng như DNP3 hay IEC 61850. Tiếp theo là việc xây dựng bộ kịch bản kiểm thử tự động. Các kịch bản này cần được thiết kế để có thể tái sử dụng, dễ bảo trì và bao phủ được các luồng nghiệp vụ quan trọng. Một phần quan trọng của quy trình là kiểm thử hiệu năng hệ thống điều độ, nhằm đảm bảo hệ thống có thể xử lý hàng triệu điểm dữ liệu từ các thiết bị thông minh trong thời gian thực mà không bị quá tải. Bên cạnh đó, kiểm thử hệ thống SCADA tự động giúp liên tục xác minh tính đúng đắn của việc thu thập dữ liệu và điều khiển thiết bị. Cuối cùng, việc tích hợp quy trình kiểm thử tự động vào chu trình phát triển phần mềm (CI/CD) giúp phát hiện lỗi sớm ngay khi có sự thay đổi trong mã nguồn, rút ngắn thời gian đưa sản phẩm ra thị trường và nâng cao chất lượng tổng thể.

4.1. Xây dựng kịch bản kiểm thử test case cho trạm biến áp

Trạm biến áp là trái tim của lưới điện. Việc xây dựng kịch bản kiểm thử (test case) cho trạm biến áp tự động hóa đòi hỏi sự hiểu biết sâu sắc về cả phần mềm và thiết bị. Các kịch bản cần bao phủ các chức năng chính như: thu thập dữ liệu từ các IED (Intelligent Electronic Devices), thực hiện lệnh đóng/cắt máy cắt từ xa, xử lý các tín hiệu cảnh báo và sự cố, và kiểm tra logic liên động bảo vệ. Dữ liệu kiểm thử cần mô phỏng các trạng thái vận hành khác nhau của lưới điện, từ bình thường đến quá tải hay ngắn mạch. Việc tự động hóa các kịch bản này giúp thực hiện kiểm thử hồi quy một cách nhanh chóng mỗi khi có sự thay đổi về phần mềm hoặc cấu hình hệ thống, đảm bảo sự ổn định và an toàn cho vận hành trạm.

4.2. Triển khai kiểm thử hiệu năng hệ thống điều độ và SCADA

Hiệu năng là yếu tố sống còn của hệ thống điều độ và SCADA. Kiểm thử hiệu năng hệ thống điều độ tập trung vào các chỉ số như thời gian phản hồi của hệ thống trước các lệnh điều khiển, khả năng xử lý đồng thời một lượng lớn dữ liệu đo lường, và mức độ sử dụng tài nguyên hệ thống (CPU, bộ nhớ). Các công cụ tạo tải được sử dụng để giả lập hàng ngàn thiết bị đầu cuối cùng gửi dữ liệu về trung tâm điều khiển, nhằm xác định điểm giới hạn của hệ thống. Tương tự, kiểm thử hệ thống SCADA về mặt hiệu năng đảm bảo rằng giao diện người vận hành (HMI) luôn được cập nhật dữ liệu một cách mượt mà và chính xác, ngay cả trong những tình huống căng thẳng nhất.

4.3. Tối ưu hóa quy trình quản lý lỗi bug tracking chuyên dụng

Một quy trình kiểm thử hiệu quả không thể thiếu hệ thống quản lý lỗi (bug tracking) chuyên nghiệp. Khi một lỗi được phát hiện, nó cần được ghi nhận vào hệ thống với đầy đủ thông tin: mô tả chi tiết, các bước tái hiện, mức độ ưu tiên, mức độ nghiêm trọng, và các ảnh chụp màn hình liên quan. Quy trình này đảm bảo rằng không có lỗi nào bị bỏ sót. Lỗi sau đó được gán cho lập trình viên để sửa chữa. Sau khi sửa xong, người kiểm thử sẽ tiến hành kiểm tra lại (re-test) và xác nhận. Việc tối ưu hóa quy trình này, ví dụ bằng cách tích hợp hệ thống bug tracking với các công cụ quản lý dự án và kiểm thử tự động, giúp tăng cường sự hợp tác giữa các nhóm và đẩy nhanh chu trình sửa lỗi.

V. Kinh Nghiệm Kiểm Thử Hệ Thống Quản Lý Điện Tại Điện Lực Hải Phòng

Đồ án "Ứng dụng lý thuyết kiểm thử vào hệ thống quản lý cấp điện Công ty TNHH MTV Điện lực Hải Phòng" cung cấp một ví dụ thực tiễn quý báu. Dự án này cho thấy việc áp dụng một cách có hệ thống các lý thuyết kiểm thử vào một dự án thực tế mang lại hiệu quả rõ rệt. Quá trình bắt đầu từ việc phát biểu bài toán, phân tích và mô tả tổng quan hệ thống, bao gồm các yêu cầu chức năng chi tiết cho các module như quản lý hồ sơ, quản lý dự toán, quản lý vật tư. Dựa trên các yêu cầu này, một kế hoạch kiểm thử chi tiết đã được xây dựng. Kế hoạch này không chỉ xác định phạm vi, chiến lược kiểm thử mà còn liệt kê các công cụ hỗ trợ và các mẫu test case cụ thể. Một trong những giai đoạn quan trọng nhất là kiểm thử chấp nhận người dùng (UAT), nơi các nhân viên của Điện lực Hải Phòng trực tiếp kiểm tra và xác nhận hệ thống đáp ứng đúng nhu-cầu nghiệp vụ của họ. Kinh nghiệm từ dự án này nhấn mạnh tầm quan trọng của việc lập kế hoạch kỹ lưỡng, xây dựng các kịch bản kiểm thử bám sát thực tế và sự tham gia chặt chẽ của người dùng cuối trong toàn bộ quá trình kiểm thử hệ thống quản lý cấp điện.

5.1. Mô tả bài toán và yêu cầu chức năng của hệ thống thực tế

Bài toán được đặt ra tại Điện lực Hải Phòng là xây dựng một hệ thống phần mềm để quản lý toàn bộ quy trình cấp điện mới, từ khâu tiếp nhận hồ sơ, khảo sát, lập dự toán, đến thi công và nghiệm thu. Hệ thống yêu cầu các chức năng chính bao gồm: Quản lý hồ sơ khách hàng, Quản lý dự toán cấp điện, Quản lý vật tư, Quản lý danh mục trạm, và các chức năng báo cáo, thống kê. Việc đặc tả chi tiết các yêu cầu chức năng này là đầu vào quan trọng nhất cho việc thiết kế các kịch bản kiểm thử. Mỗi chức năng được phân rã thành các trường hợp sử dụng (use case) cụ thể, làm cơ sở để xác định các luồng cần kiểm tra và các điều kiện đầu vào, đầu ra tương ứng.

5.2. Thực thi kiểm thử chấp nhận người dùng UAT và đánh giá

Kiểm thử chấp nhận người dùng (UAT) là giai đoạn cuối cùng trước khi hệ thống được chính thức đưa vào sử dụng. Tại Điện lực Hải Phòng, giai đoạn này được thực hiện bởi chính đội ngũ nhân viên sẽ vận hành hệ thống. Họ thực hiện các nghiệp vụ hàng ngày trên môi trường kiểm thử, sử dụng các kịch bản bám sát công việc thực tế. Mục tiêu là để xác nhận rằng phần mềm không chỉ hoạt động đúng về mặt kỹ thuật mà còn thực sự hữu ích, dễ sử dụng và phù hợp với quy trình làm việc của đơn vị. Các phản hồi thu thập được từ UAT là cực kỳ giá trị, giúp tinh chỉnh lại hệ thống lần cuối để đáp ứng tốt nhất mong đợi của người dùng.

5.3. Bài học từ việc mô phỏng hệ thống điện và kiểm thử tích hợp

Mặc dù tài liệu không đi sâu vào khía cạnh kỹ thuật mô phỏng, nhưng có thể suy ra rằng việc kiểm thử một hệ thống phức tạp như quản lý cấp điện đòi hỏi phải có một môi trường giả lập hiệu quả. Bài học rút ra là tầm quan trọng của việc chuẩn bị dữ liệu kiểm thử. Dữ liệu này phải đủ lớn và đa dạng để đại diện cho các tình huống thực tế, từ hồ sơ đơn giản đến các dự án cấp điện phức tạp. Hơn nữa, kiểm thử tích hợp hệ thống giữa các module (ví dụ, module dự toán phải lấy đúng dữ liệu từ module vật tư) là rất quan trọng để đảm bảo tính nhất quán của toàn bộ hệ thống. Bất kỳ sai sót nào trong quá trình tích hợp cũng có thể dẫn đến các quyết định sai lầm trong vận hành.

VI. Tương Lai Của Kiểm Thử Hệ Thống Điện Xu Hướng Và Thách Thức

Tương lai của kiểm thử hệ thống quản lý cấp điện gắn liền với các xu hướng công nghệ của ngành năng lượng. Sự bùng nổ của Internet vạn vật (IoT), trí tuệ nhân tạo (AI) và điện toán đám mây đang định hình lại cách thức lưới điện được vận hành và kiểm soát. Điều này tạo ra cả cơ hội và thách thức cho lĩnh vực kiểm thử. Một trong những xu hướng chính là việc áp dụng các tiêu chuẩn quốc tế như giao thức IEC 61850, đòi hỏi các công cụ và kỹ năng kiểm thử chuyên biệt để đảm bảo tính tương thích và liên tác giữa các thiết bị từ nhiều nhà sản xuất khác nhau. Thách thức lớn sẽ nằm ở việc kiểm thử các hệ thống ngày càng phức tạp như Energy Management System (EMS)Distribution Management System (DMS) thế hệ mới, vốn tích hợp các thuật toán tối ưu hóa và học máy. Việc xác minh tính đúng đắn của các thuật toán AI này sẽ là một bài toán khó. Hơn nữa, việc kiểm thử các hệ thống phân tán trên nền tảng đám mây sẽ yêu cầu các phương pháp mới để đánh giá hiệu năng, độ tin cậy và đặc biệt là bảo mật trong một môi trường chia sẻ. Tóm lại, các chuyên gia kiểm thử trong tương lai sẽ cần liên tục cập nhật kiến thức và kỹ năng để theo kịp tốc độ phát triển của công nghệ trong ngành điện.

6.1. Vai trò của giao thức IEC 61850 trong tự động hóa

Giao thức IEC 61850 là tiêu chuẩn quốc tế cho truyền thông trong trạm biến áp tự động. Nó không chỉ định nghĩa giao thức mà còn cả mô hình dữ liệu và cấu trúc hệ thống. Vai trò của nó là tạo ra một môi trường "cắm và chạy" (plug-and-play) cho các thiết bị thông minh (IEDs) trong trạm. Đối với kiểm thử, điều này có nghĩa là cần phải có các công cụ chuyên dụng để kiểm tra sự tuân thủ tiêu chuẩn của thiết bị, xác minh tính đúng đắn của các thông điệp GOOSE và SV (Sampled Values), và kiểm tra khả năng tương tác giữa các thiết bị của các hãng khác nhau. Việc kiểm thử dựa trên IEC 61850 là chìa khóa để đảm bảo sự thành công của các dự án tự động hóa trạm biến áp và lưới điện thông minh.

6.2. Thách thức trong Energy Management System EMS testing

Hệ thống quản lý năng lượng (EMS) là bộ não của trung tâm điều độ, chịu trách nhiệm tối ưu hóa việc sản xuất và truyền tải điện trên quy mô lớn. Thách thức trong Energy Management System (EMS) testing nằm ở độ phức tạp của các ứng dụng mạng điện cao cấp (Advanced Network Applications) như Ước tính trạng thái (State Estimation), Phân tích dự phòng (Contingency Analysis), hay Tối ưu phân bổ công suất (Optimal Power Flow). Việc kiểm thử các chức năng này đòi hỏi phải có các mô hình lưới điện chi tiết và chính xác để làm dữ liệu đầu vào. Hơn nữa, việc xác thực kết quả của các thuật toán tối ưu hóa này là không hề đơn giản, đòi hỏi chuyên gia phải có kiến thức sâu về hệ thống điện.

6.3. Tầm quan trọng của Distribution Management System DMS testing

Hệ thống quản lý lưới phân phối (DMS) ngày càng trở nên quan trọng với sự thâm nhập của năng lượng tái tạo phân tán (như điện mặt trời mái nhà) và các phương tiện điện. Distribution Management System (DMS) testing phải đảm bảo hệ thống có thể quản lý các luồng công suất hai chiều, tối ưu hóa điện áp (VVO), và tự động hóa việc xác định vị trí sự cố, cô lập và khôi phục cung cấp điện (FLISR). Việc kiểm thử phải bao gồm các kịch bản phức tạp với hàng ngàn điểm kết nối năng lượng tái tạo và phụ tải biến đổi. Tầm quan trọng của DMS testing nằm ở việc đảm bảo lưới điện phân phối có thể vận hành một cách ổn định, hiệu quả và tin cậy trong bối cảnh mới của ngành năng lượng.

22/09/2025

Trích đoạn nội dung tài liệu

Chương 1 TỔNG QUAN VỀ KIỂM THỬ PHẦN MỀM 1.1 Tổng quan về kiểm thử phần mềm 1.1 Khái niệm cơ bản về kiểm thử phần mềm Kiểm thử phần mềm là quá trình khảo sát một hệ thống hay thành phần dưới những điều kiện xác định, quan sát và ghi lại các kết quả, và đánh giá một khía cạnh nào đó của hệ thống hay thành phần đó. Kiểm thử phần mềm là quá trình thực thi một chương trình với mục đích tìm lỗi.(Theo Glen Myers – “ The Art of Software Testing” – Nghệ thuật kiểm thử phần mềm) Kiểm thử sẽ hiển thị những lỗi hiện có, nhưng không hiển thị những lỗi chưa thấy. Kiểm thử phần mềm là quá trình giám định dựa trên chất lượng sản phẩm hoặc dịch vụ sau khi tiến hành kiểm tra. Kiểm thử độc lập cho phép doanh nghiệp đánh giá mức độ rủi ro khi phát triển phần mềm.

Kỹ thuật kiểm thử bao gồm quá trình kiểm thử phần mềm và tìm lỗi. Kiểm thử phần mềm bao gồm quá trình kiểm tra và kiểm định để đảm bảo phần mềm đáp ứng nhu cầu người dùng, phần mềm chạy đúng chức năng. Có thể nói kiểm thử phần mềm có nhiều cách định nghĩa khác nhau. Tuy nhiên, tất cả đều thể hiện nội dung cơ bản chính là phát hiện lỗi và đánh giá chất lượng phần mềm, đồng thời nâng cao khả năng kiểm soát và hạn chế các lỗi xảy ra khi phát triển phần mềm ngay từ ban đầu, chứ không đơn thuần chỉ là việc tìm ra những lỗi sẵn có khi nhóm phát triển đã đưa ra những phiên bản cụ thể của phần mềm.

Và như GlenMyers đã nói thì kiểm thử mà không phát hiện được lỗi coi là không thành công. Kiểm thử phần mềm có thể được thực hiện ở bất kỳ giai đoạn nào trong phát triển phần mềm, phổ biến nhất là kiểm thử sau khi yêu cầu người dùng hoàn 2 thiện hoặc phần mềm vừa xong giai đoạn phát triển. Tuy nhiên, trong quy trình phát triển phần mềm theo kiểu Agile thì kiểm thử phần mềm là quy trình đi cùng với việc phát triển phần mềm.2 Một số thuật ngữ trong kiểm thử phần mềm Kiểm chứng và thẩm định: Kiểm chứng (verification) và thẩm định (validation) hay được dùng lẫn lộn, nhưng thực ra chúng có ý nghĩa khác nhau. Kiểm chứng là quá trình để đảm bảo rằng một sản phẩm phần mềm thỏa mãn đặc tả của nó.

Còn thẩm định là quá trình để đảm bảo rằng sản phẩm đáp ứng được yêu cầu của người dùng (khách hàng). Trong thực tế, chúng ta cần thực hiện kiểm chứng trước khi thực hiện việc thẩm định sản phẩm phần mềm. Vì vậy, chúng ta có thuật ngữ V&V (Verification &Validation). Lý do của việc này là chúng ta cần đảm bảo sản phẩm đúng với đặc tả trước.

Nếu thực hiện việc thẩm định trước, một khi phát hiện ra lỗi, chúng ta không thể xác định được lỗi này do đặc tả sai hay do lập trình sai so với đặc tả. - Thẩm tra (Verification): Thẩm tra là tiến trình nhằm xác định đầu ra của một công đoạn công viện phát triển phần mềm phù hợp với công đoạn trước đó. - Xác nhận( Validation): Xác nhận là tiền trình nhằm chỉ ra toàn hệ thống đã phát triển xong phù hợp với tài liệu mô tả yêu cầu. So sánh sự khác nhau giữa Thẩm tra và Xác nhận - Thẩm tra: Thẩm tra quan tâm đến việc ngăn chặn lỗi giữa các công đoạn - Xác nhận: Xác nhận quan tâm đến sản phẩm cuối cùng không còn lỗi Một sai sót (error): - Là một sự nhầm lẫn hay một sự hiểu sai trong quá trình phát triển phần mềm của người phát triển Một lỗi (fault, defect): - Xuất hiện trong phần mềm như là kết quả của một sai sót được phân loại như sau: 3 o Sai sót đưa ra thừa – chúng ta đưa một vài thứ không chính xác mô tả yêu cầu phần mềm.

o Sai sót do bỏ sót – Người thiết kế có thể gây sau sót do bỏ sót, kết quả là thiếu một số phần cần thiết có trong mô tả yêu cầu phần mềm. Hỏng hóc (failure): - Là kết quả của một lỗi xuất hiện làm cho chương trình không hoạt động được hay hoạt động nhưng cho kết quả không như mong đợi. Dữ liệu thử (test data): - Dữ liệu vào cần cung cấp cho phần mềm trong khi thực thi Kịch bản kiểm thử (test scenario): - Các bước thực hiện khi khi kiểm thử Phán xét kiểm thử (test oracle): đánh giá kết quả của kiểm thử bẳng 2 cách • Tự động: chương trình • Thủ công: con người Kiểm thử viên (tester): người thực hiện kiểm thử Trường hợp kiểm thử (test case): - Dữ liệu thử, điều kiện thực thi để có kết quả mong đợi. - Trường hợp kiểm thử được liên kết tương ứng với hoạt động của chương trình.

- Một trường hợp bao gồm một tập hợp các giá trị đầu vào và một danh sách các kết quả đầu ra mong muốn 1.3 Vòng đời kiểm thử - Testing life cycle Kiểm điểm yêu cầu: Người kiểm thử kiểm điểm yêu cầu phần mềm để dùng chúng và chắc rằng chúng là kiểm thử được. (Nếu chúng không kiểm thử được thì yêu cầu là mơ hồ và cần được xem lại); đây là một hoạt động quan trọng trong nguyên lí kĩ nghệ phần mềm chủ trương người kiểm thử phải tham gia sớm trong dự án phần mềm và làm việc chặt chẽ với các kĩ sư yêu cầu để chắc rằng các yêu cầu phần mềm là tốt và đầy đủ trước khi dự án bắt đầu. 4 Lập kế hoạch kiểm thử: Người kiểm thử biết cái gì cần được kiểm thử, và lập kế hoạch các hoạt động kiểm thử của họ như: Chuẩn bị chiến lược kiểm thử, kế hoạch kiểm thử, lịch biểu kiểm thử và ước lượng thời gian kiểm thử. Bởi vì người kiểm thử tham gia sớm vào trong dự án, họ có thể làm việc chặt chẽ với kiến trúc sư phần mềm và người thiết kế phần mềm trong việc xác định mọi cấu phần của sản phẩm phần mềm, cả yêu cầu chức năng và phi chức năng.

Người kiểm thử cũng giúp nhận diện giao diện giữa phần cứng và phần mềm cũng như lập kế hoạch cách kiểm thử các yêu cầu này. Thiết kế kiểm thử: Người kiểm thử bắt đầu xây dựng các trường hợp kiểm thử, kịch đoạn kiểm thử và dữ liệu kiểm thử dựa trên yêu cầu/thiết kế của phần mềm. Họ cũng tạo ra việc dõi vết các yêu cầu để chắc việc kiểm thử là đầy đủ bao quát mọi chi tiết của yêu cầu phần mềm. Bằng việc hiểu thiết kế trong chi tiết, người kiểm thử có thể phát triển các trường hợp kiểm thử tốt hơn và dữ liệu kiểm thử cho dự án.

Thiết lập môi trường kiểm thử: Người kiểm thử thiết lập môi trường kiểm thử và chắc rằng nó là hệt như với môi trường người dung. Thực hiện kiểm thử: Người kiểm thử thực hiện các trường hợp kiểm thử của họ và kịch đoạn kiểm thử trong môi trường kiểm thử để xác định chất lượng của phần mềm. Phát sinh kết quả kiểm thử và báo cáo khiến khuyết. Người kiểm thử tiến hành kiểm thử chức năng, kiểm thử tích hợp, và kiểm thử hệ thống và giúp khách hàng tiến hành kiểm thử chấp nhận của người dùng.

Tiến trình kiểm thử thông thường bao gồm những bước sau: - Thiết kế các ca kiểm thử - Tạo dữ liệu kiểm thử: trong bước này chúng ra kiểm thử tất cả các dữ liệu vào là cần thiết và chọn tập các dữ liệu thử đại diện từ miền dữ liệu vào dựa trên các tiêu chuẩn chọn dữ liệu tử. - Thực thi chương trình trên dữ liệu thử: o Cung cấp dữ liệu thử o Thực thi 5 o Ghi nhận kết quả - Quan sát kết quả kiểm thử: bước này ta thực hiện trong hoặc sau khi kiểm thử và sau đó ta so sánh kết quả kiểm thử với kết quả mong đợi. Hình 1: Vòng đời kiểm thử phần mềm 1.4 Nguyên tắc kiểm thử phần mềm Trước khi bắt đầu bất cứ hoạt động kiểm thử nào một kỹ sư phần mềm cũng phải biết các nguyên tắc cơ bản sau: - Mọi hoạt động kiểm thử đều phải theo được yêu cầu của khách hàng. Do mục đích của kiểm thử là tìm ra lỗi nên phần lớn các lỗi ( từ quan điểm của khách hàng) sẽ làm cho chương trình không đáp ứng được yêu cầu của khách hàng.

- Kiểm thử phải được lập kế hoạch trước khi thật sự bắt đầu: lập kế hoạch kiểm thử có thể bắt đầu ngay khi hoàn thành xong các mô hình yêu cầu. Xác định chi tiết các trường hợp thử có thể bắt đầu khi các mô hình thiết kế được hoàn thiện. Do đó mọi kiểm thử có thể được lập kế hoạch và thiết kế trước khi xây dựng mã chương trình. 6 - Kiểm thử ban đầu nhỏ, sau đó quá trình lớn dần.

Kiểm thử đầu tiên được lập kế hoạch và thực hiện thường tập trung vào các module chương trình riêng lẻ. Trong tiến trình kiểm thử, kiểm thử chuyển sang chú trọng vào nỗ lực tìm ra các lỗi trong các module tích hợp và cuối cùng là toàn bộ hệ thống. - Không thể kiểm thử mọi khía cạnh: Có nhiều cách kiểm thử cho các chương trình thậm chí cả với chương trình có kích thước vừa phải. Vì lẽ đó, không thể thực hiện mọi cách trong kiểm thử.

- Để có hiệu quả cao nhất, quá trình kiểm thử phải có tham gia của bên thứ 3. Kỹ sư phần mềm tạo ra hệ thống không phải là người tốt nhất để thực hiện mọi kiểm thử cho phần mềm.5 Kế hoạch kiểm thử Để đảm bảo cho chất lượng của dự án trong thời gian phát triển thì việc review và test phải được thực hiện liên tục. Việc test không chỉ được thực hiện trong pha cài đặt mà ngay từ những pha đầu tiên chúng ta đã phải tiến hành Tất cả những thành viên trong nhóm phát triển đều phải có nhiệm vụ là test những phần của mình làm ra với những trường hợp họ tự đặt ra Kế hoạch cho tài liệu test Tài liệu test phải đảm tối thiểu các nội dung sau: - Người test - Những gì cần phải test - Thời gian test - Kết quả mong muốn - Input thử nghiệm - Kết quả thực sau khi test - Code Review Sau khi đã hoàn thành code cũng với việc test trong quá trình code. Thì phải thực hiện test cho toàn bộ phần code đã được viết tại mỗi bước lặp 7 Phát triển theo hướng test Trong pha cài đặt, những lập trình viên khi code thì phải gắn liền với việc viết testcase bằng công cụ Junit cho phần code của mình.

Có thể viết một phần test trước sau đó viết code và tiếp tục viết phần code còn lại cho việc test.

Nội dung được bảo vệ bản quyền — Tải xuống đầy đủ