Test tích hợp giữa các service (service-to-service)
🎯 Mục tiêu học: hiểu rủi ro nằm ở "đường nối" giữa 2 service (nội bộ hoặc bên thứ 3) — nơi thường bị bỏ sót vì mỗi service khi test riêng đều báo PASS.
Ví dụ minh hoạ
Order Service (API chính)
│ POST /v1/orders
├──► Inventory Service (trừ tồn kho theo sku)
└──► Payment Gateway (xử lý thanh toán, service bên thứ 3)
Order Service phải gọi cả 2 service phụ thuộc trước khi trả kết quả cuối về client. Test tích hợp tập trung vào việc: nếu 1 trong 2 service phụ thuộc "có vấn đề", Order Service có xử lý đúng không.
Checklist test tích hợp service-to-service
Service phụ thuộc phản hồi chậm/timeout
Mã TC
Nội dung
Kỳ vọng
TC-INT-01
Inventory Service không phản hồi trong thời gian chờ (timeout)
Order Service phải có ngưỡng chờ (timeout) hợp lý, trả lỗi rõ ràng cho client — không treo vô thời hạn
Service phụ thuộc trả lỗi
Mã TC
Nội dung
Kỳ vọng
TC-INT-02
Payment Gateway trả lỗi 500 hoặc từ chối giao dịch
Order Service rollback đúng phần đã xử lý (vd hoàn tồn kho đã trừ), không để đơn hàng ở trạng thái nửa vời
Service phụ thuộc sai hợp đồng dữ liệu
Mã TC
Nội dung
Kỳ vọng
TC-INT-03
Inventory Service đổi cấu trúc response mà không báo trước (vd đổi tên field)
Order Service phát hiện được sai hợp đồng thay vì crash âm thầm — liên quan Contract Testing (Chương 6)
Retry logic & idempotency giữa các service
Mã TC
Nội dung
Kỳ vọng
TC-INT-04
Order Service tự động retry gọi Inventory Service khi timeout lần 1
Lần retry không được trừ tồn kho 2 lần — Inventory Service cần hỗ trợ idempotency key
Ngưỡng timeout có hợp lý
Mã TC
Nội dung
Kỳ vọng
TC-INT-05
Đo thời gian phản hồi thực tế của Payment Gateway trong điều kiện bình thường
Ngưỡng timeout cấu hình phải lớn hơn đáng kể thời gian phản hồi bình thường, tránh fail oan
📌 Ghi nhớ
Test tích hợp không phải là test lại logic của service phụ thuộc (đó là việc của team sở hữu service đó) — mà là test cách service chính phản ứng khi service phụ thuộc "không như mong đợi" (chậm, lỗi, sai hợp đồng).
📖 Thuật ngữ Anh–Việt (mục này)
Đề thi dùng thuật ngữ tiếng Anh — nhớ đúng cụm bên trái. Bấm 🔊 để nghe từng từ, hoặc "Đọc tất cả" để nghe lần lượt Anh → (vài giây) → Việt.
Thuật ngữ (EN)
Nghĩa & ghi nhớ nhanh
Downstream service
Service phụ thuộc — service được gọi tới bởi service chính
Timeout threshold
Ngưỡng thời gian chờ tối đa trước khi coi là thất bại
Retry logic
Cơ chế tự động gọi lại khi request thất bại
Rollback
Hoàn tác các thay đổi đã thực hiện khi có bước sau đó thất bại
📎 Nội dung do maiqai.com biên soạn — tên service và luồng trong ví dụ chỉ mang tính minh hoạ, không thuộc hệ thống thật nào.