Bài viết được sự cho phép của tác giả Lê Chí Dũng
Trong hôm nay mình cũng tìm hiểu lại một khái niệm là Integration Test còn gọi là test tích hợp từ các Unit Test
1. Khái niệm
- Integration Testing là công việc kiểm thử tích hợp 1 nhóm các module riêng lẻ với nhau cùng với các Unit Test riêng lẻ trong từng module.
- Một dự án phần mềm điển hình bao gồm nhiều module phần mềm, được code bởi nhiều người khác nhau. Tích hợp thử nghiệm tập trung vào kiểm tra truyền dữ liệu giữa các module.
2. Tại sao Integration Testing là cần thiết
Mặc dù mỗi module đều được unit test nhưng các lỗi vẫn còn tồn tại với các lý do khác nhau:
- 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 chugn của hệ thống
- Thiếu các xử lý ngoại lệ có thể xảy ra
3. Intergration test case
Kiểm thử tích hợp khác với các trường hợp kiểm tra khác, nó tập trung chủ yếu vào các giao diện & lưu lượng dữ liệu / thông tin giữa các module. Ưu tiên được trao cho các liên kết tích hợp chứ không phải là các đơn vị chức năng.
Ví dụ 1 trường hợp mẫu Integration Test cho các kịch bản sau đây: Ứng dụng có 3 module gồm: ‘Login Page, ‘mail box’ và ‘delete mail’.
Trong đó tập trung chủ yếu vào phần Mail Box: Kiểm tra tích hợp của nó để delete mail.
4. Cách tiếp cận / phương pháp / chiến lược của intergration test
Phương pháp tiếp cận Big Bang
Tại đây tất cả các thành phần được tích hợp cùng 1 lúc, sau đó sẽ tiến hành kiểm thử.
Ưu điểm:
Thuận tiện với các dự án nhỏ
Nhược điểm:
Khó khăn trogn 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.
Vì 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ử
Phương pháp tiếp cận Incremental
Trong phương pháp này, kiểm tra được thực hiện bằng cách kết hợp hai hay nhiều module có liên quan một cách hợp lý. Sau đó, các phân hệ liên quan khác được thêm vào và kiểm tra sự hoạt động đúng đắn. Quá trình tiếp tục cho đến khi tất cả các module được tham gia và thử nghiệm thành công.
Quá trình này được thực hiện bằng cách sử dụng các chương trình giả gọi là Stub and Driver. Sơ khai và trình điều khiển không thực hiện toàn bộ logic lập trình các module nhưng chỉ mô phỏng giao tiếp dữ liệu với các module được gọi.
Stub: Được gọi bởi Module dưới Test.
Driver: Gọi Module để được kiểm tra.
Phương pháp Incremental được thực hiện bởi hai phương pháp khác nhau:
Bottom Up Top Down Bottom up Integration
Chiến lược 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
Top down Integration:
Trong tiếp cận từ trên xuống , kiểm tra được thực hiện từ trên xuống dưới theo dõi dòng kiểm soát của hệ thống phần mềm. Nó được sử dụng cho Stub testing
Ưu điểm:
- Thu gọn phạm vi bug dễ dàng hơn
- Khả năng để có được một nguyên mẫu ban đầu.
- 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:
- Cần nhiều Stub.
- Module ở mức độ thấp hơn sẽ được kiểm tra không đầy đủ.
5. Các bước thực hiện test tích hợp
- Chuẩn bị Integration Test Plan
- 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.
- Bước 3 và 4 được lặp đi lặp lại cho đến khi hoàn thành Integration là thành công.
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ử, phần mềm có được đảm bảo chất lượng hay không?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.
Bài viết gốc được đăng tải tại lcdung.top
Có thể bạn quan tâm:
- Hướng dẫn sử dụng Nock để mock request APIs cho việc run Integration test
- Tester là gì? Lợi ích của Tester
- Jenkins là gì? Build và deploy code nhanh chóng với Jenkins
Xem thêm Tuyển tester làm việc online hấp dẫn trên TopDev