Mmaiqai.com
📜 API Testing · Chương 6 · Mục 6.1

Contract testing là gì, khác gì Integration testing

🎯 Mục tiêu học: hiểu vì sao khảo sát ngành xếp contract testing vào nhóm ít được dùng nhất (17%) dù được đánh giá là khoảng trống quan trọng — và khi nào nó thực sự cần thiết.

🔗 Liên hệ với Chương 2: Chương 6 là phần mở rộng có hệ thống của Nhóm 7 — Response contract trong khung Mục 2.1. Ở Chương 2, kiểm tra contract chỉ là 1 case đơn lẻ trong checklist (vd "response đúng cấu trúc không"); Chương 6 biến việc đó thành 1 quy trình tự động hoá lặp lại được cho toàn bộ API, thay vì kiểm tra thủ công từng lần.

Contract testing là gì

Contract testing kiểm tra "hợp đồng" — cấu trúc request/response đã thống nhất — giữa bên tiêu thụ API (consumer) và bên cung cấp API (provider), mà không cần chạy cả 2 hệ thống cùng lúc. Đây chính là điểm khác biệt cốt lõi so với Integration testing (Chương 3), vốn luôn cần cả 2 phía chạy thật để test.

So sánh Contract testing vs. Integration testing

Tiêu chíContract testingIntegration testing
Cần chạy cả 2 hệ thống?Không — chỉ cần bản mô tả hợp đồng (schema/spec)Có — cả consumer và provider phải chạy thật
Tốc độ chạyNhanh, có thể chạy như unit test (Tầng 1 — Chương 7)Chậm hơn, cần môi trường đầy đủ (Tầng 2 — Chương 7)
Phát hiện lỗi gìSai cấu trúc dữ liệu, thiếu field, sai kiểu — lỗi 'hợp đồng'Lỗi hành vi thực tế: timeout, rollback, dữ liệu tham chiếu sai (Chương 3)
Phát hiện sớm tới đâuNgay khi provider đổi API, trước khi merge/deployChỉ phát hiện khi cả 2 hệ thống thực sự chạy cùng nhau

📌 Ghi nhớ

Contract testing không thay thế Integration testing — 2 loại bổ sung cho nhau: contract testing bắt lỗi "sai cấu trúc" sớm và rẻ, integration testing bắt lỗi "sai hành vi" toàn diện hơn nhưng tốn kém hơn.

📖 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
ContractHợp đồng — cấu trúc request/response đã thống nhất giữa 2 hệ thống
ConsumerBên tiêu thụ API — hệ thống gọi API của bên khác
ProviderBên cung cấp API — hệ thống cung cấp API cho bên khác gọi

📎 Nội dung do maiqai.com biên soạn dựa trên thực hành phổ biến về contract testing, không sao chép nguyên văn từ nguồn nào.