02 Feb, 2021
Kiểm thử chấp nhận của người dùng
Một người kiểm thử viết cho tôi: “Tại sao chúng tôi phải tiến hành kiểm thử chấp nhận của người dùng (UAT) khi chúng tôi đã kiểm thử phần mềm nhiều lần để chắc rằng nó không có lỗi? Có cần UAT không?”
Đáp: Ngày nay khách hàng mong đợi các công ti phần mềm chuyển giao phần mềm chất lượng với chi phí thấp nhất và thời gian ngắn nhất để đáp ứng cho nhu cầu doanh nghiệp của họ. Tuy nhiên nhiều công ti phần mềm chỉ hội tụ vào khía cạnh chức năng qua vài phép kiểm thử như kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống v.v. trong môi trường phát triển của họ, ít để ý tới cách phần mềm sẽ làm việc trong môi trường người dùng. Nhiều lần, phần mềm đáp ứng các yêu cầu chức năng nhưng thất bại trong kiểm thử chấp nhận của người dùng vì môi trường kiểm thử không tương hợp.
Kiểm thử chấp nhận của người dùng (UAT) giúp cho người dùng đảm bảo với bản thân họ rằng phần mềm đáp ứng nhu cầu của họ và vận hành tốt trong môi trường của họ. Nó được thiết kế để tìm ra liệu phần mềm có đáp ứng cho tiêu chí chấp nhận và có sẵn sàng cho sử dụng không. UAT nhận diện phần mềm tuân thủ thế nào với các yêu cầu doanh nghiệp khi nó vận hành trong môi trường doanh nghiệp thực.
UAT bao gồm sự tham gia từ người dùng và là khác với kiểm thử hệ thống, điều được thực hiện bởi người phát triển và người kiểm thử. Bởi vì người dùng đóng vai trò then chốt trong UAT, điều quan trọng là xác định tiêu chí chấp nhận với người dùng trong các pha sớm của vòng đời phần mềm. Người phân tích doanh nghiệp hay kĩ sư yêu cầu, người có tri thức về qui trình doanh nghiệp phải giúp đỡ trong thiết kế yêu cầu thích hợp, điều tạo nên cơ sở cho người kiểm thử để tạo ra các trường hợp kiểm thử. UAT nên được thực hiện trong môi trường mô phỏng cho môi trường sản xuất hay được đặt vào việc sử dụng thực trong thế giới của ứng dụng phần mềm.
Trong UAT phần lớn các lỗi kĩ thuật phải đã được sửa xong rồi trong các qui trình kiểm thử đa dạng (kiểm thử đơn vị, kiểm thử tích hợp, kiểm thử hệ thống) do người kiểm thử tiến hành. Tính chức năng là khía cạnh dùng được của phần mềm này là khía cạnh then chốt cần được kiểm thử kĩ lưỡng trong UAT. Tổ kiểm thử phải phát triển các kịch bản kiểm thử cho UAT. Bản kế hoạch UAT hiệu quả làm chi tiết ra các khu vực then chốt phải được thiết kế và các trường hợp kiểm thử chấp nhận của người dùng phải được chuẩn bị để kiểm thử phần mềm. Bất kì lỗi nào được tìm thấy trong UAT đều phải được giải quyết sớm nhất có thể được. Về căn bản UAT giúp cho dự án để đảm bảo rằng phần mềm thực hiện các qui trình nghiệp vụ được dự định, và đáp ứng các yêu cầu của người dùng trong các môi trường đa dạng. Nó là kiểm thử cuối cùng trong vòng đời phát triển phần mềm và cần thiết nhất để chứng minh rằng phần mềm đáp ứng yêu cầu của khách hàng.
—-English version—-
User Acceptance Test
A tester wrote to me: “Why do we have to conduct user acceptance testing (UAT) when we already tested software several times to make sure that it does not have defects? Is having UAT necessary?”
Answer: Today customers expect software companies to deliver quality software at lowest costs and shorter time to meet their business needs. However many software companies only focus on the functional aspects via several tests such as unite test, integration test, system test etc. in their development environment. Few pay attention on how the software will work in the users environment. Many times, the software meet all functional requirements but failed during the user acceptance test because of incompatible testing environment.
User Acceptance Testing (UAT) helps users to assure themselves that the software meet their needs and operate well in their environment. It is designed to find out if a software fulfills the acceptance criteria and ready for use. UAT identifies how compliant the software is with the business requirements when it operate in the real business environment.
UAT involves the participation from users and is different from system testing which is performed by developers and testers. Because users play a key role in UAT, it is important to define the acceptance criteria with the users during the early phases of the software life cycle. Business Analysts or Requirements Engineers, who possess knowledge of the business processes must help in designing appropriate requirements, which forms the base for testers to create the test cases. UAT should be performed in an environment that simulates the production environment or put on the exact real world usage of the software application.
During UAT most technical defects must already be fixed during various testing processes (Unit test, integration test, system test) conducted by testers. The functionality and usability aspects of the software are key aspects to be thoroughly tested during UAT. The testing team should develop the test scenarios for the UAT. An effective UAT plan that details out the key areas must be designed and user acceptance test cases must be prepared to test the software. Any defects found during the UAT should be resolved as soon as possible. Basically UAT helps projects to ensure that the software implements the intended business processes, and meets the requirements of users in various environments. It is the last test in the software development life cycle and the most necessary to prove that the software meet users’ requirements.