TESTING FUNDAMENTALS
TYPES OF TESTING
TESTCASE DEVELOPMENT
TESTING TECHNIQUES
TEST MANAGEMENT & CONTROL
DEFECTS
AGILE
TESTING DIFFERENT DOMAINS
WHITEBOX TESTING
PERFORMANCE TESTING
ADVANCE TESTING TOPICS
FAQ
TESTING TYPES - MEGA LIST
TOOLS
CHECK!
CERTIFICATION
LIVE TESTING PROJECT
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Kiểm thử tích hợp

Kiểm thử tích hợp - Intergration testing là bước rất quan trọng trong quá trình kiểm thử. Muốn phần mềm được đảm bảo chất lượng, hệ thống được vận hành theo đúng mong muốn người dùng thì kiểm thử tích hợp là không thể thiếu.

1. Kiểm thử tích hợp là gì?

Kiểm thử tích hợp (Integration Testing) được định nghĩa là một loại kiểm thử trong đó các module của phần mềm được tích hợp logic và được kiểm thử theo nhóm.

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.

Một dự án phần mềm điển hình bao gồm nhiều module, được code bởi các lập trình viên. Kiểm thử tích hợp là kiểm thử sự tương thích giữa các module đó.

Do đó, kiểm thử tích hợp còn được gọi là I & T (Tích hợp và Kiểm thử), String Testing (Kiểm thử chuỗi) và đôi khi là Thread Testing (Kiểm thử luồng).

2. Tại sao phải kiểm thử tích hợp?

integration testing 1 png

Mặc dù mỗi module đã được unit testing nhưng lỗi vẫn còn tồn tại vì một số lý do:

  • Mỗi Module được thiết kế bởi một developer độc lập, có kiến thức và logic lập trình có thể khác với các developer khác. Kiểm thử tích hợp trở nên cần thiết để xác minh các module trong phần mềm hoạt động thống nhất.
  • Tại thời điểm phát triển các module, có thể có những thay đổi yêu cầu từ khách hàng. Các yêu cầu mới này có thể không được unit testing, do đó Kiểm thử tích hợp hệ thống trở nên cần thiết.
  • Các giao diện của các module trong phần mềm với cơ sở dữ liệu có thể không tương thích
  • Khi tích hợp các module vào hệ thống có thể không tương thích với cấu hình chung của hệ thống
  • Xử lý các ngoại lệ không đầy đủ có thể gây ra lỗi.

3. Ví dụ về test case kiểm thử tích hợp

Test Cases kiểm thử tích hợp khác với các Test Cases khác, kiểm thử tích hợp tập trung chủ yếu vào các giao diện và luồng dữ liệu / thông tin giữa các module. Ở đây tích hợp các liên kết được ưu tiên kiểm thử thay vì kiểm thử các đơn vị chức năng.

Ví dụ: kiểm thử tích hợp cho kịch bản sau: Ứng dụng có 3 module là 'Trang đăng nhập', 'Hộp thư' và 'Xóa email' và mỗi module được tích hợp một cách hợp lý.

Ở đây không tập trung nhiều vào kiểm thử Trang đăng nhập vì nó đã được thực hiện trong Unit testing. Nhưng hãy kiểm thử xem Trang đăng nhập được liên kết với Trang Hộp thư như thế nào.

Tương tự, Kiểm thử sự tích hợp của Trang Hộp thư với module Xóa Thư.

Test Case ID Tiêu đề Mô tả Kết quả mong đợi
1 Kiểm thử liên kết giao diện giữa module Đăng nhập và module Hộp thư Nhập thông tin đăng nhập và click vào nút Đăng nhập Được chuyển đến Hộp thư
2 Kiểm thử liên kết giao diện giữa module Hộp thư và module Xóa Thư Từ Hộp thư chọn email và click vào nút xóa Email đã xóa sẽ xuất hiện trong thư mục Đã xóa hoặc Thùng rác

4. Cách tiếp cận / Phương pháp / Chiến lược của Kiểm thử tích hợp

Có 2 cách tiếp cận trong Kiểm thử tích hợp:

  • Cách tiếp cận Big Bang:
  • Cách tiếp cận tăng dần (Incremental), được chia thành các cách sau:
  1. Cách tiếp cận từ trên xuống (Top Down)
  2. Cách tiếp cận từ dưới lên (Bottom Up)
  3. Phương pháp tiếp cận Sandwich - Kết hợp từ trên xuống và từ dưới lên

Dưới đây là các chiến lược, cách thực hiện và những ưu điểm cũng như những nhược điểm của chúng.

Cách tiếp cận Big Bang

Tất cả các thành phần được tích hợp cùng một lúc, sau đó tiến hành kiểm thử.

Ưu điểm:

Thuận tiện cho các hệ thống nhỏ.

Nhược điểm:

  • Khó khăn trong việc phát hiện bug.
  • Với số lượng giao diện cần được kiểm thử theo phương pháp này, một số giao diện liên kết cần kiểm thử có thể dễ dàng bị bỏ qua.
  • Vì kiểm thử Tích hợp chỉ có thể bắt đầu sau khi tất cả các module được thiết kế, nên nhóm kiểm thử sẽ có ít thời gian thực hiện hơn trong giai đoạn kiểm thử.
  • Vì tất cả các module được kiểm thử đồng thời, các module quan trọng có rủi ro cao không bị cô lập và được ưu tiên kiểm thử. Các module có liên quan đến giao diện người dùng cũng không bị cô lập và được ưu tiên kiểm thử.

Cách tiếp cận tăng dần

Trong phương pháp này, kiểm thử được thực hiện bằng cách ghép hai hoặc nhiều module có liên quan đến logic. Sau đó, các module liên quan khác được thêm vào và kiểm thử chức năng thích hợp. Quá trình tiếp tục cho đến khi tất cả các module được thêm và hoàn thành quá trình kiểm thử.

Cách tiếp cận tăng dần được thực hiện bởi hai Phương pháp khác nhau:

  • Từ dưới lên (Bottom Up)
  • Từ trên xuống (Top Down)

Stub và Driver là gì?

Phương pháp tiếp cận tăng dần được thực hiện bằng cách sử dụng các chương trình giả lập là Stub và Driver. Stub và Driver không thực hiện toàn bộ logic của module mà chỉ mô phỏng kết nối dữ liệu với module đang được gọi.

Stub: Được gọi bởi module đang kiểm thử.

Driver: Gọi module để được kiểm thử.

Tích hợp từ dưới lên

Trong cách tích hợp từ dưới lên, mỗi module ở các cấp thấp hơn được kiểm thử với các module cao hơn cho đến khi tất cả các module được kiểm thử. Tích hợp từ dưới lên cần sự hỗ trợ của Driver để kiểm thử

Sơ đồ biểu diễn cách tiếp cận từ dưới lên:

integration testing 2 png

Ưu điểm:

  • Việc phát hiện lỗi dễ dàng hơn.
  • Không bị lãng phí thời gian chờ đợi tất cả các module được xây dựng, không giống như phương pháp Big-bang

Nhược điểm:

  • Các module quan trọng (ở cấp cao nhất của kiến ​​trúc phần mềm) có luồng điều khiển được kiểm thử lần cuối nên dễ bị sót lỗi.
  • Thực hiện kiểm thử tích hợp từ dưới lên từ sớm là không thể

Tích hợp từ trên xuống

Trong cách tiếp cận từ trên xuống, kiểm thử diễn ra từ trên xuống dưới theo luồng điều khiển của hệ thống phần mềm. Cần sự hỗ trợ của Stub để kiểm thử.

Sơ đồ biểu diễn cách tiếp cận từ trên xuống:

integration testing 3 png

Ưu điểm:

  • Việc phát hiện lỗi dễ dàng hơn.
  • Có khả năng thực hiện tích hợp từ trên xuống từ sớm.
  • Các module quan trọng được ưu tiên kiểm thử; lỗi thiết kế quan trọng có thể được tìm thấy và sửa chữa đầu tiên.

Nhược điểm:

  • Cần nhiều Stub.
  • Các module ở mức thấp hơn không được kiểm thử đầy đủ.

Tích hợp Hybrid/ Sandwich

Chiến lược sandwich / hybrid là sự kết hợp của phương pháp Top Down và Bottom up. Các module trên cùng được kiểm thử cùng thời điểm với các module thấp hơn, đồng thời các module thấp hơn được tích hợp với các module ở trên và được thực hiện kiểm thử. Chiến lược này sử dụng Stubs cũng như Drivers.

integration testing 4 png

5. Quy trình kiểm thử tích hợp?

Quy trình kiểm thử tích hợp không phân biệt chiến lược kiểm thử phần mềm:

  1. Chuẩn bị kế hoạch kiểm thử tích hợp
  2. Thiết kế các test scenarios, test cases và test scripts.
  3. Thực thi các test cases, báo cáo các lỗi nếu có.
  4. Theo dõi & kiểm thử lại các test cases có lỗi.
  5. Bước 3 và 4 được lặp lại cho đến khi kiểm thử hợp được hoàn thành.

6. Mô tả tóm tắt về kế hoạch kiểm thử tích hợp

Kiểm thử tích hợp bao gồm các thuộc tính sau:

  • Phương pháp / hướng tiếp cận kiểm thử
  • Trong phạm vi và ngoài phạm vi kiểm thử tích hợp.
  • Vai trò và trách nhiệm.
  • Điều kiện tiền đề để kiểm thử tích hợp.
  • Môi trường kiểm thử.
  • Kế hoạch giảm thiểu rủi ro.

7. Tiêu chí bắt đầu và kết thúc của kiểm thử tích hợp

Tiêu chí bắt đầu và kết thúc của giai đoạn kiểm thử tích hợp trong bất kỳ mô hình phát triển phần mềm nào

Tiêu chí bắt đầu

  • Thành phần / module đã được kiểm thử đơn vị
  • Tất cả các lỗi có độ ưu tiên cao đã được sửa
  • Tất cả các module được hoàn thành và được tích hợp.
  • Kế hoạch kiểm thử tích hợp, test cases, các kịch bản, tài liệu đã được thông qua.
  • Môi trường kiểm thử được thiết lập theo yêu cầu để kiểm thử tích hợp

Tiêu chí kết thúc

  • Kiểm thử tích hợp thành công.
  • Các trường hợp kiểm thử đã thực thi được ghi lại
  • Tất cả các lỗi có ưu tiên cao đã được sửa
  • Tài liệu kỹ thuật được bàn giao.

8. Thực hiện kiểm thử tích hợp như thế nào để đạt kết quả tốt nhất?

  • Đầu tiên, xác định Chiến lược kiểm thử tích hợp được thông qua, sau đó chuẩn bị các trường hợp kiểm thử và dữ liệu kiểm thử phù hợp.
  • Nghiên cứu Kiến trúc của Ứng dụng trên bản thiết kế và xác định các module quan trọng, cần phải được ưu tiên kiểm thử ở giai đoạn này.
  • Lấy các thiết kế giao diện từ nhóm Kiến trúc và tạo các trường hợp kiểm thử để xác định chi tiết tất cả các giao diện. Giao diện với cơ sở dữ liệu / ứng dụng phần cứng / phần mềm phải được kiểm thử chi tiết.
  • Sau các trường hợp kiểm thử, dữ liệu kiểm thử cũng đóng vai trò quan trọng.
  • Luôn chuẩn bị dữ liệu giả lập trước khi thực hiện kiểm thử. Không chuẩn bị dữ liệu kiểm thử trong khi thực hiện các trường hợp kiểm thử.

Cùng chuyên mục:

Giám sát và kiểm soát kiểm thử

Giám sát và kiểm soát kiểm thử

Trong khi nhóm thực hiện các nhiệm vụ được giao, Test Manager cần giám sát…

Tài liệu kiểm thử

Tài liệu kiểm thử

Tài liệu kiểm thử giúp nhóm kiểm thử ước tính effort kiểm thử cần thiết,…

Cách tạo Test Plan

Cách tạo Test Plan

Test Plan là một tài liệu chi tiết mô tả chiến lược kiểm thử, Mục…

Tổ chức nhóm kiểm thử

Tổ chức nhóm kiểm thử

Tổ chức nhóm kiểm thử là một trong những nhiệm vụ phức tạp nhất trong…

Phân tích rủi ro dự án và giải pháp trong quản lý kiểm thử

Phân tích rủi ro dự án và giải pháp trong quản lý kiểm thử

Khi thực hiện dự án, luôn có những rủi ro tiềm ẩn. Để giảm thiểu…

Quy trình quản lý kiểm thử

Quy trình quản lý kiểm thử

Quản lý kiểm thử (Test Management) bao gồm chuỗi nhiều hoạt động. Có hai phần…

Vai trò và Trách nhiệm của Test Manager

Vai trò và Trách nhiệm của Test Manager

Trước khi bắt đầu kiểm thử một dự án, bạn nên biết vai trò của…

Kiểm thử Use Case

Kiểm thử Use Case

Là một tester, bạn đã hiểu rõ về Use Case hay Kiểm thử Use Case…

Kỹ thuật kiểm thử chuyển đổi trạng thái

Kỹ thuật kiểm thử chuyển đổi trạng thái

Chuyển đổi trạng thái (State Transition) trong kiểm thử là gì? Khi nào sử dụng…

Kỹ thuật kiểm thử bảng quyết định

Kỹ thuật kiểm thử bảng quyết định

Bảng quyết định là một trong những kỹ thuật kiểm thử phầm mềm. Vậy Kiểm…

Kỹ thuật Phân tích giá trị biên và phân vùng tương đương

Kỹ thuật Phân tích giá trị biên và phân vùng tương đương

Chúng ta cần sử dụng các kỹ thuật đặc biệt để lựa chọn test cases…

Kỹ thuật kiểm thử phần mềm

Kỹ thuật kiểm thử phần mềm

Kỹ thuật kiểm thử giúp giảm số lượng các test cases được thực hiện trong…

Test Case Template

Test Case Template

Test cases là đơn vị nhỏ nhất trong kế hoạch kểm thử, mô tả các…

Thủ thuật để tạo dữ liệu kiểm thử

Thủ thuật để tạo dữ liệu kiểm thử

Data được sử dụng trong kiểm thử mô tả các điều kiện tiền đề của…

Cách tạo Requirements Traceability Matrix - RTM

Cách tạo Requirements Traceability Matrix - RTM

Requirements Traceability Matrix - RTM là gì? Traceability Test Matrix bao gồm những loại nào?…

Cơ sở kiểm thử - Test basis

Cơ sở kiểm thử - Test basis

Cơ sở kiểm thử - Test Basis là nguồn để tạo ra các test cases.…

Cách viết Test Cases

Cách viết Test Cases

Test Case là tập hợp các hành động được thực thi để xác minh một…

Kịch bản kiểm thử - Test Scenario

Kịch bản kiểm thử - Test Scenario

Test Scenario tuy không còn mới mẻ nhưng không ít người còn mơ hồ về…

Kiểm thử phi chức năng

Kiểm thử phi chức năng

Kiểm thử phi chức năng liên quan đến việc kiểm thử phần mềm từ những…

Kiểm thử hồi quy

Kiểm thử hồi quy

Kiểm thử hồi quy - Regression Testing rất quan trọng, đặc biệt là trong những…

Top