Tìm hiểu về Integration Testing
Bài đăng này đã không được cập nhật trong 4 năm
1. Kiểm thử tích hợp là gì?
Kiểm thử tích hợp (Integration Testing) 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.
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 đó.
Mục đích của mức độ kiểm tra này là để lộ ra các khiếm khuyết trong sự tương tác giữa các mô-đun phần mềm này khi chúng được tích hợp
Do đó, kiểm thử tích hợp còn được gọi là tích hợp và kiểm thử (integration and testing, viết tắt: I&T) , String Testing (Kiểm thử chuỗi) và đôi khi là Thread Testing (Kiểm thử luồng).
2. Tại sao phải thực hiện kiểm thử tích hợp
Mặc dù mỗi module đều được kiểm thử đơn vị (Unit test) nhưng các lỗi vẫn còn tồn tại với các nguyên nhân sau:
- Một Module nói chung được thiết kế bởi một lập trình viên có hiểu biết và logic lập trình có thể khác với các lập trình viên khác. Kiểm thử tích hợp là cần thiết để đảm bảo tính hợp nhất của phần mềm.
- Tại thời điểm phát triển module vẫn có thể có thay đổi trong spec của khách hàng, những thay đổi này có thể không được kiểm tra ở giai đoạn unit test trước đó.
- Giao diện và cơ sở dữ liệu của các module có thể chưa hoàn chỉnh khi được ghép lại.
- Khi tích hợp hệ thống các module có thể không tương thích với cấu hình chung của hệ thống.
- Có thể xảy ra tình trạng thiếu các xử lý ngoại lệ .
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ư.
TC_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:
- Cách tiếp cận từ trên xuống (Top Down)
- Cách tiếp cận từ dưới lên (Bottom Up)
- Phương pháp tiếp cận Sandwich - Kết hợp từ trên xuống và từ dưới lên
4.1 Cách tiếp cận Big Bang
Trong kiểm tra tích hợp Big Bang, tất cả các thành phần hoặc mô-đun được tích hợp đồng thời, sau đó mọi thứ được kiểm tra tổng thể. Theo hình ảnh trên, tất cả các mô-đun từ ‘Mô-đun 1, đến‘ Mô-đun 6, được tích hợp đồng thời sau đó thử nghiệm được thực hiện.
Ưu điểm:
- Thuận tiện với các dự án nhỏ.
- Mọi thứ đã kết thúc trước khi kiểm thử tích hợp bắt đầu.
Nhược điểm:
- Khó khăn trong việc phát hiện bug.
- Có thể bỏ qua các bug giao diện nhỏ trong quá trình tìm bug.
- Mât thời gian dành cho tích hợp hệ thống nên làm giảm thời gian dành cho test.
- Do các module được kiểm thử cùng 1 lúc nên các module có nguy cơ bị cô lập trong quá trình kiểm thử.
- Khó theo dõi nguyên nhân thất bại vì tích hợp muộn.
4.2 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ừ trên xuống (Top Down)
- Từ dưới lên (Bottom Up)
a. Kiểm thử tích hợp Top-down
Việc kiểm tra diễn ra từ trên xuống dưới, theo dòng điều khiển hoặc cấu trúc kiến trúc (ví dụ: bắt đầu từ GUI hoặc menu chính). Nó được sử dụng cho Stub testing. Dưới đây là sơ đồ của Cách tiếp cận Từ trên xuống: Ưu điểm:
- Sản phẩm được kiểm thử rất phù hợp vì kiểm thử tích hợp về cơ bản được thực hiện trong một môi trường gần giống với thực tế
- Cơ bản có thể được thực hiện với thời gian ít hơn bởi vì đơn giản hơn.
- Thu gọn phạm vi bug dễ dàng hơn
- Modules quan trọng đang được thử nghiệm trên mức ưu tiên; lỗi trong thiết kế lớn có thể được tìm thấy và cố định đầu tiên.
Nhược điểm:
- Chức năng cơ bản được kiểm tra vào cuối chu kỳ.
- Cần nhiều Stub.
- Module ở mức độ thấp hơn sẽ được kiểm tra không đầy đủ.
b. Kiểm thử tích hợp Bottom-Up
Mỗi module ở mức thấp hơn được thử nghiệm với các module cao hơn cho đến khi tất cả các module đều được kiểm tra. Nó được sử dụng cho Driver testing. Thể hiện bằng biểu đồ dưới đây: Ưu điểm:
- Thu gọn phạm vi bug dễ dàng hơn
- Không mất thời gian chờ tất cả các module được tích hợp
Nhược điểm:
- Module quan trọng của hệ thống có thể dễ bị lỗi
- Không giữ được nguyên mẫu đầu tiên của hệ thống
c. Tích hợp Hybrid/ Sandwich
Kiểm thử tích hợp Sandwich kết hợp của cả hai cách tiếp cận từ trên xuống và từ dưới lên. Nó cũng được gọi là kiểm thử tích hợp lai hoặc kiểm thử tích hợp hỗn hợp. Trong Kiểm thử tích hợp Sandwich, hệ thống được tạo thành từ ba lớp:
- Một lớp ở giữa sẽ là mục tiêu của thử nghiệm
- Một lớp bên trên lớp đích và một lớp bên dưới lớp đích Thử nghiệm bắt đầu từ lớp ngoài và hội tụ ở lớp giữa
Ưu điểm:
- Các lớp trên cùng và dưới cùng có thể được kiểm tra song song.
Nhược điểm:
- Việc kiểm tra mở rộng các hệ thống con không được thực hiện trước khi tích hợp.
5. Các bước thực hiện 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:
- Chọn mô-đun hoặc thành phần sẽ được kiểm tra
- Kiểm thử đơn vị
- Thiết kế các kịch bản thử nghiệm, trường hợp, và Script (Test Scenarios, Cases, and Scripts ).
- Thực hiện kiểm tra theo test case đã viết
- Theo dõi & tái kiểm tra các lỗi ở trên.
- Lặp lại các bước trên cho đến khi hệ thống hoàn chỉnh được kiểm tra đầy đủ
6. Kết luận
Intergration test là 1 bước rất quan trọng trong suốt quá trình kiểm thử. Liệu phần mềm có được đảm bảo chất lượng hay không? Liệu hệ thống có vận hành theo đúng mong muốn người dùng hay không sẽ được kiểm tra qua bước này.
Tài liệu tham khảo
All rights reserved