Tìm hiểu: Mô hình chữ V trong kiểm thử phần mềm

Ngày đăng: 18/08/2022   -    Cập nhật: 18/08/2022
Mô hình chữ V trong kiểm thử phần mềm (V Model) còn được gọi là mô hình xác thực hay mô hình xác minh. Nó là mô hình có tính kỷ luật cao, trong đó, giai đoạn kiểm thử chạy song song với mỗi giai đoạn phát triển phần mềm. 
Mô hình chữ V trong kiểm thử phần mềm

Đọc thêm: Các mô hình kiểm thử phần mềm

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

Mô hình chữ V trong kiểm thử phần mềm còn được gọi là mô hình xác minh (Verification Model) hay mô hình xác thực (Validation Model). Đây là mô hình mở rộng của Waterfall Model (mô hình thác nước). 
 
Không giống như mô hình thác nước, với mô hình V, tương ứng với mỗi giai đoạn phát triển phần mềm là một giai đoạn kiểm thử. Việc kiểm thử trong mô hình chữ V thường được tiến hành ngay từ giai đoạn lấy yêu cầu. Để hiểu rõ hơn về mô hình chữ V trong kiểm thử phần mềm, trước tiên, chúng ta sẽ cùng nhau tìm hiểu về xác minh (verification) và xác nhận hợp lệ (validation) trong phần mềm. 
  • Xác minh (verification): Đây là một kỹ thuật phân tích tĩnh trong kiểm thử, nghĩa là, kỹ thuật này được thực hiện mà không cần chạy code. Xác minh bao gồm một số hoạt động như: xem lại (review), kiểm tra (inspection) và kiểm tra từ đầu đến cuối (walkthrough).  
     
  • Xác nhận hợp lệ (validation): Với kỹ thuật này, việc kiểm thử sẽ được thực hiện bằng cách chạy code. Chẳng hạn: kỹ thuật kiểm tra chức năng (function) và phi chức năng (non-function). 
Hiện nay, mô hình chữ V trong kiểm thử phần mềm được sử dụng rộng rãi. Với mô hình này, kiểm thử sẽ được thực hiện trong từng giai đoạn, song song với chu kỳ phát triển phần mềm (Software Development Life Cycle).  
 

Đọc thêm: Các phương pháp kiểm thử phần mềm

Nguyên lý hoạt động của V Model

Về cơ bản, mô hình chữ V (V Model) gần giống với mô hình thác nước (Waterfall Model). Cụ thể, cách thực hiện từng giai đoạn của V Model tương tự mô hình thác nước, tức là, mỗi giai đoạn cần được hoàn thiện trước khi bắt đầu giai đoạn tiếp theo. 
Trong V Model, các hoạt động phát triển và đảm bảo chất lượng được thực hiện đồng thời. Không có pha rời rạc mà thay vào đó, kiểm thử sẽ được bắt đầu ngay từ giai đoạn lấy yêu cầu. Các hoạt động xác minh và xác nhận được thực hiện song song trong từng giai đoạn. 
 
Hoạt động phát triển và đảm bảo chất lượng được thực hiện song song khi áp dụng mô hình chữ V trong kiểm thử phần mềm

Trong quá trình phát triển theo V Model, phía bên trái là các hoạt động phát triển phần mềm (phân tích yêu cầu, yêu cầu hệ thống, thiết kế kiến trúc, thiết kế mô-đun, code) và bên phải là các hoạt động kiểm thử (kiểm tra đơn vị, kiểm tra tích hợp, kiểm tra hệ thống). 

Các hoạt động phát triển phần mềm

Các hoạt động phát triển phần mềm (bên trái) bao gồm phân tích yêu cầu, yêu cầu hệ thống, thiết kế kiến trúc, thiết kế mô-đun và code. Cụ thể:
  • Phân tích yêu cầu: Các yêu cầu được thu thập, phân tích và nghiên cứu kỹ lưỡng. Trong giai đoạn này, việc hệ thống có những chức năng gì quan trọng hơn hệ thống chạy như thế nào. Brainstorming, interviews cần được thực hiện để có mục tiêu rõ ràng. 
  • Hoạt động xác minh: Đánh giá yêu cầu (requirements review)
  • Hoạt động xác nhận: Tạo test case UAT, đầu ra cần có là tài liệu về yêu cầu, UAT test case
Thu thập, phân tích và nghiên cứu kỹ yêu cầu của khách hàng
Yêu cầu hệ thống: Trong giai đoạn này, yêu cầu hệ thống của phần mềm sẽ được xây dựng. Nhóm sẽ tìm hiểu, nghiên cứu về các yêu cầu có thể được thực hiện. Ngoài ra, tính khả thi về mặt kỹ thuật của yêu cầu, nhu cầu phần cứng/phần mềm và các mô-đun sẽ được tạo cũng được tìm hiểu. 
  • Hoạt động xác minh: Đánh giá thiết kế (design reviews)
  • Hoạt động xác nhận: Tạo test plan và test case và traceability metrics
  • Đầu ra cần có: System test plan, feasibility reports, Feasibility report, các mô-đun, tài liệu yêu cầu phần cứng
Thiết kế kiến trúc: Trong giai đoạn này, kiến trúc phần mềm được tạo ra dựa trên thiết kế mức cao. Sơ đồ kiến trúc, bảng cơ sở dữ liệu, các mô-đun, chi tiết về công nghệ, mối quan hệ về sự phụ thuộc sẽ được hoàn tất trong giai đoạn này. 
  • Hoạt động xác minh: Đánh giá thiết kế
  • Hoạt động xác nhận: Kế hoạch thử nghiệm tích hợp và các trường hợp thử nghiệm
Đầu ra cần có: Tài liệu thiết kế, kế hoạch kiểm thử tích hợp, các trường hợp thử nghiệm, thiết kế bảng cơ sở dữ liệu,…
Thiết kế mô-đun: Thiết kế mô-đun là thiết kế cấp thấp, theo đó, mỗi mô-đun hay thành phần đều được thiết kế riêng biệt. Các kiểu dữ liệu, giao diện, method, class đều được hoàn thiện trong giai đoạn này. 
  • Hoạt động xác minh: Đánh giá thiết kế
  • Hoạt động xác nhận: Tạo và xem xét các trường hợp kiểm tra đơn vị
  • Đầu ra cần có: Các đơn vị kiểm tra 
Code: Giai đoạn này cũng bao gồm các hoạt động xác minh, hoạt động xác nhận và đầu ra cần có. Cụ thể:
  • Hoạt động xác minh: Xem xét mã và kiểm tra các trường hợp
  • Hoạt động xác nhận: Tạo các trường hợp kiểm tra chức năng
  • Đầu ra cần có: Tất cả trường hợp kiểm thử và danh sách kiểm tra lại 

Các hoạt động kiểm thử phần mềm

Các hoạt động kiểm thử phần mềm (bên phải) hay chính là giai đoạn xác nhận. Chúng ta sẽ bắt đầu phân tích từ dưới lên trên: kiểm tra đơn vị, kiểm tra tích hợp, kiểm tra hệ thống, thử nghiệm chấp nhận của người dùng. 
 
Kiểm tra đơn vị (Unit test): Các đơn vị đã được tạo ra trong giai đoạn thiết kế cấp thấp sẽ được thực hiện ở giai đoạn này. Mỗi đoạn code được viết sẽ có một phương pháp kiểm tra xem đoạn code đó có cho kết quả như mong muốn không. 
 
Các đơn vị đã được tạo ra trong giai đoạn thiết kế cấp thấp sẽ được thực hiện

Kiểm tra đơn vị (Unit test) là một kỹ thuật kiểm thử hộp trắng. Về cơ bản, kiểm tra đơn vị được thực hiện bởi nhóm phát triển. Khi phát hiện bất thường, lỗi sẽ được ghi lại và theo dõi. 

Đầu ra cần có: Kết quả thực hiện kiểm thử đơn vị

Kiểm thử tích hợp: Đây là một kỹ thuật mà đơn vị kiểm tra là mô-đun, được tích hợp, xem xét kết quả. Hiểu một cách đơn giản, kiểm thử tích hợp sẽ xác nhận các thành phần của ứng dụng hoạt động với nhau có đúng như mong đợi hay không.
Trong giai đoạn kiểm thử tích hợp (Integration testing), các trường hợp kiểm thử tích hợp đã được tạo ra trong giai đoạn thiết kế kiến trúc. Nếu xuất hiện bất thường, bug sẽ được ghi lại và theo dõi. 
Đầu ra cần có: Các kết quả kiểm tra tích hợp
 
Kiểm tra hệ thống (System testing): 
 
Kiểm thử chức năng và phi chức năng sẽ được thực hiện trong giai đoạn này. Nói theo một cách khác, việc kiểm tra thực tế hoạt động của ứng dụng diễn ra trong giai đoạn kiểm tra hệ thống.  Khi tiến hành kiểm tra hệ thống, lỗi được phát hiện và theo dõi để sửa. Trong giai đoạn này, báo cáo tiến độ cũng là một phần quan trọng. Để kiểm tra mức độ bao phủ và giảm bớt rủi ro, ma trận truy vết sẽ được cập nhật. 

Đầu ra cần có: Báo cáo tóm tắt kiểm tra, các bản ghi kiểm tra, báo cáo lỗi, ma trận truy vết và kết quả kiểm tra
Thử nghiệm chấp nhận của người dùng: Về cơ bản, thử nghiệm chấp nhận có liên quan đến việc kiểm tra các yêu cầu business. Tại đây, kiểm tra sẽ được thực hiện nhằm xác nhận rằng, các yêu cầu kinh doanh đã được đáp ứng trong môi trường người dùng. 
 
Trong giai đoạn này, thử nghiệm khả năng tương thích sẽ được thực hiện. Đôi khi, thử nghiệm phi chức năng (load, volume, stress) cũng được thực hiện trong thử nghiệm chấp nhận của người dùng. 

Đầu ra cần có: Kết quả UAT, ma trận độ bao phủ business được cập nhật
 

Ví dụ về V Model - mô hình chữ V trong kiểm thử phần mềm

Chẳng hạn, bạn được giao nhiệm vụ phát triển phần mềm cho khách hàng. Chúng ta sẽ không nhắc đến nền tảng kỹ thuật mà sẽ đưa ra giả thiết về các bước thực hiện để hoàn thành nhiệm vụ.
 

Các giai đoạn trong chu kỳ phát triển phần mềm

Các hoạt động được thực hiện trong từng giai đoạn

Thu thập yêu cầu

Thu thập thông tin chi tiết, thông số kỹ thuật của phần mềm, mong muốn của khách hàng 

Thiết kế hệ thống

Lên kế hoạch lựa chọn cơ sở dữ liệu (MySQL, Oracle,…) và ngôn ngữ lập trình (PHP, Java,…)

Giai đoạn xây dựng

Giai đoạn này sẽ triển khai thực hiện mã hóa code  

Giai đoạn kiểm thử

Xác minh xem nó được xây dựng đúng theo thông số kỹ thuật được cung cấp bởi khách hàng hay không

Giai đoạn triển khai

Triển khai ứng dụng, phần mềm trong môi trường thật 

Giai đoạn bảo trì 

Nâng cấp, bảo trì hoặc thay đổi code theo yêu cầu của khách hàng 


Đây là các bước của mô hình thác nước trong kiểm thử phần mềm. Với mô hình này, việc kiểm thử sẽ được tiến hành sau khi code xong. Tuy nhiên, khi bạn làm việc trong hệ thống phức tạp, dự án lớn, những chi tiết chính trong giai đoạn lấy yêu cầu có thể bị bỏ qua. 

Như vậy, một sản phẩm kém chất lượng sẽ được bàn giao cho khách hàng. Bạn có thể phải thực hiện lại từ đầu để có thỏa mãn yêu cầu của khách hàng.  Hoặc khi bạn quản lý các yêu cầu một cách chính xác nhưng xuất hiện lỗi nghiêm trọng trong kiến trúc phần mềm và thiết kế, để sửa lỗi, bạn có thể phải thiết kế lại toàn bộ phần mềm.
 
Theo đánh giá từ các dự án, 1/2 tổng số lỗi thường được tìm thấy trong các yêu cầu và thiết kế. Bên cạnh đó, chi phí khắc phục lỗi sẽ tăng lên trong suốt vòng đời phát triển phần mềm. V Model xuất hiện và có khả năng khắc phục những vấn đề của mô hình thác nước.  Với mô hình V Model, mỗi giai đoạn phát triển tương ứng với một giai đoạn kiểm thử:
  • Toàn bộ mô hình giống như chữ V, cho nên được gọi là V Model
  • 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

Khi nào áp dụng V Model và cho những dự án như thế nào?

V Model thường được áp dụng khi nhà thầu triển khai dự án có đội ngũ kỹ thuật vững chuyên môn, giàu kinh nghiệm; sẵn nguồn tài nguyên và phong phú, có khả năng đáp ứng yêu cầu, thiết kế, thi công và bàn giao nhanh. 
 
V Model được áp dụng khi nhà thầu triển khai dự án có đội ngũ kỹ thuật vững chuyên môn, giàu kinh nghiệm

Hiện nay, mô hình chữ V trong kiểm thử phần mềm được sử dụng phổ biến. Mô hình này thường được áp dụng cho những dự án nhỏ và trung bình, trong đó, các yêu cầu của dự án cố định, rõ ràng theo tiêu chuẩn trong nước và quốc tế. 
 

Ưu điểm và nhược điểm khi sử dụng mô hình V

Mô hình chữ V trong kiểm thử phần mềm sở hữu rất nhiều ưu điểm vượt trội. Tuy nhiên, cũng giống như những mô hình kiểm thử phần mềm khác, mô hình chữ V vẫn tồn tại một số nhược điểm nhỏ. 

Ưu điểm

  • Đơn giản, thân thiện và tiết kiệm thời gian 
  • Có kế hoạch, hoạt động cụ thể cho quá trình kiểm thử
  • Khả năng thành công cao hơn so với mô hình thác nước
  • Phát hiện nhanh sai sót và tìm ra nguyên nhân từ bước đầu 

Nhược điểm

  • Còn tồn tại sự cứng nhắc, ít linh hoạt (sau mỗi step phải kiểm tra, xác nhận)
  • Không đáp ứng được yêu cầu dịch vụ là vừa phát triển vừa bán sản phẩm
  • Nếu yêu cầu dự án đơn giản thì việc thực hiện các công đoạn xác minh sẽ tiêu tốn rất nhiều thời gian
  • Phải quay lại các bước đầu tiên, update tài liệu nếu có sự thay đổi về kỹ thuật giữa chừng 
  • Sản phẩm của dự án chỉ được ra mắt khi hoàn thành các bước, không có nguyên mẫu ngay từ ban đầu
Tham khảo: Khóa học kiểm thử phần mềm tại NIIT

Kết luận: Mô hình chữ V trong kiểm thử phần mềm (V Model) giúp khắc phục những hạn chế lớn nhất của mô hình thác nước. Mô hình này phù hợp với những dự án nhỏ, trung bình và được áp dụng khi nhà thầu triển khai dự án có đội ngũ kỹ thuật giỏi cùng nguồn tài nguyên phong phú. 

Đọc thêm các bài viết liên quan khác:

Bình luận Facebook
Khóa học liên quan đến bài viết

Khóa học PHP Full stack [2023] cho người mới bắt đầu

96 giờ
Khóa học Lập trình PHP Full stack, phiên bản cập nhật lần thứ 8. Dạy Lập trình PHP bài bản từ Front end đến Back end + Laravel. Hướng dẫn làm 2 Dự Án Web lớn

Khóa học Magento: Làm chủ CMS TMĐT lớn nhất

44 giờ
Khóa học Lập trình Magento là chương trình đào tạo chuyên sâu về phát triển website Thương mại Điện tử (wocommerce) với CMS Magento.

VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)

29 Buổi
Khóa học VBA Excel Toàn Tập (Cơ bản-Nâng cao) cho dân văn phòng nhằm giúp tối đa hóa năng suất, chất lượng công việc với công cụ Excel. Học sử dụng VBA để tự động hóa công việc ở một tầm cao mới.

Khóa học BIG DATA với Hadoop và Spark

56 giờ
NIIT - ICT Hà Nội cung cấp khóa học BIG DATA nhằm đáp ứng nhu cầu phân tích dữ liệu lớn, phức tạp, tăng cao hiệu suất xử lý. Tùy biến linh hoạt theo nhu cầu.

KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG

50 giờ
Khóa học giúp học viên sử dụng thành thạo ngôn ngữ Lập trình Python (3x). Hiểu và phát triển được Ứng dụng Web với Django Framework. Học thực hành với Giảng viên cao cấp.

Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội

5 buổi
Khai giảng Khóa học C&B Excel tại Hà Nội. Khóa học Tiền lương, Bảo hiểm xã hội, Phúc lợi... Sử dụng Excel giải quyết bài toán tính thuế TNCN, quy tình tính bảo hiểm

Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi

Liên hệ
Khóa học IOT (Internet of Things) với Raspberry Pi được thiết kế theo phương pháp project-based giúp học viên giải quyết bài toán IOT trong thực tế.

Khóa học Java Full stack (IJFD)

104 giờ
Học lập trình Java Fullstack với khóa học được xây dựng theo lộ trình bài bản, từ JAVA CƠ BẢN đến JAVA WEB và nâng cao về JAVA FRAMEWORK như: Spring Boot, Hibernate

Khóa học Lập trình Android tại Hà Nội

59 giờ
NIIT - ICT Hà Nội cung cấp khóa học Lập trình Android với ngôn ngữ lập trình Java. Chương trình cung ứng lập trình viên Android theo yêu cầu doanh nghiệp.
Mục lục
Đăng ký tư vấn
Nhân viên gọi điện tư vấn miễn phí sau khi đăng ký
Được cập nhật các ưu đãi sớm nhất
Hotline: 0383180086
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Hãy đăng ký để nhận những thông tin mới nhất về học bổng mới nhất tại NIIT - ICT Hà Nội
top
Đóng lại Đăng ký học tại NIIT - ICT Hà Nội
6260+ học viên đã theo học tại NIIT - ICT Hà Nội và có việc làm tốt trong ngành lập trình. Nắm lấy cơ hội ngay hôm nay!
Chọn khóa học
  • KHÓA HỌC LẬP TRÌNH FRONT END VỚI REACT.JS
  • KHÓA HỌC LẬP TRÌNH PHP WEB
  • Khóa học PHP Full stack [2023] cho người mới bắt đầu
  • Khóa học BIG DATA với Hadoop và Spark
  • Khóa học Lập trình Android tại Hà Nội
  • [Tuyển sinh 2023] Lập trình viên Quốc tế DigiNxt
  • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại Hà Nội
  • LẬP TRÌNH GAME
    • Khóa học Lập trình Game Unity
  • LẬP TRÌNH WEB FRONT END
    • KHÓA HỌC PYTHON HƯỚNG ĐỐI TƯỢNG
    • KHÓA HỌC ANGULAR & TYPESCRIPT (FRONT END)
  • LẬP TRÌNH WEB BACK END
    • LẬP TRÌNH JAVA WEB VỚI FRAME WORK
    • Lập trình Web với Django
    • Lập trình PHP với Laravel Framework
  • CHƯƠNG TRÌNH ĐÀO TẠO ỨNG DỤNG CÔNG NGHỆ
    • Khóa học Tiền lương & Phúc lợi (C&B Excel) tại TP HCM
  • LẬP TRÌNH WEB FULL STACK
    • Khóa học Java Full stack (IJFD)
  • LẬP TRÌNH MOBILE
    • FRONT-END VỚI REACTJS VÀ REACT NATIVE
    • Lập trình Android Nâng cao
  • ĐÀO TẠO CHO DOANH NGHIỆP
    • KHÓA HỌC BUSINESS ANALYSIC TỪ CƠ BẢN ĐẾN NÂNG CAO 2023
    • Khóa học Magento: Làm chủ CMS TMĐT lớn nhất
    • Khóa học IOT: Xây dựng Sản phẩm IOT với Raspberry Pi
    • Khóa học Automation Testing Chuyên nghiệp
  • KHÓA HỌC DỰ ÁN
    • Học sử dụng bộ Office: Word, Excel, Power Point, Mail chuyên nghiệp
  • KHÓA HỌC KHÁC
    • VBA Excel Toàn Tập (Cơ Bản - Nâng Cao)
    • VBA Excel Nâng cao
    • Khóa học JMeter: Performance Testing
    • Khóa học Tester đạt chuẩn Quốc tế ISTQB Foundation Level
    • Khoá Học Tester đạt chuẩn quốc tế ISTQB Advanced Level
Bạn chưa chọn khóa học cần đăng ký
Tên không được để trống
Số điện thoại không được để trống
Email không được để trống
Đăng ký học thành công!
Cảm ơn bạn đã đăng ký học tại NIIT - ICT HÀ NỘI!