INTERGATION TESTING (KIỂM THỬ TÍCH HỢP)
Kiểm thử tích hợp giúp phát hiện lỗi giao tiếp giữa các phần của hệ thống trước khi triển khai chính thức.
1.Kiểm thử tích hợp là gì ?
Integration Testing (Kiểm thử tích hợp) 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 đó.
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).
Ví dụ: Khi bạn tích hợp chức năng đăng nhập với hệ thống xác thực người dùng, bạn cần đảm bảo rằng dữ liệu người dùng được truyền đúng từ giao diện frontend đến backend.
2.Vậy tại sao phải cần kiểm thử tích hợp ?
- Đảm bảo các mô – đun hoạt động cùng nhau 1 cách chính xác
- Phát hiện sớm lỗi giao tiếp giữa các thành phần
- Đảm bảo dữ liệu truyền tải giữa các mô – đun chính xác
- Hỗ trợ kiểm thử hiệu suất và khả năng mở rộng
- Giảm thiểu rủi ro khi triển khai phần mềm
- Hỗ trợ kiểm thử end – to – end và nâng cao chất lượng phần mềm (giúp đảm bảo toàn bộ hệ thống hoạt động đúng khi người dùng sử dụng thực tế.)
Ví dụ về end – to – end: Một ứng dụng ngân hàng có nhiều mô-đun như đăng nhập, kiểm tra số dư, chuyển tiền, xác thực OTP. Nếu chỉ kiểm thử từng mô-đun riêng lẻ, có thể bỏ sót lỗi xảy ra khi chúng hoạt động cùng nhau trong thực tế.
3.Cách tiếp cận kiểm thử tích hợp
3.1 Cách tiếp cận incremental (tăng dần):
Ưu điểm:
- Giúp phát hiện lỗi sớm
- Dễ dàng cô lập và sửa lỗi
- Hạn chế rủi ro tích hợp
Các chiến lược trong incremental:
Top-down: Kiểm thử từ trên xuống theo thứ tự phân cấp (ưu tiên UI trước,BE sau).
Bottom-up: Kiểm thử từ dưới lên (ưu tiên BE và database trước,UI sau).
Sandwich (Hybrid): Kết hợp cả 2 cách trên.
Ví dụ: Ứng dụng đặt xe grap có thành phần như: App khách -> Server BE -> App tài xế
- Kiểm thử top – down, ta kiểm tra UI đặt xe trước,rồi đến BE xử lý
- Kiểm thử bottom – up,ta kiểm thử API BE rồi đến UI khách hàng.
3.2 Cách tiếp cận bigbang (Tích hợp toàn bộ):
Ưu điểm: Tiết kiệm thời gian chuẩn bị test
Nhược điểm: Khó xác định nguyên nhân lỗi nếu có vấn đề và tốn công sửa lỗi nếu có nhiều thành phần lỗi cùng lúc.
Tích hợp tất cả thành phần cùng lúc rồi mới kiểm thử.
4.Các phương pháp kiểm thử tích hợp:
Các phương pháp này giúp xác định lỗi khi tích hợp nhiều thành phần lại với nhau
4.1 Kiểm thử giao diện (interface testing):
· Kiểm tra API, giao tiếp giữa các module thông qua request/response.
· Đảm bảo các API trả về đúng dữ liệu & trạng thái.
4.2 Kiểm thử dữ liệu (data flow testing):
· Kiểm tra cách dữ liệu di chuyển giữa các hệ thống.
· Đảm bảo dữ liệu không bị mất hoặc sai lệch khi truyền tải.
4.3 Kiểm thử chức năng (functional intergration testing):
· Đảm bảo chức năng hoạt động đúng khi các mô-đun được tích hợp.
· Xác minh đầu vào và đầu ra giữa các hệ thống.
4.4 Kiểm thử hiệu năng (performance intergation testing):
· Kiểm tra tốc độ, độ ổn định khi các hệ thống kết hợp với nhau. Đánh giá khả năng xử lý tải cao.
5.Chiến lược kiểm thử tích hợp:
- Tích hợp liên tục_CI/CD: Tự động hóa, phát hiện lỗi sớm
- Kiểm thử Mock – Stub: Kiểm thử ngay cả khi chưa đủ thành phần
- Kiểm thử theo mức độ ưu tiên: Tập trung kiểm thử các phần rủi ro cao
6. Ví dụ về kiểm thử tích hợp:
Kiểm thử tích hợp với ứng dụng gửi Gmail chẳng hạn:
Giả sử bạn đang kiểm thử chức năng gửi email trong một ứng dụng quản lý công việc (tương tự Trello). Khi người dùng tạo một task mới, hệ thống sẽ gửi email thông báo đến các thành viên trong nhóm.
Các thành phần liên quan:
· Frontend (Angular) – Giao diện nhập thông tin task
· Backend (Python & FastAPI) – Xử lý logic gửi email
· Email Service (SMTP – Gmail) – Dịch vụ gửi email
· Database (PostgreSQL) – Lưu trạng thái email
- Kiểm thử tích hợp khi tạo task mới:
· Kiểm tra giao diện: Khi nhấn “Tạo task”, hệ thống có gửi đúng request lên Backend không ?
· Kiểm tra Backend: API có xử lý request đúng và lưu dữ liệu task vào database không ?
· Kiểm tra SMTP: Hệ thống có gửi email đúng đến người nhận không?
· Kiểm tra Database: Trạng thái email có được lưu (Gửi thành công/Thất bại) ?
NẾU VÍ DỤ TRÊN KHÔNG GIÚP BẠN HIỂU HẾT VỀ KIỂM THỬ TÍCH HỢP HÃY XEM VIDEO BÊN DƯỚI !!!
https://www.youtube.com/watch?v=gViRsnlgs6E
TỔNG HỢP INTERNET_Uyển Nhi
XƯỞNG THỰC TẬP PLT SOLUTIONS
www.youtube.com/@pltsolutions3010