Trong quy trình kiểm thử phần mềm, các mức độ kiểm thử (Testing Levels) giúp xác định phạm vi và mục tiêu của việc kiểm tra phần mềm ở các giai đoạn khác nhau của vòng đời phát triển phần mềm.
Mỗi mức độ kiểm thử sẽ kiểm tra một khía cạnh cụ thể của phần mềm, từ các đơn vị mã nguồn nhỏ cho đến hệ thống hoàn chỉnh.
Dưới đây là các mức độ kiểm thử phổ biến trong quy trình phát triển phần mềm:
1. Unit Testing – Kiểm thử mức đơn vị
Unit Testing là giai đoạn đầu tiên trong kiểm thử phần mềm. Unit Testing được thực hiện nhằm kiểm tra và xác định các module riêng lẻ thuộc mã nguồn có hoạt động đúng hay không. Mục đích của kiểm thử mức đơn vị như sau:
- Xác định mỗi đơn vị phần mềm có đang thực hiện theo đúng thiết kế ban đầu hay không.
- Thông qua thử nghiệm sẽ giúp khắc phục những phát sinh do việc thay đổi hay bảo trì code.
- Unit Testing giúp tiết kiệm chi phí, thời gian và thể diện khi phát hiện ra lỗi.
2. Integration Testing – Kiểm thử tích hợp
Integration Testing là cấp độ kiểm thử phần mềm tích hợp của các đơn vị riêng lẻ được kết hợp và thử nghiệm thành một nhóm thông qua việc tập trung vào kiểm tra truyền dữ liệu giữa các module.
Ví dụ: sau khi đã unit test chức năng admin tạo tài khoản user và chức năng user đăng nhập thì ta có thể tiến hành kiểm thử tích hợp của 2 chức năng này để xem chúng có tương tác tốt với nhau không, sau khi admin tạo thành công tài khoản user thì ta có thể tiến hành đăng nhập bằng tài khoản đã được tạo xem có thực hiện được không.
Kiểm thử tích hợp tập trung vào việc kiểm tra interface (giao diện) giữa các thành phần và sự tương tác giữa những thành phần khác nhau trong hệ thống.
Mục đích của giai đoạn kiểm thử Integration Testing đó là tìm và phát hiện lỗi khi tích hợp các module lại với nhau.
Một số phương pháp thực hiện integration testing:
Big bang: tất cả các thành phần được tích hợp cùng một lúc và sau đó được kiểm thử. Cách tiếp cận này được thực hiện khi nhóm kiểm thử nhận được toàn bộ phần mềm.
Top down: Kiểm tra diễn ra từ trên xuống theo luồng điều khiển của hệ thống. Các đơn vị cao nhất được kiểm tra trước và các cấp đơn vị thấp hơn được kiểm tra từng bước sau đó.
Bottom up: Ngược lại với Top Down, ở phương pháp tiếp cận này các đơn vị cấp thấp được kiểm tra trước và các cấp đơn vị cao hơn được kiểm tra sau đó.
Sandwich/hybrid: Là sự kết hợp của hai phương pháp Top Down và Bottom Up. Ở đây, các module hàng đầu được kiểm tra với các module thấp hơn đồng thời các module thấp hơn được tích hợp với các module hàng đầu và được kiểm thử.
3. System Testing – Kiểm thử hệ thống
System Testing là giai đoạn thứ 3 của kiểm thử phần mềm cho phép phần mềm hoàn chỉnh và tích hợp được kiểm tra. System Testing tập trung nhiều hơn vào các chức năng của toàn bộ hệ thống.
Kiểm thử hệ thống bao gồm:
- Kiểm thử chức thăng (Functional Testing)
- Kiểm thử phi chức thăng (Non-functional Testing)
4. Acceptance Testing – Kiểm thử chấp nhận
Acceptance Testing được thực hiện bởi khách hàng hoặc ủy quyền cho nhóm thứ ba nhằm kiểm tra hệ thống vừa xây dựng đã phù hợp với yêu cầu của khách hàng trước đó hay chưa.
Mục đích của Acceptance Testing đó là xác nhận lại sự tin tưởng vào hệ thống, các đặc tính thuộc về chức năng hoặc phi chức năng của hệ thống.
Có 2 loại kiểm thử chấp nhận:
Alpha Testing: Được thực hiện bởi các thành viên của tổ chức phát triển phần mềm nhưng không liên quan trực tiếp đến dự án (Thường là các thành viên của quản lý sản phẩm). Alpha test thực hiện test tại nơi sản xuất phần mềm, là một hình thức kiểm thử nội bộ, trước khi phần mềm được tiến hành kiểm thử Beta.
Beta Testing: Được thực hiện bởi người dùng cuối cùng (thường là khách hàng). Beta test thực hiện tại địa điểm của khách hàng, người dùng test hay sử dụng hệ thống trong môi trường riêng của họ – không phải nơi phát triển phần mềm.
Kết luận
Mỗi mức độ kiểm thử trong quy trình phát triển phần mềm có mục tiêu và phạm vi riêng biệt, từ việc kiểm tra các thành phần đơn lẻ cho đến việc đảm bảo hệ thống.
Tham khảo: https://anhtester.com/blog/cac-muc-do-kiem-thu-phan-mem-testing-levels–b335.html