V-Model trong kiểm thử phần mềm

✨ Điểm chính: Mô hình V trong thử nghiệm phần mềm đảm bảo mọi giai đoạn phát triển đều có giai đoạn thử nghiệm phù hợp, cải thiện chất lượng, giảm thiểu lỗi ở giai đoạn cuối và lý tưởng cho các dự án có yêu cầu ổn định.

V-Model trong kiểm thử phần mềm

Mô hình V trong kiểm thử phần mềm là gì?

Mô hình V là một phương pháp phát triển phần mềm kết hợp từng hoạt động phát triển với một hoạt động kiểm thử tương ứng. Mô hình này còn được gọi là mô hình Xác minh và Xác thực. Cấu trúc của nó giống chữ "V", trong đó bên trái đại diện cho các hoạt động phát triển và bên phải đại diện cho các hoạt động kiểm thử. Mô hình này mở rộng mô hình Thác nước truyền thống bằng cách khắc phục những điểm yếu của mô hình này, đặc biệt là việc tập trung quá nhiều vào kiểm thử.

Trong Mô hình V, việc kiểm thử được lên kế hoạch song song với quá trình phát triển, đảm bảo phát hiện lỗi sớm và truy xuất nguồn gốc rõ ràng giữa các yêu cầu và trường hợp kiểm thử. Mô hình này được sử dụng rộng rãi trong các ngành công nghiệp đòi hỏi độ tin cậy, tuân thủ và tài liệu đầy đủ, chẳng hạn như y tế, tài chính và hàng không.

Video để hiểu Mô hình V trong Kỹ thuật phần mềm

Nhấp chuột đây nếu video không thể truy cập được

Ví dụ để hiểu mô hình V

Giả sử bạn được giao nhiệm vụ phát triển một phần mềm tùy chỉnh cho khách hàng. Bây giờ, bất kể nền tảng kỹ thuật của bạn là gì, hãy thử đoán xem trình tự các bước bạn sẽ thực hiện để hoàn thành nhiệm vụ đó là gì.

Ví dụ để hiểu mô hình V

Trình tự đúng sẽ là.

Các giai đoạn phát triển phần mềm Các hoạt động thực hiện trong từng giai đoạn
Giai đoạn thu thập yêu cầu Thu thập càng nhiều thông tin càng tốt về các chi tiết & thông số kỹ thuật của phần mềm mong muốn từ khách hàng. Đây chỉ là giai đoạn thu thập Yêu cầu.
Thiết kế sân khấu Lập kế hoạch ngôn ngữ lập trình như Java, PHP, .mạng lưới; cơ sở dữ liệu như Oracle, MySQL, v.v. Phù hợp với dự án, cũng như một số chức năng và kiến ​​trúc cấp cao.
Giai đoạn xây dựng Sau giai đoạn thiết kế là giai đoạn xây dựng, đó không phải là giai đoạn viết mã phần mềm
Giai đoạn thử nghiệm Tiếp theo, bạn kiểm tra phần mềm để xác minh rằng nó được xây dựng theo các thông số kỹ thuật do khách hàng đưa ra.
Giai đoạn triển khai Triển khai ứng dụng trong môi trường tương ứng
Giai đoạn bảo trì Khi hệ thống của bạn đã sẵn sàng để sử dụng, bạn có thể cần thay đổi mã sau này theo yêu cầu của khách hàng

Tất cả các cấp độ này tạo thành phương pháp thác nước của Chu trình phát triển phần mềm.

Tại sao lại là V-Model? (Vấn đề với Waterfall)

Mô hình thác nước truyền thống tập trung vào các giai đoạn tuần tự, với việc kiểm thử chỉ được thực hiện sau khi quá trình phát triển hoàn tất. Cách tiếp cận này thường dẫn đến việc sửa lỗi tốn kém và mất thời gian khi phát hiện lỗi muộn. Các vấn đề thường gặp bao gồm:

  • Phát hiện lỗi muộn.
  • Thiếu sự xác nhận yêu cầu cho đến giai đoạn cuối cùng.
  • Chi phí khắc phục lỗi cao hơn.
  • Rủi ro khi cung cấp sản phẩm không phù hợp với kỳ vọng của người dùng.

Mô hình V giải quyết những vấn đề này bằng cách nhúng thử nghiệm vào toàn bộ chu kỳ phát triển, giảm thiểu rủi ro và cải thiện độ tin cậy của phần mềm.

Vấn đề với mô hình thác nước

Ngoài ra, chi phí sửa lỗi tăng lên trong suốt vòng đời phát triển. Một lỗi được phát hiện càng sớm trong vòng đời thì chi phí sửa chữa nó càng rẻ. Như người ta thường nói: “Một mũi khâu đúng lúc cứu được chín mũi”.

Giải pháp: Mô hình V

Để giải quyết mối quan tâm này, mô hình thử nghiệm V đã được phát triển, nơi đối với mỗi giai đoạn trong vòng đời Phát triển, có một giai đoạn Kiểm thử tương ứng

Giải pháp: Mô hình V

  • Phía bên trái của mô hình là Vòng đời phát triển phần mềm – SDLC
  • Phía bên phải của mô hình là Vòng đời kiểm thử phần mềm – STLC
  • Toàn bộ hình trông giống chữ V nên có tên Mô hình chữ V

Ngoài mô hình V, còn có các mô hình phát triển lặp, trong đó việc phát triển được thực hiện theo từng giai đoạn, mỗi giai đoạn bổ sung chức năng cho phần mềm. Mỗi giai đoạn bao gồm một tập hợp các hoạt động phát triển và kiểm thử độc lập.

Các giai đoạn của V-Model là gì?

Mô hình chữ V bao gồm hai giai đoạn chính:

Giai đoạn kiểm chứng của V-Model (bên trái của V)

Giai đoạn xác minh tập trung vào việc phân tích và thiết kế hệ thống trước khi bắt đầu viết mã. Giai đoạn này bao gồm:

1) Phân tích yêu cầu kinh doanh

Giai đoạn Phân tích Yêu cầu khởi đầu quy trình Mô hình V bằng cách ghi lại và lập tài liệu tất cả các yêu cầu chức năng và phi chức năng. Trong giai đoạn này, các nhà phân tích nghiệp vụ làm việc chặt chẽ với các bên liên quan để hiểu rõ nhu cầu, kỳ vọng và ràng buộc của họ.

2) Thiết kế hệ thống

Thiết kế hệ thống chuyển đổi các yêu cầu thành giải pháp kỹ thuật cấp cao. ArchiKiến trúc xác định kiến ​​trúc hệ thống tổng thể, bao gồm các yêu cầu về phần cứng, thành phần phần mềm, cơ sở hạ tầng mạng và tích hợp của bên thứ ba.

3) ArchiThiết kế kiến ​​trúc (Thiết kế cấp cao)

ArchiGiai đoạn Thiết kế Kiến trúc, còn được gọi là Thiết kế Cấp cao, chia nhỏ hệ thống thành các mô-đun hoặc thành phần dễ quản lý. Giai đoạn này thiết lập các mẫu thiết kế, khuôn khổ và công nghệ được sử dụng trên toàn bộ ứng dụng. 

4) Thiết kế mô-đun (Thiết kế cấp thấp)

 Thiết kế Mô-đun, hay Thiết kế Cấp thấp (LLD), cung cấp thông số kỹ thuật chi tiết cho từng thành phần riêng lẻ được xác định trong giai đoạn kiến ​​trúc. Giai đoạn này tạo ra các tài liệu thiết kế chi tiết, thiết kế cơ sở dữ liệu, thông số kỹ thuật API và các trường hợp kiểm thử đơn vị toàn diện.

5) Mã hóa

Giai đoạn Lập trình (Coding) đại diện cho việc triển khai thực tế các mô-đun đã thiết kế. Các nhà phát triển viết mã theo thiết kế chi tiết, tiêu chuẩn lập trình và các phương pháp hay nhất do tổ chức thiết lập. Giai đoạn này nằm ở cuối hình chữ V, đánh dấu quá trình chuyển đổi từ thiết kế sang kiểm thử. Việc rà soát mã, phân tích tĩnh và thực hành tích hợp liên tục đảm bảo chất lượng mã ngay từ đầu.

Giai đoạn xác thực của V-Model (phía bên phải của V)

Giai đoạn xác thực xác nhận rằng phần mềm đã phát triển phù hợp với các yêu cầu và kỳ vọng. Giai đoạn này bao gồm:

1) Kiểm tra đơn vị

Kiểm tra đơn vị Xác thực từng module hoặc thành phần riêng biệt, đảm bảo từng đoạn mã hoạt động chính xác theo thiết kế chi tiết. Giai đoạn này tập trung vào phạm vi bao phủ mã, điều kiện biên, xử lý lỗi và xác minh logic. 

2) Kiểm tra tích hợp

Thử nghiệm hội nhập Xác minh các mô-đun khác nhau hoạt động chính xác cùng nhau, xác thực các giao diện và tương tác được xác định trong thiết kế kiến ​​trúc. Giai đoạn này kiểm tra luồng dữ liệu giữa các mô-đun, các lệnh gọi API, tương tác cơ sở dữ liệu và cơ chế truyền thông điệp. 

3) Kiểm tra hệ thống

Thử nghiệm hệ thống Xác thực toàn bộ hệ thống tích hợp dựa trên các thông số kỹ thuật thiết kế hệ thống. Giai đoạn kiểm tra toàn diện này đánh giá cả các yêu cầu chức năng và phi chức năng, bao gồm hiệu suất, bảo mật, khả năng sử dụng và khả năng tương thích.

4) Kiểm tra sự chấp nhận của người dùng (UAT)

Kiểm tra chấp nhận, còn được gọi là Kiểm thử Chấp nhận Người dùng (UAT), xác nhận hệ thống đáp ứng các yêu cầu nghiệp vụ và sẵn sàng triển khai. Giai đoạn này tập trung vào quy trình nghiệp vụ, quy trình làm việc của người dùng và các tình huống thực tế hơn là các thông số kỹ thuật. 

Mỗi giai đoạn phát triển đều tương ứng với một giai đoạn thử nghiệm. Sự kết hợp có cấu trúc này thúc đẩy khả năng truy xuất nguồn gốc và phát hiện lỗi sớm.

  • Yêu cầu ↔ Kiểm tra chấp nhận
  • Thiết kế hệ thống ↔ Kiểm thử hệ thống
  • ArchiThiết kế kiến ​​trúc ↔ Kiểm thử tích hợp
  • Thiết kế mô-đun ↔ Kiểm thử đơn vị

Nguyên lý của mô hình chữ V

Mô hình chữ V dựa trên một số nguyên tắc cốt lõi:

  • Từ lớn đến nhỏ:Các yêu cầu phát triển từ cấp độ cao đến cấp độ chi tiết và quá trình thử nghiệm phản ánh điều này.
  • Truy xuất nguồn gốc: Mỗi yêu cầu đều tương ứng với một trường hợp thử nghiệm tương ứng.
  • Thử nghiệm sớm:Các hoạt động thử nghiệm sẽ bắt đầu ngay khi các yêu cầu được xác định.
  • Tập trung tài liệu: Mỗi giai đoạn đều tạo ra các sản phẩm để xem xét và tham khảo.
  • khả năng mở rộng: Áp dụng cho các dự án lớn và nhỏ có yêu cầu ổn định.

Ưu điểm của V-Model

  • Khuyến khích phát hiện lỗi sớm, giảm chi phí và làm lại.
  • Cung cấp một cấu trúc rõ ràng liên kết các yêu cầu với các hoạt động thử nghiệm.
  • Promotes giao tiếp tốt hơn giữa nhà phát triển và người thử nghiệm.
  • Đảm bảo sản phẩm chất lượng cao thông qua quá trình xác thực nghiêm ngặt.
  • Hữu ích cho các dự án quan trọng về an toàn hoặc tuân thủ nghiêm ngặt.

Nhược điểm của V-Model

  • Cứng nhắc và không linh hoạt, khiến cho việc thay đổi trở nên tốn kém khi quá trình bắt đầu.
  • Không phù hợp với các dự án phức tạp hoặc lặp đi lặp lại.
  • Dựa nhiều vào yêu cầu được xác định rõ ràng và ổn định.
  • Nguồn lực chuyên sâu do có nhiều tài liệu và kế hoạch song song.
  • Khả năng thích ứng hạn chế so với mô hình Agile hoặc mô hình lặp đi lặp lại.

Mô hình V so với Agile: Lựa chọn phương pháp tiếp cận phù hợp

Trong khi Mô hình V nhấn mạnh vào các giai đoạn có cấu trúc với quy trình xác minh và xác thực nghiêm ngặt, Agile tập trung vào phát triển lặp đi lặp lại và khả năng thích ứng. Mô hình V lý tưởng khi các yêu cầu ổn định, tuân thủ nghiêm ngặt và tài liệu hướng dẫn là tối quan trọng. Mặt khác, Agile phù hợp với các dự án có yêu cầu luôn thay đổi, cộng tác thường xuyên với khách hàng và nhu cầu giao hàng nhanh chóng. Agile khuyến khích tích hợp liên tục, phản hồi và kiểm thử lặp đi lặp lại, mang lại sự linh hoạt nhưng đôi khi thiếu khả năng dự đoán của Mô hình V. Việc lựa chọn giữa chúng phụ thuộc vào bối cảnh dự án: các lĩnh vực được quản lý chặt chẽ, quan trọng về an toàn ưu tiên Mô hình V, trong khi các ứng dụng năng động, do người dùng điều khiển được hưởng lợi từ khả năng thích ứng của Agile. Trong nhiều trường hợp, các tổ chức kết hợp cả hai phương pháp để tận dụng đảm bảo chất lượng có cấu trúc với khả năng phản hồi của Agile.

Khi nào nên sử dụng V-Model trong Kỹ thuật phần mềm?

Mô hình chữ V phù hợp nhất với:

  • Dự án với yêu cầu ổn định.
  • Dự án vừa và nhỏ với độ phức tạp hạn chế.
  • Các ngành công nghiệp được điều chỉnh (chăm sóc sức khỏe, hàng không, ngân hàng) yêu cầu phải có hồ sơ chứng từ nghiêm ngặt.
  • Hệ thống an toàn quan trọng nơi mà độ tin cậy là tối quan trọng.
  • Dự án với các cột mốc rõ ràng và tập trung mạnh vào việc thử nghiệm.

Ứng dụng của V-Model trong QA hiện đại

Trong bối cảnh QA hiện nay, Mô hình V đặc biệt hữu ích khi kết hợp với:

  • Kiểm tra thiết bị thực tế để phát hiện các vấn đề về phần cứng và mạng.
  • Kiểm tra hồi quy để đảm bảo các bản cập nhật không làm hỏng chức năng hiện có.
  • Kiểm tra tuân thủ trong lĩnh vực tài chính, chăm sóc sức khỏe và hàng không.
  • Kiểm tra tự động hóa để tăng tốc quá trình thử nghiệm đơn vị và tích hợp.

Các phiên bản hiện đại của V-Model nhấn mạnh vào tự động hóa và thử nghiệm liên tục, phù hợp với các hoạt động DevOps.

Ví dụ ứng dụng mô hình V trong thế giới thực

Mô hình chữ V thường được áp dụng trong phát triển phần mềm chăm sóc sức khỏeVí dụ, hệ thống hồ sơ sức khỏe điện tử (EHR) phải tuân thủ các quy định nghiêm ngặt như HIPAA. Các giai đoạn xác minh đảm bảo các yêu cầu được thu thập chính xác, trong khi các giai đoạn xác thực, chẳng hạn như kiểm tra hệ thống và chấp nhận, xác nhận sự tuân thủ và độ tin cậy.

Trong tạp chí ngành công nghiệp hàng không vũ trụHệ thống điều khiển bay dựa trên V-Model vì tính chất an toàn quan trọng của chúng. Mỗi giai đoạn thiết kế đều được kết hợp với các thử nghiệm nghiêm ngặt, bao gồm thử nghiệm hệ thống dựa trên mô phỏng và thử nghiệm chấp nhận của người dùng, đảm bảo độ tin cậy trước khi triển khai.

In tài chính ngân hàngCác ứng dụng như hệ thống giao dịch trực tuyến được hưởng lợi từ Mô hình V. Khả năng truy xuất rõ ràng giữa các yêu cầu và thử nghiệm giúp giảm thiểu rủi ro sai sót trong các quy trình tài chính nhạy cảm, nơi ngay cả những sai sót nhỏ cũng có thể dẫn đến tổn thất đáng kể.

Cuối cùng, hệ thống nhúng trong phần mềm ô tôchẳng hạn như mô-đun điều khiển túi khí, thường sử dụng Mô hình V. Việc xác minh và thẩm định nghiêm ngặt đảm bảo hệ thống hoạt động như mong đợi trong mọi điều kiện, giảm thiểu rủi ro trong các tình huống quan trọng về an toàn.

Câu Hỏi Thường Gặp

Agile nhấn mạnh vào sự phát triển linh hoạt, lặp đi lặp lại với phản hồi liên tục, trong khi V-Model tuân theo các giai đoạn có cấu trúc, tuần tự với quá trình xác minh và xác thực nghiêm ngặt trước khi tiến hành.

Mô hình V được sử dụng rộng rãi trong các ngành công nghiệp được quản lý như chăm sóc sức khỏe, hàng không vũ trụ, ô tô và ngân hàng, nơi độ tin cậy, an toàn và tuân thủ là vô cùng quan trọng.

Bốn cấp độ kiểm tra là Kiểm tra đơn vị, Kiểm tra tích hợp, Kiểm tra hệ thống và Kiểm tra chấp nhận của người dùng, mỗi cấp độ được ánh xạ vào giai đoạn phát triển tương ứng.

Vâng. Mô hình chữ V vẫn được sử dụng trong các ngành công nghiệp yêu cầu tài liệu, khả năng truy xuất nguồn gốc và tuân thủ nghiêm ngặt, mặc dù nó ít phổ biến hơn trong môi trường phần mềm theo hướng linh hoạt.

Kiểm thử trong Mô hình chữ V bao gồm việc sắp xếp các giai đoạn xác minh với các giai đoạn xác thực, thiết kế các trường hợp kiểm thử sớm và thực hiện kiểm thử đơn vị, tích hợp, hệ thống và chấp nhận theo trình tự.

Tổng kết

Mô hình V củng cố quá trình phát triển phần mềm bằng cách tích hợp kiểm thử vào mọi giai đoạn của vòng đời. Trọng tâm của mô hình này là phát hiện lỗi sớm, lập tài liệu có cấu trúc và khả năng truy xuất nguồn gốc nghiêm ngặt, khiến nó trở nên lý tưởng cho các dự án có yêu cầu ổn định và nhu cầu tuân thủ cao. Cách tiếp cận có hệ thống đối với việc xác minh và xác thực, với các hoạt động kiểm thử diễn ra song song trong mỗi giai đoạn phát triển, đảm bảo chất lượng cao khi các yêu cầu ổn định và được hiểu rõ. Mặc dù kém linh hoạt hơn so với các mô hình Agile, mô hình V vẫn là một lựa chọn đáng tin cậy cho các ứng dụng quan trọng về chất lượng.