Chi tiết bài viết

Integration là một quy trình kiểm thử để đảm bảo rằng phần mềm, hay ứng dụng được kiểm thử không xảy ra bất kỳ lỗi gì trước khi đưa đến tay người dùng cuối cùng. Tuy nhiên đối với người mới bước chân vào nghề kiểm thử, hay phần đông người trái ngành chuyển làm tester vẫn chưa nắm rõ integration testing là gì? Hãy cùng daotaotester tìm hiểu về phương pháp kiểm thử tích hợp này.

Integration testing là gì?
Integration testing là gì? Các bước thực hiện kiểm thử tích hợp

Integration testing là gì?

Integration testing hay còn gọi là kiểm thử tích hợp bao gồm kiểm thử và tích hợp (I&T) là một phương pháp test case mà các đơn vị, module, hoặc thành phần khác nhau của phần mềm, ứng dụng được kiểm thử dưới một dạng một thể thống nhất. Tuy nhiên các module bên trong có thể được mã hoá và lập trình bởi những developers khác nhau.

Cũng như các phương pháp kiểm thử khác, Integration testing được thực hiện để tìm ra các lỗi, bugs vấn còn tồn động trên phần mềm. Tuy nhiên thay vì phải bóc tách lại các lỗi trên phần code của chương trình, kiểm thử tích hợp thực hiện trên các Module dựa trên logic mối quan hệ của các thành phần bên trong.

Tại sao cần phải thực hiện integration testing?

Sao khi đã hiểu được khái niệm Integration testing là gì? Chúng ta cùng phân tích những thời điểm phù hợp để kiểm thử viên thực hiện integration testing:

  • Các Module khác nhau, được lập trình bởi các developer khác nhau nên rất có thể sẽ phát sinh các lỗi khi tích hợp. Đây là lúc rất cần thực hiện integration testing nhằm đảm bảo tính đồng nhất xuyên suốt từ đầu đến cuối.
  • Trong và sau quá trình phát triển có thể phát sinh những yêu cầu khác của khách hàng. Khi các yêu cầu, chức năng mới hay đoạn code mới được thêm vào chúng phải trải qua 2 quá trình kiểm tra là Unit test và Integration testing.
  • Bất cứ thời điểm nào, phần mềm cũng có thể có phát sinh lỗi không tương thích module, vậy lúc này vai trò của integration testing là gì? Chúng dễ dàng phát sinh khu vực module bugs
  • Bên cạnh đó, Integration còn được dùng để xác định các lỗi ngoại lệ khác.

Các đặc điểm của Integration testing là gì?

Bên trong quá trình kiểm thử tích hợp, tồn tại những đặc điểm đặc trưng dưới đây:

  • Test level bên trong integration: Tồn tại 2 phép kiểm thử là: Kiểm thử tích hợp đơn vị (Component integration testing) và kiểm thử tích hợp hệ thống (system integration testing)
  • Các loại kiểm thử bên trong integration testing: Kiểm thử chức năng (Functional testing) và phi chức năng (non – functional testing)
  • Phương pháp kiểm thử: Black box và White box
  • Môi trường test: Môi trường test phù hợp (staging)
  • Đội ngũ thực hiện: Developer và tester
  • Chiến lược thực hiện: Bên trong integration testing tồn tại hai chiến lược tiếp cận là Bigbang và Incremental
Đặc điểm của integration testing
Các đặc điểm của integration testing là gì?

Các phương pháp thực hiện bên trong integration testing

Ngoài việc chỉ ra khái niệm và đặc điểm của integration testing là gì? Daotaotester xin được chỉ ra các chiến lược để tiếp cận quy trình integration testing:

Bigbang

Ở phương pháp bigbang, các module sẽ được tích hợp và thử nghiệm đồng thời cùng một lúc. Nhờ vậy mà kiểm thử viên có thể phát hiện các lỗi phát sinh khi kết hợp từng Unit test với nhau.

Ưu điểm của phương pháp này:

  • Đơn giản, dễ dàng sử dụng ở các dự án nhỏ
  • Tối ưu tất cả quá trình test, vì gần như chỉ cần hoàn thành integration testing là quá trình test được hoàn thiện

Nhược điểm của phương pháp này:

  • Dễ dàng bỏ sót các bugs, đặc biệt là các bugs khó phát hiện
  • Phụ thuộc vào quá trình tích hợp hệ thống
  • Việc quá phụ thuộc vào tích hợp này làm tốt rất nhiều thời gian phát hiện ra nếu nếu quá trình phát triển bị thất bại
  • Khi thực hiện quá trình kiểm thử, các module sẽ bị cô lập nên người dùng có thể ko được trải nghiệm 1 số chức năng trong quá trình fix bugs.
Phương pháp big bang bên trong integration testing
Phương pháp bigbang bên trong integration testing là gì?

Incremental testing

Nếu như ưu điểm chính của Bigbang là thời gian thì Incremental testing lại có những ưu điểm nổi trội hơn bigbang rất nhiều, Ở phương pháp này, thay vì kiểm tra đồng thời nhiều module thì tester sẽ chỉ kiểm tra 1 số lượng module nhất định. Các module sẽ được thêm các phân vị khác để kiểm thử các hoạt động của phần mềm. Quá trình test integration sẽ chỉ kết thúc khi tất cả các module được thử nghiệm thành công.

Yếu tố làm cơ sở để kiểm thử tích hợp là Stub và Driver. Cả hai mô phỏng kết nối với module mà không cần thực hiện toàn bộ Logic của Module. Trong đó:

  • Stub: Là các Module đang kiểm thử
  • Driver: Gọi Module để được kiểm thử

Bên trong Incremental được thực hiện bởi 3 hướng tiếp cận khác nhau, cụ thể:

Kiểm thử Bottom – Up

Bottom – Up là phương thức kiểm thử theo chiều dọc từ dưới lên trên. Các module ở mức thấp sẽ được kiểm thử với các module bậc cao. Quá trình chỉ đóng lại khi tất cả các module được thử nghiệm. Bottom – Up sẽ phù hợp hơn với yếu tố Driver testing

Ưu điểm của Bottom – Up

  • Thu gọn khu vực và phạm vi xảy ra bug
  • Giảm thời gian cho quá trình test vì không cần phải tích hợp module thành 1 tổng thể để kiểm thử

Nhược điểm của Bottom – Up

  • Dẫn đến sự thay đổi của hệ thống bên trong phần mềm
  • Các module quan trọng thông quá quá trình kiểm thử vẫn có thể bị bỏ sót bugs

Kiểm thử Top – Down

Ngược lại với phương pháp tiếp cận Bottom – Up thì kiểm thử Top – Down theo dõi dòng kiểm soát của hệ thống phần mềm. Thế lên thay vì là 1 driver testing, Top – Down là một Stub testing.

Ưu điểm của Top – Down

  • Phát hiện được gần như toàn bộ bugs trong khoảng thời gian ngắn nhất
  • Phát hiện và chỉ ra cách khắc phục những lỗi quan trọng
  • Có thể áp dụng quá trình Integration testing Top – Down ngay từ sớm.

Nhược điểm của Top – Down

  • Cần một lượng stub
  • Ở các module bậc thấp quá trình kiểm thử là tương đối khó khăn nên tổng thể quá trình test chưa được tối ưu.

Kiểm thử tích hợp Sandwich

Tổng hòa của cả 2 phương pháp Bottom – Up và Top – Down là phương pháp tích hợp Sandwich. Các Module được kiểm thử cùng 1 lúc chính vì vậy việc sử dụng Stubs và Driver để tối ưu hoá quá trình test. Lúc này trong hệ thống của phần phềm bao gồm 3 lớp:  là lớp trên, lớp giữa và lớp dưới. Trong 3 lớp trên lớp ở giữa là mục tiêu chính của toàn bộ quá trình thử nghiệm. Quá trình kiểm thử Sandwich sẽ bắt đầu ở hai lớp ngoài và hội ở giữa.

Ưu điểm của phương pháp Sandwich:

  • Quá trình kiểm thử là song hành ở cả 2 lớp trên và dưới
  • Quá trình phát hiện được đầy đủ các lỗi trong quá trình tích hợp của Module

Nhược điểm của phương pháp Sandwich:

  • Nếu như đã thực hiện Sandwich thì việc kiểm thử mở rộng ở các Module con sẽ không được thực hiện.

Quy trình thực hiện của 1 bài kiểm thử tích hợp

Sau khi đã hiểu rõ những nội dung trên, các bạn sẽ thắc mắc quy trình thực hiện của Integration testing là gì? Dưới đây là quy trình 5 bước mà Daotaotester.vn đề xuất cho 1 quy trình kiểm thử tích hợp cơ bản:

Bước 1: Xác định yêu cầu kiểm thử để chọn ra Module và các thành phần khác tham gia vào bài test

Bước 2: Kiểm thử từng chi tiết và thành phần tham gia với nguyên tắc hộp đen hộp trắng

Bước 3: Lập kế hoạch kiểm thử với các trường hợp cụ thể và Script phù hợp

Bước 4: Thực hiện bài test ở các trường hợp đã nêu ở trên, ghi chép và báo các lại các lỗi phát sinh (nếu có)

Bước 5: Test lại một lần nữa sau quá trình chỉnh sửa

Các yêu cầu trong quá trình test Integration

Các yêu cầu cần thiết ở đầu vào khi thực hiện Integration là gì?

  • Để thực hiện quá trình kiểm thử tích hợp, đòi hỏi kiểm thử viên hiểu được toàn bộ cấu trúc code của phần mềm
  • Hệ thống các module phải dễ hiểu và được viết bởi bởi ngôn ngữ lập trình đồng nhất, thuận tiện cho quá trình test
  • Các module được xác định vai trò cụ thể của mình, và cách chúng truyền dữ liệu cho nhau
  • Kế hoạch, kịch bản và Testing documentation được thông qua
  • Các trường hợp kiểm thử cần được xác định bởi thời gian và ngữ cảnh tương ứng

Các đòi hỏi ở đầu ra của kiểm thử tích hợp

Tiêu chí để hoàn thiện Integration testing là gì? 1 quá trình kiểm thử tích hợp để đáp ứng đầu ra cần đáp ứng những tiêu chí sau:

  • Quá trình kiểm thử thành công, các bugs được phát hiện toàn bộ và quá trình chỉnh sửa thành công
  • Các bước thực hiện và kết quả của từng bước bên trong Integration testing được ghi chép chi tiết

Bài viết trên của Daotaotester đã chỉ ra cho bạn đọc những kiến thức về Integration là gì? Mong rằng những nội dung mà chúng mình chia sẽ sẽ giúp ích cho công việc và quá trình học tập để trở thành tester chuyên nghiệp của bạn

Còn nếu bạn đang trong quá trình tìm hiểu và mong muốn trở thành tester chuyên nghiệp, hãy tham gia ngay: Khoá học tester cho người mới bắt đầu ngay hôm nay, để nhận được tới 25% ưu đãi trong tháng 4 này.

Bài trước

Quy trình 8 bước cơ quản để thực hiện Testing website: Nhóm công cụ hỗ trợ kiểm thử website

Bài tiếp theo

Agile testing là gì? Điều gì tạo lên thành công của agile testing

Chia sẻ:

Bình luận

Bài viết liên quan

Zalo Zalo Messenger Messenger Phone Phone