Phân biệt Verification và Validation trong Testing

⏱︎

Read time:

2–3 minutes
Minh họa so sánh Verification và Validation trong kiểm thử phần mềm

Verification và Validation đều nhằm đánh giá chất lượng phần mềm, nhưng trả lời hai câu hỏi khác nhau:

  • Verification: Chúng ta có đang xây dựng sản phẩm đúng cách không?
  • Validation: Chúng ta có đang xây dựng đúng sản phẩm người dùng cần không?

Verification là gì?

Verification kiểm tra một sản phẩm công việc có đáp ứng đúng các yêu cầu hoặc đặc tả đã quy định hay không.

Đối tượng được kiểm tra không chỉ là phần mềm hoàn chỉnh mà còn có thể là requirement, user story, thiết kế, source code hoặc test case. Review, walkthrough, inspection và static analysis là những hoạt động verification phổ biến.

Ví dụ: Yêu cầu quy định mật khẩu phải có ít nhất 8 ký tự. Tester kiểm tra tài liệu thiết kế và test case để xác nhận quy tắc này đã được thể hiện đầy đủ, chính xác.

Validation là gì?

Validation đánh giá sản phẩm có đáp ứng nhu cầu sử dụng thực tế của người dùng và các bên liên quan trong môi trường dự kiến hay không.

Validation thường cần chạy phần mềm và quan sát hành vi thực tế thông qua system testing, acceptance testing, beta testing hoặc phản hồi của người dùng.

Ví dụ: Hệ thống cho phép tạo mật khẩu 8 ký tự đúng như đặc tả. Tuy nhiên, người lớn tuổi gặp khó khăn vì quy trình đặt lại mật khẩu quá phức tạp. Sản phẩm có thể vượt qua verification nhưng vẫn chưa đạt validation tốt.

So sánh nhanh

Tiêu chíVerificationValidation
Câu hỏi chínhXây dựng sản phẩm đúng cách chưa?Có xây dựng đúng sản phẩm cần thiết không?
Căn cứYêu cầu, đặc tả, thiết kếNhu cầu và mục đích sử dụng thực tế
Đối tượngCác work product ở nhiều giai đoạnSản phẩm hoặc hệ thống hoạt động được
Hoạt động thường gặpReview, inspection, static analysisSystem test, acceptance test, beta test

Một sản phẩm có thể đạt Verification nhưng trượt Validation không?

Có. Phần mềm có thể được xây dựng hoàn toàn đúng theo tài liệu nhưng tài liệu lại mô tả sai hoặc chưa đầy đủ nhu cầu thật của người dùng.

Ví dụ, đội phát triển làm đúng yêu cầu “xuất báo cáo dưới dạng CSV”. Nhưng người dùng nghiệp vụ chỉ có thể làm việc với mẫu Excel đã định dạng sẵn. Chức năng đúng đặc tả, nhưng chưa giải quyết được nhu cầu thực tế.

Mẹo ghi nhớ 👌

  • Verification tập trung vào sự phù hợp với đặc tả; Validation tập trung vào sự phù hợp với nhu cầu sử dụng.
  • Verification thường sẽ diễn ra trước Validation
  • Verification tập trung vào tài liệu, design, test cases (những thứ tĩnh), còn Validation tập trung vào sản phẩm thực tế sau khi code xong