13 May, 2021
Vòng đời kiểm thử phần mềm
Một sinh viên viết cho tôi: “Trường em đang dạy vòng đời phát triển phần mềm nhưng bạn em nhắc rằng có vòng đời kiểm thử phần mềm mà em không thể tìm được nó trong sách giáo khoa. Nó là gì? Thầy có thể giúp em được không?”
Đáp: Có vòng đời kiểm thử phần mềm, điều xác định ra các qui trình và pha trong kiểm thử phần mềm. Tuy nhiên, nó không phải là chuẩn công nghiệp và chỉ ít người kiểm thử dùng nó. Về căn bản vòng đời kiểm thử bao gồm các pha sau:
1) 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.
2) 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.
3) 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.
4) 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.
5) 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 (Qua/Hỏng) và 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.
—English version—
Software testing life cycle
A student wrote to me: “My school is teaching Software development life cycle but my friend mentions that there is a Software testing life cycle but I could not find it in the textbook. What is it? Could you help?”
Answer: There is a Software Testing Life Cycle that defines the processes and phases in the testing of software. However, it is not an industry standard and only few testers are using it. Basically the testing life cycle consists of following phases:
1) Requirements Review: Testers review the software requirements to understand them and make sure that they are testable. (If they are not then the requirements are vague and need to be revised); this is an important activity in the software engineering principles that advocates testers must involve early in the software project and work closely with requirements engineers to make sure that software requirements are good and complete before the project starts.
2) Test Planning: Testers know what needs to be tested, and plan their testing activities such as: Prepare test strategy, test plan, test schedule and estimate the testing time. Because testers are participating early in the project, they can work closely with software architects and software designers in defining all the components of the software product, both functional and non-functional requirements. Testers also help identify the interfaces between hardware and software as well as planning how to test these requirements.
3) Test Designing: Testers begin to build test cases, test scripts and test data based on the requirements/design of the software. They also create a requirements traceability to make sure testing is complete cover all details of the software requirements. By understand the design in details, testers can develop better test cases and test data for the project.
4) Test Environment Setup: Testers setup the test environment and make sure that it is the same as the users’ environment.
5) Test Execution: Testers execute their test cases and test scripts in the test environment to determine the quality of the software (Pass/Fail) and generate test results and defect reports. Testers conduct functional tests, integration tests, and system tests and help customers to conduct user-acceptance tests.