Kiểm định(Verification) và thẩm định(Validation) phần mềm

I. Kiểm định

1. Kiểm định là gì?

  • Kiểm định là để chắc chắn rằng sản phẩm được thiết kế để cung cấp tất cả các chức năng cho khách hàng.

  • Kiểm định được thực hiện từ lúc bắt đầu của quá trình phát triển phần mềm. Nó bao gồm các đánh giá và các cuộc họp, rà soát, kiểm tra, ... để đánh giá tài liệu, kế hoạch, việc lập trình, các yêu cầu và các thông số kỹ thuật.

  • Giả sử bạn đang thiết kế một cái bàn thì ở đây, kiểm định là việc kiểm tra tất cả các thành phần của chiếc bàn đó, liệu cả bốn cái chân của nó có kích thước chính xác hay không. Nếu một chân của chiếc bàn không đúng kích cỡ thì dẫn đến việc sẽ làm mất cân bằng các chân còn lại. Tương tự như vậy trong trường hợp khi phát triển một sản phẩn phần mềm hoặc ứng dụng, đòi hỏi các chức năng đều phải vận hành đúng và chính xác. Nếu bất kỳ một chức năng nào của phần mềm hoặc ứng dụng không đạt đúng tiêu chí hoặc có lỗi được tìm thấy thì sẽ dẫn đến việc thất bại của quá trình phát triển sản phẩm đó. Do đó, việc kiểm định là rất quan trọng và nó diễn ra ở bước khởi đầu của quá trình phát triển.

  • Nó trả lời cho các câu hỏi như: Có phải tôi đang xây dựng một sản phẩm đúng không? Tôi đang truy cập dữ liệu đúng không? (đặt ở đúng nơi; thực hiện đúng cách).

  • Đây là một mức độ hoạt động thấp

  • Được thực hiện trong suốt quá trình phát triển dựa trên những thao tác chủ chốt như rà soát, đánh giá và kiểm tra, phản hồi của người cố vấn, đào tạo, bản danh sách và tiêu chuẩn.

  • Thể hiện tính thống nhất, đầy đủ và chính xác của phần mềm ở từng giai đoạn và giữa mỗi giai đoạn của vòng đời phát triển.

2. Tại sao phải kiểm định?

  • Theo mô hình trưởng thành năng lực (CMM), chúng ta có thể định nghĩa rằng kiểm định là quá trình đánh giá phần mềm để xác định xem các sản phẩm của một giai đoạn phát triển nhất định có đáp ứng được các điều kiện áp đặt vào đầu của giai đoạn đó hay không.

  • Ưu điểm của kiểm định phần mềm:

    • Kiểm định giúp hạ thấp các khiếm khuyết trong các giai đoạn phát triển sau này.

    • Kiểm định các sản phẩm ở giai đoạn khởi đầu của sự phát triển sẽ giúp hiểu rõ sản phẩm một cách tốt hơn.

    • Nó làm giảm nguy cơ thất bại trong các ứng dụng phần mềm hoặc ứng dụng sản phẩm.

    • Nó giúp việc xây dựng các sản phẩm đúng theo các thông số kỹ thuật của khách hàng và nhu cầu.

II. Thẩm định

1. Thẩm định là gì?

  • Thẩm định là xác định xem hệ thống có phù hợp với yêu cầu và thực hiện các chức năng mà nó được dự định và đáp ứng các mục tiêu của tổ chức và nhu cầu của người dùng hay không.

  • Thẩm định được thực hiện vào cuối của quá trình phát triển và diễn ra sau khi việc kiểm định được hoàn thành.

  • Nó trả lời cho các câu hỏi như: Tôi đang xây dựng đúng sản phẩm hay không? Tôi đang truy cập vào đúng dữ liệu hay không? (về các dữ liệu cần thiết để đáp ứng các yêu cầu).

  • Đây là một hoạt động cấp cao.

  • Thực hiện sau khi một sản phẩm được xây dựng theo các tiêu chí nhằm đảm bảo rằng các sản phẩm tích hợp một cách chính xác vào môi trường.

  • Xác định tính đúng đắn của sản phẩm cuối cùng của một dự án phát triển đối với các nhu cầu và yêu cầu của người sử dụng.

2. Tại sao phải thẩm định?

  • Theo mô hình trưởng thành năng lực (CMM), chúng ta có thể định nghĩa thẩm định là quá trình đánh giá các phần mềm trong hoặc ở cuối của quá trình phát triển để xác định xem nó đáp ứng các yêu cầu và quy định không.

  • Một sản phẩm có thể đạt yêu cầu trong khi thẩm định, vì nó được thực hiện trên giấy và không chạy hoặc chức năng ứng dụng nào được yêu cầu. Tuy nhiên, khi cùng một thời điểm đó sản phẩm đã được thẩm định trên giấy nhưng sau đó các sản phẩm chạy có thể thất bại trong khi kiểm định. Điều này có thể xảy ra vì khi một sản phẩm hoặc ứng dụng được xây dựng theo các đặc điểm kỹ thuật nhưng những thông số kỹ thuật không chính xác vì thế họ không thể giải quyết các yêu cầu của người sử dụng.

  • Ưu điểm của kiểm định phần mềm:

    • Trong quá trình kiểm định nếu một số khiếm khuyết bị bỏ qua sau đó trong quá trình thẩm định nó có thể được phát hiện thì là lỗi.

    • Nếu trong quá trình kiểm định một số đặc điểm kỹ thuật bị hiểu nhầm và việc phát triển đã xảy ra sau đó trong quá trình thẩm định khi thực hiện chức năng đó là sự khác biệt giữa kết quả thực tế và kết quả mong đợi có thể được hiểu.

    • Thẩm định được thực hiện trong quá trình kiểm thử như kiểm thử chức năng, kiểm thử tích hợp, kiểm thử hệ thống, kiểm thử tải, kiểm thử tương thích, ...

    • Thử nghiệm giúp trong việc xây dựng các sản phẩm đúng theo yêu cầu của khách hàng và đáp ứng nhu cầu của họ.

  • Thẩm định là bước cơ bản được thực hiện bởi các kiểm thử viên trong suốt quá trình kiểm thử. Trong quá trình thẩm định sản phẩm nếu một vài sai lệch được tìm thấy trong kết quả thực tế từ kết quả mong đợi thì sau đó một lỗi sẽ được báo cáo hoặc một sự cố sẽ được đề cập. Không phải tất cả các sự cố đều là lỗi. Nhưng tất cả các lỗi đều là sự cố. Sự cố cũng có thể là kiểu 'câu hỏi' những chỗ nào các chức năng của sản phẩm không rõ ràng dành cho các kiểm thử viên.

  • Do đó, thẩm định giúp đưa ra các chức năng chính xác của các tính năng và giúp các kiểm thử viên hiểu được sản phẩm một cách tốt hơn. Nó giúp việc tạo các sản phẩm thân thiện hơn đối với người sử dụng.

III. Kết luận

  • Kiểm định và thẩm định là hai khái niệm khác nhau

    • Kiểm định được thực hiện trong giai đoạn đầu còn thẩm định được thực hiện ở giai đoạn cuối của phát triển phần mềm

    • Kiểm định là kiểm tra xem sản phẩm có được xây dựng đúng quy trình không còn thẩm định là kiểm tra xem sản phẩm được xây dựng đúng theo yêu cầu của khách hàng không.

    • Kiểm định là tĩnh trong khi thẩm định là động. Nghĩa là kiểm định là kiểm thử từng dòng mã, từng hàm trong khi thẩm định là chạy phần mềm và tìm ra lỗi.

  • Hai khái niệm này đều được áp dụng vào hầu hết các quy trình phát triển phần mềm, đều là khâu quan trọng đảm bảo việc xây dựng phần mềm được hoàn thiện và đầy đủ nhất trước khi đến tay khách hàng.

Nguồn:

http://istqbexamcertification.com/what-is-verification-in-software-testing-or-what-is-software-verification/

http://istqbexamcertification.com/what-is-validation-in-software-testing-or-what-is-software-validation/


All Rights Reserved