Make a Different in Software Testing Basics - Phần 4
Phần 4 - Verification and Validation Nội dung bài viết được tham khảo từ Software Testing Class và Học PMP Thuật ngữ "Verification" và "Validation" rất thường được sử dụng trong thử nghiệm phần mềm chúng ta nhưng ý nghĩa của các thuật ngữ này chủ yếu là mơ hồ và có thể dẫn đến tranh cãi ...
Phần 4 - Verification and Validation Nội dung bài viết được tham khảo từ Software Testing Class và Học PMP
Thuật ngữ "Verification" và "Validation" rất thường được sử dụng trong thử nghiệm phần mềm chúng ta nhưng ý nghĩa của các thuật ngữ này chủ yếu là mơ hồ và có thể dẫn đến tranh cãi trong công việc.
Verification là gì?
Là quá trình đánh giá sản phẩm (không phải là sản phẩm cuối cùng trong thực tế) của các giai đoạn phát triển để xác định liệu chúng ta có làm sản phẩm theo cách thức đúng nhất hay nói cách khác là làm sản phẩm theo một cách đúng đắn, một phương thức, quy trình phù hợp. Kiểm tra điều gì đó đang được làm đúng hay không, ví dụ kiểm tra quá trình xây dựng và phát triển sản phẩm có đúng quy trình hay không.
Validation là gì?
Là quá trình đánh giá sản phẩm trong hoặc khi kết thúc giai đoạn phát triển để xác định xem nó có đáp ứng yêu cầu đặc tả cụ thể đã nêu ra hay không, chẳng hạn kiểm tra phần mềm có thực hiện theo đúng yêu cầu khách hàng hay không.
Khác nhau giữa Verification và Validation
Verification | Validation |
---|---|
Mục tiêu của Verification là đảm bảo rằng sản phẩm đang được xây dựng và phát triển theo yêu cầu và thiết kế kỹ thuật. Nói cách khác, để đảm bảo sản phẩm đáp ứng các yêu cầu cụ thể của chúng. | Mục tiêu của Validation là để đảm bảo rằng sản phẩm thực sự đáp ứng các yêu cầu của người dùng và kiểm tra xem các thông số kỹ thuật đã được xác định ở giai đoạn đầu. Nói cách khác, để chứng minh rằng sản phẩm đáp ứng được mục đích của người sử dụng nó khi được đặt trong môi trường dự định. |
Các hoạt động liên quan đến Verification: Review, Meeting, Inspection. | Các hoạt động liên quan đến Validation: Kiểm thử hộp đen, Kiểm thử hộp trắng, Kiểm thử hộp xám. |
Việc Verification được tiến hành bởi QA team để kiểm tra xem liệu phần mềm có thực hiện được những chức năng theo tài liệu đặc tả hay không. | Validation được thực hiện với sự tham gia của Testing team (Testers). |
Verification sẽ giải thích, chỉ ra các kết quả đầu ra là có đúng dựa theo đầu vào hay không. | Validation sẽ xem xét liệu phần mềm có được chấp nhận bởi người dùng hay không. |
Được đánh giá dựa vào Plans, Requirement Specs, Design Specs, Code, Test Cases. | Được đánh giá dựa vào sản phẩm thực tế đã được hoàn thành hay sản phẩm để thử nghiệm. |
Kết luận
- Cả Verification và Validation đều cần thiết và bổ sung cho nhau trong kiểm thử phần mềm.
- Cả hai đều được sử dụng để tìm ra lỗi theo cách khác nhau, Verification được sử dụng để xác định các lỗi trong tài liệu yêu cầu kỹ thuật và Validation được sử dụng để tìm các lỗi trong ứng dụng phần mềm đã được xây dựng.
Chúng ta có thể có một sản phẩm vượt qua Verification nhưng không thế vượt Validation vì sản phẩm đó được xây dựng dựa theo các tài liệu yêu cầu kỹ thuật nhưng các đặc điểm kỹ thuật không đáp ứng được nhu cầu của người sử dụng.
Ví dụ dễ hiểu hơn bạn muốn nấu ăn, cụ thể là nấu canh chua, bạn biết khi nấu có những yêu cầu như thế nào: phải đủ gia vị, cá không nát, chọn cá khoảng 1kg trở lên, blabla…. và để nấu như thế bạn phải biết quy trình nấu ăn. Giả sử cá làm sạch (thế nào là sạch), rau thì phải xử lý qua quy trình 3 bước (…), nấu sôi nước 10 phút rồi bỏ rau vào tắt bếp…. Và đó là plan, nếu thực tế bạn tuân theo các bước như vậy thì nói món ăn này được Verified. Món ăn được verify chưa chắc đã được Validated nhé, bởi vì điều đó còn phù thuộc vào khách hàng (người ăn), đôi lúc mình làm tuân thủ tất cả nhưng chưa đủ để Validated.
Những phần trước cùng chủ đề "Make a Different in Software Testing Basics":
- Phần 1 - Functional Testing and Non-Functional Testing
- Phần 2 - Re-testing and Regression testing
- Phần 3 - Boundary value analysis and Equivalence partitioning