Bối cảnh và vấn đề nghiên cứu
Trong sự phát triển của ngành công nghiệp công nghệ thông tin, phần mềm đã được ứng dụng vào hầu hết các lĩnh vực đời sống, từ các thiết bị gia dụng đến các hệ thống quản lý quy mô lớn như doanh nghiệp, giao thông và y tế. Sự mở rộng về quy mô và độ phức tạp của các hệ thống phần mềm đặt ra yêu cầu nghiêm ngặt về mặt chất lượng, biến công đoạn kiểm thử trở thành khâu quyết định sự thành công và độ tin cậy của sản phẩm trước khi đưa vào vận hành thực tế.
Theo các số liệu được trích dẫn trong tài liệu, kiểm thử phần mềm là công đoạn tiêu tốn nhiều thời gian, công sức và tài chính, chiếm tới 40% tổng chi phí sản xuất phần mềm. Đối với các hệ thống phần mềm có hàng nghìn module, việc kiểm thử hoàn toàn bằng phương pháp thủ công (manual testing) bộc lộ nhiều hạn chế về mặt thời gian, chi phí và độ chính xác khi các chức năng liên tục được cập nhật, thay đổi. Do đó, việc ứng dụng các phương pháp và công cụ kiểm thử tự động là giải pháp cần thiết nhằm tối ưu hóa quy trình kiểm thử và nâng cao chất lượng phần mềm.
Đồ án tập trung nghiên cứu và thực hiện kiểm thử cho hệ thống phần mềm "Website tính tiền điện hộ cá nhân E-Energy". Mục tiêu nghiên cứu và nhiệm vụ cụ thể được xác định bao gồm:
- Phân tích tổng quan các yêu cầu và thành phần chức năng của hệ thống tính tiền điện cho hộ cá nhân.
- Xây dựng tài liệu đặc tả yêu cầu phần mềm (SRS) và thiết kế hệ thống use case chi tiết.
- Thiết lập kế hoạch kiểm thử (Test Plan), thiết kế bộ trường hợp kiểm thử (Test Cases) hoàn chỉnh và xây dựng báo cáo kiểm thử.
- Thực thi kiểm thử chức năng, kiểm thử tự động bằng tiện ích mở rộng Selenium IDE và kiểm thử hiệu năng bằng phần mềm Apache JMeter.
Phạm vi nghiên cứu của đề tài bao gồm toàn bộ các chức năng cốt lõi của website E-Energy: Đăng nhập/Đăng ký tài khoản, Quản lý hồ sơ người dùng, Quản lý khách hàng, Theo dõi danh sách hóa đơn, Hóa đơn tiền điện và Tính tiền điện. Kế hoạch kiểm thử và thực nghiệm được tiến hành trong tháng 04 năm 2023.
Cơ sở lý thuyết và phương pháp
Đồ án vận dụng các khái niệm và chuẩn mực kỹ thuật phần mềm để làm nền tảng cho quá trình phân tích và kiểm thử hệ thống:
-
Khung lý thuyết và thuật ngữ kỹ thuật:
- Đặc tả yêu cầu phần mềm (Software Requirements Specifications - SRS): Tài liệu mô tả toàn diện các yêu cầu chức năng và phi chức năng của hệ thống.
- Biểu đồ Use Case: Công cụ mô hình hóa các tương tác giữa tác nhân (Actors) và hệ thống phần mềm.
- Môi trường Web và máy chủ (Web Server): Kiến trúc cung cấp tài nguyên, xử lý giao thức truyền thông siêu văn bản và phân phối dịch vụ tới máy khách.
- Ngôn ngữ định dạng và hiển thị: Sử dụng HTML (Hypertext Markup Language) và CSS (Cascading Style Sheets) để xây dựng cấu trúc và định kiểu giao diện website.
-
Phương pháp nghiên cứu và thực nghiệm:
- Phương pháp phân tích và mô hình hóa hệ thống: Phân rã chức năng nghiệp vụ, xây dựng biểu đồ use case tổng quát và biểu đồ use case chi tiết cho từng tác nhân.
- Quy trình kiểm thử 4 giai đoạn chuẩn: Áp dụng quy trình kiểm thử phần mềm có cấu trúc gồm: (1) Lập kế hoạch kiểm thử; (2) Chuẩn bị kiểm thử (xây dựng kịch bản, chuẩn bị dữ liệu); (3) Thực thi kiểm thử và quản lý lỗi; (4) Báo cáo và phân tích kết quả kiểm thử.
- Phương pháp kiểm thử tự động (Automation Testing): Sử dụng công cụ Selenium IDE để ghi nhận và phát lại các kịch bản kiểm thử (Record/Playback), tự động hóa các thao tác kiểm thử hồi quy trên trình duyệt web.
- Phương pháp kiểm thử hiệu năng (Performance Testing): Thiết lập kịch bản đo lường tải và thời gian đáp ứng của hệ thống bằng Apache JMeter.
-
Nguồn dữ liệu thực nghiệm: Dữ liệu thử nghiệm được tạo lập có cấu trúc bao gồm các thông tin về chỉ số công tơ điện tiêu thụ, số hộ sử dụng, thông tin khách hàng, định dạng mã khách hàng (ví dụ:
KH12434535357,PE1232789230) và dữ liệu ngày tháng thanh toán.
Thiết kế và triển khai
Hệ thống E-Energy và môi trường kiểm nghiệm được thiết kế, triển khai với các thông số kỹ thuật rõ ràng:
Kiến trúc chức năng và các tác nhân hệ thống
Hệ thống xác định 3 nhóm tác nhân chính tham gia tương tác:
- Khách hàng: Người dùng vãng lai chưa đăng nhập vào hệ thống, thực hiện các thao tác đăng ký tài khoản, tìm hiểu thông tin.
- Đại diện hộ gia đình: Người dùng đã đăng nhập, có quyền theo dõi lượng điện tiêu thụ hàng tháng, thực hiện tính tiền điện, nhận thông báo, thanh toán và in hóa đơn tiền điện.
- Quản trị viên (Admin): Quản trị toàn bộ hoạt động hệ thống, quản lý danh sách khách hàng (thêm, sửa, xóa, tìm kiếm), cập nhật chỉ số điện hàng tháng và quản lý việc gửi thông báo qua email.
Công nghệ phát triển
- Ngôn ngữ lập trình: JavaScript.
- Môi trường triển khai: Nền tảng Web, chạy trên các trình duyệt Chrome, Edge, Opera phiên bản mới nhất.
- Công cụ phát triển mã nguồn: Visual Studio Code (VS Code).
Môi trường và công cụ kiểm thử
| Thành phần | Thông số / Công cụ sử dụng |
|---|---|
| Phần cứng kiểm thử | CPU Intel Core i5 2.3 GHz, RAM 8 GB, Ổ cứng SSD 512 GB, Kiến trúc hệ thống 64-bit |
| Hệ điều hành | Microsoft Windows 11 Home (Phiên bản 21H2) |
| Trình duyệt kiểm thử | Google Chrome (Phiên bản 113.129), Microsoft Edge (Phiên bản 113.57) |
| Quản lý Test Case & Defect | Microsoft Excel 2019, Google Trang tính |
| Quản lý cấu hình tài liệu | Microsoft Word 2019 |
| Công cụ kiểm thử tự động | Tiện ích mở rộng Selenium IDE (hỗ trợ các lệnh: open, type,...) |
| Công cụ kiểm thử hiệu năng | Apache JMeter |
Phân công trách nhiệm nhân sự kiểm thử
| Thành viên | Vai trò và nhiệm vụ được phân công |
|---|---|
| Vũ Quang Thoại | Developer / Tester: Phát triển mã nguồn chính; thiết kế và thực thi test case cho các module: Quản lý khách hàng, Quản lý người dùng, Quản lý hóa đơn; tham gia rà soát Test Plan. |
| Phan Thị Thùy Linh | Test Manager / Tester: Lập kế hoạch kiểm thử tổng thể; thiết kế và viết test case cho chức năng Đăng ký, Đăng nhập; rà soát Test Plan; thực thi kiểm thử hiệu năng bằng JMeter. |
| Trịnh Hồng Nhung | Tester: Thiết kế và viết test case cho các chức năng Hóa đơn tiền điện, Tính tiền điện, Quản lý thông tin cá nhân; tham gia rà soát Test Plan. |
Nội dung chính theo từng chương
Chương 1: Giới thiệu đề tài
Chương 1 trình bày bối cảnh ra đời của đề tài, tầm quan trọng của công tác kiểm thử chất lượng phần mềm trong việc giảm thiểu rủi ro kỹ thuật và kinh tế. Tác giả nêu rõ mục đích của đồ án là xây dựng một hệ thống website tính tiền điện hộ cá nhân (E-Energy) thuận tiện, minh bạch cho cả bên quản lý và hộ tiêu thụ điện, đồng thời thiết lập bộ tài liệu kiểm thử hoàn chỉnh. Chương này cũng giới thiệu bảng từ điển thuật ngữ chuyên ngành gồm SRS, Use Case, Web server, HTML, CSS, Admin và cấu trúc tổng thể 4 chương của báo cáo.
Chương 2: Phân tích và xây dựng chương trình
Chương 2 tập trung phân tích yêu cầu nghiệp vụ, mô hình hóa use case và đặc tả chi tiết 11 trường hợp sử dụng (Use Case) của hệ thống:
UC001: Đăng nhập
UC002: Đăng ký
UC003: Thay đổi mật khẩu
UC004: Thiết lập lại mật khẩu
UC005: Tìm kiếm khách hàng
UC006: Theo dõi tiền điện hàng tháng
UC007: Theo dõi danh sách khách hàng
UC008: Tính tiền điện
UC009: Thanh toán và xuất hóa đơn
UC0010: Cập nhật số điện
UC0011: Quản lý thông báo email tới người dùng
Nội dung đặc tả mỗi use case bao gồm: mã use case, tên, tác nhân, mô tả, sự kiện kích hoạt, tiền điều kiện, luồng sự kiện chính (thành công), luồng sự kiện thay thế (ngoại lệ/lỗi) và bảng định nghĩa các trường dữ liệu đầu vào (tên trường, mô tả, tính bắt buộc, điều kiện hợp lệ và dữ liệu mẫu). Chương 2 cũng xác lập các yêu cầu phi chức năng:
- Hiệu năng: Hệ thống phản hồi nhanh chóng, đảm bảo phản hồi tức thì khi người dùng truy cập.
- Bảo mật: Phân quyền nghiêm ngặt theo vai trò; người dùng chỉ được phép truy cập chức năng và dữ liệu đúng phạm vi quyền hạn.
- Giao diện và ràng buộc: Giao diện tối ưu cho đa thiết bị, giảm thiểu thao tác nhập liệu thủ công; yêu cầu thiết bị người dùng kết nối Internet và sử dụng trình duyệt web hiện đại.
Chương 3: Thiết kế giao diện
Chương 3 trình bày các công nghệ áp dụng và bố cục giao diện trực quan của hệ thống website E-Energy:
- Giao diện Đăng nhập & Đăng ký: Thiết kế form tiếp nhận thông tin tài khoản, tích hợp thông báo điều hướng khi đăng nhập thành công và cảnh báo lỗi khi nhập sai định dạng hoặc sai mật khẩu. Màn hình đăng ký phân tách rõ hai luồng người dùng: người dùng thông thường và người dùng đã được cấp mã khách hàng từ điện lực.
- Giao diện Danh mục Hóa đơn tiền điện & Form tính tiền điện: Cung cấp bảng dữ liệu tra cứu lịch sử tiêu thụ điện và biểu mẫu nhập chỉ số điện, số hộ dùng để tự động xuất kết quả tính tiền theo biểu giá.
- Giao diện Quản lý thông tin khách hàng: Bảng hiển thị danh sách người dùng dành cho quản trị viên với các công cụ tra cứu, chỉnh sửa và cập nhật số điện theo kỳ.
Chương 4: Kiểm thử chương trình
Chương 4 là trọng tâm thực nghiệm của đồ án, mô tả chi tiết việc xây dựng và thực thi kế hoạch kiểm thử:
- Quy trình kiểm thử: Thiết lập theo 4 giai đoạn chuẩn từ lập kế hoạch, chuẩn bị, thực thi đến báo cáo đánh giá.
- Lịch trình thực hiện: Kéo dài từ ngày 04/04/2023 đến ngày 27/04/2023 qua các mốc bàn giao:
| Mốc công việc (Milestone) | Sản phẩm bàn giao (Deliverables) | Thời lượng | Ngày bắt đầu | Ngày kết thúc |
|---|---|---|---|---|
| Lập kế hoạch kiểm thử | Tài liệu Test Plan | 2 ngày | 04/04/2023 | 06/04/2023 |
| Xem lại tài liệu kế hoạch | Tài liệu Test Plan | 2 ngày | 07/04/2023 | 09/04/2023 |
| Thiết kế các test case | Tài liệu Test Case | 3 ngày | 10/04/2023 | 13/04/2023 |
| Viết các test case | Tài liệu Test Case | 3 ngày | 14/04/2023 | 17/04/2023 |
| Xem lại các test case | Tài liệu Test Case | 2 ngày | 18/04/2023 | 20/04/2023 |
| Thực thi các test case | Tài liệu Test Case | 2 ngày | 21/04/2023 | 23/04/2023 |
| Ghi nhận và đánh giá kết quả | Tài liệu Test Case / Report | 3 ngày | 24/04/2023 | 27/04/2023 |
- Phân loại mức độ nghiêm trọng của lỗi (Defect Tracking):
| Mức độ nghiêm trọng | Đặc tả các trường hợp lỗi |
|---|---|
| High (Cao) | Lỗi không thể đăng ký, đăng nhập tài khoản; không thể thực hiện tính tiền điện; chức năng tìm kiếm trả về sai khách hàng. |
| Medium (Trung bình) | Không hiển thị đầy đủ danh sách khách hàng/người dùng; không thể chỉnh sửa thông tin khách hàng, hóa đơn; hệ thống chạy không ổn định. |
| Low (Thấp) | Hiển thị sai lệch thông tin cá nhân, tài khoản, hóa đơn tiền điện; kết quả hiển thị tìm kiếm không đúng quy chuẩn mẫu. |
- Điều kiện chấp nhận: Hệ thống phải vượt qua (Passed) 100% các trường hợp kiểm thử đã định nghĩa và vận hành ổn định trên các trình duyệt khác nhau.
- Thực thi kiểm thử tự động và hiệu năng: Ứng dụng Selenium IDE để ghi kịch bản kiểm thử tự động thông qua các lệnh như
open (url)(khởi chạy địa chỉ URL đích) vàtype (locator, value)(nhập giá trị vào trường dữ liệu); sử dụng Apache JMeter để kiểm thử tải và đánh giá hiệu năng hệ thống.
Kết quả và đóng góp
- Kết quả thực nghiệm:
- Xây dựng hoàn chỉnh tài liệu đặc tả yêu cầu phần mềm (SRS) cho 11 use case nghiệp vụ của hệ thống tính tiền điện E-Energy.
- Thiết lập bảng kế hoạch kiểm thử (Test Plan) chi tiết kèm biểu đồ Gantt tiến độ từ ngày 04/04/2023 đến 27/04/2023.
- Xây dựng bộ kịch bản và báo cáo kiểm thử (Test Case Report) bao quát toàn bộ các chức năng từ xác thực, quản lý khách hàng, tính toán điện năng đến thanh toán hóa đơn.
- Triển khai thành công các kịch bản kiểm thử tự động bằng tiện ích mở rộng Selenium IDE và kiểm thử hiệu năng với JMeter trên các trình duyệt Chrome và Microsoft Edge.
- Đóng góp của đồ án:
- Chuẩn hóa quy trình kiểm thử 4 giai đoạn đối với một dự án phần mềm web dịch vụ công cộng/tiện ích hộ gia đình.
- Chứng minh tính thực tiễn và hiệu quả của việc kết hợp kiểm thử chức năng thủ công với kiểm thử tự động nhằm giảm thiểu chi phí và thời gian kiểm thử hồi quy.
Hạn chế và hướng nghiên cứu tiếp
- Hạn chế:
- Dữ liệu thử nghiệm và môi trường thực thi chủ yếu được triển khai trên máy tính cá nhân cục bộ và mạng giả lập, chưa triển khai kiểm thử diện rộng trên hạ tầng đám mây phân tán.
- Phạm vi kiểm thử tự động bằng Selenium IDE chủ yếu dựa trên cơ chế Record/Playback, chưa mở rộng sang việc viết mã kịch bản phức tạp bằng Selenium WebDriver.
- Hướng phát triển:
- Nâng cấp và mở rộng kịch bản kiểm thử tự động chuyên sâu cho toàn bộ các chức năng mở rộng trong tương lai của hệ thống E-Energy.
- Hoàn thiện, khắc phục triệt để các khiếm khuyết được ghi nhận trong bảng theo dõi lỗi (Defect Tracking) để tối ưu hóa trải nghiệm người dùng.
Giá trị tham khảo
Tài liệu đồ án mang lại giá trị tham khảo thiết thực cho:
- Sinh viên ngành Công nghệ thông tin và Kỹ thuật phần mềm: Làm tài liệu mẫu về quy trình phân tích use case, lập tài liệu đặc tả SRS và xây dựng kế hoạch kiểm thử (Test Plan) theo chuẩn kỹ thuật.
- Kiểm thử viên (Software Tester / QA): Tham khảo cấu trúc ma trận Test Case, bảng phân loại mức độ nghiêm trọng của lỗi (Defect Tracking) và quy trình thiết lập kịch bản kiểm thử tự động với Selenium IDE, kiểm thử hiệu năng với JMeter.
- Các nhóm phát triển hệ thống quản lý dịch vụ công: Tham khảo mô hình phân tích nghiệp vụ tính toán chỉ số tiêu thụ điện năng và quản lý hóa đơn hộ gia đình.
Câu hỏi thường gặp
1. Chi phí kiểm thử đóng vai trò như thế nào trong toàn bộ quy trình phát triển phần mềm theo đồ án?
Theo số liệu được trình bày trong Lời mở đầu của tài liệu, công tác kiểm thử phần mềm đóng vai trò sống còn và chiếm tới 40% toàn bộ chi phí sản xuất phần mềm.
2. Hệ thống E-Energy bao gồm những tác nhân nào và có bao nhiêu use case được đặc tả?
Hệ thống gồm 3 tác nhân: Khách hàng (chưa đăng nhập), Đại diện hộ gia đình (đã đăng nhập) và Quản trị viên (Admin). Đồ án đặc tả chi tiết 11 mã use case từ UC001 đến UC0011 phục vụ đầy đủ các chức năng quản lý, tính tiền và thanh toán.
3. Môi trường phần cứng và phần mềm được sử dụng để thực thi kiểm thử gồm những thông số gì?
Cấu hình phần cứng bao gồm CPU Intel Core i5 2.3 GHz, RAM 8 GB, ổ cứng SSD 512 GB, kiến trúc 64-bit trên hệ điều hành Windows 11 Home 21H2. Môi trường phần mềm kiểm thử gồm trình duyệt Google Chrome (bản 113.129) và Microsoft Edge (bản 113.57).
4. Ma trận phân cấp mức độ lỗi (Defect Tracking) trong đồ án được định nghĩa ra sao?
Đồ án phân loại lỗi thành 3 cấp độ:
- High: Không thể đăng ký, đăng nhập, không thể tính tiền điện, tìm kiếm sai khách hàng.
- Medium: Không hiển thị đầy đủ danh sách, không thể chỉnh sửa thông tin/hóa đơn, chức năng chạy không ổn định.
- Low: Hiển thị sai thông tin cá nhân/hóa đơn, kết quả tìm kiếm không đúng mẫu.
5. Nhóm tác giả đã sử dụng những công cụ nào để thực hiện kiểm thử tự động và kiểm thử hiệu năng?
Đồ án sử dụng tiện ích mở rộng Selenium IDE (với các lệnh thao tác như open, type) để thực hiện kiểm thử tự động theo phương thức Record/Playback, và sử dụng công cụ Apache JMeter để kiểm thử hiệu năng hệ thống.
Kết luận
Đồ án "Kiểm Thử Phần Mềm: Quy Trình và Kỹ Thuật Hiệu Quả" áp dụng cho website E-Energy đã cung cấp một bản thiết kế và quy trình kiểm thử hoàn chỉnh cho hệ thống tính tiền điện hộ gia đình. Thông qua việc phân tích 11 use case nghiệp vụ, lập kế hoạch kiểm thử theo lịch trình chuẩn và áp dụng các công cụ Selenium IDE cùng Apache JMeter, đề tài đã chứng minh được vai trò kiểm soát chất lượng phần mềm trước khi vận hành. Đây là tài liệu tham khảo có cấu trúc rõ ràng, tính ứng dụng thực tiễn cao cho sinh viên và kỹ sư trong lĩnh vực đảm bảo chất lượng phần mềm.