Test theo môi trường: mock, sandbox, staging
🎯 Mục tiêu học: hiểu sự khác biệt giữa các môi trường khi test tích hợp, và rủi ro nếu chỉ test ở 1 môi trường duy nhất rồi coi như đã đủ.
So sánh 3 môi trường thường dùng khi test tích hợp
| Môi trường | Đặc điểm | Khi nào dùng | Rủi ro nếu chỉ test ở đây |
|---|---|---|---|
| Mock | Giả lập hoàn toàn service phụ thuộc bằng code/tool riêng | Test nhanh, không phụ thuộc service ngoài còn hoạt động hay không | Không phát hiện được lỗi hợp đồng thật (contract mismatch) — mock luôn trả đúng như mình lập trình sẵn |
| Sandbox | Môi trường thử nghiệm do bên thứ 3 cung cấp (vd cổng thanh toán) | Test hành vi gần thật của service bên ngoài mà không tốn phí/rủi ro thật | Có thể có giới hạn (rate limit, dữ liệu giả định) khác với production, dễ tạo cảm giác an toàn giả |
| Staging | Môi trường nội bộ cấu hình gần giống production nhất | Test tích hợp toàn diện trước khi release, dùng dữ liệu gần thật | Chi phí duy trì cao; nếu cấu hình lệch production dù nhỏ vẫn có thể bỏ sót lỗi |
Nguyên tắc khi phối hợp cả 3 môi trường
1. Mock cho vòng lặp phát triển nhanh — chạy hàng chục/hàng trăm lần mỗi ngày trong lúc code, không cần chờ service ngoài phản hồi.
2. Sandbox cho case liên quan bên thứ 3 — xác nhận hành vi thật của cổng thanh toán, dịch vụ vận chuyển... trước khi tin vào mock.
3. Staging cho bộ test quan trọng nhất trước khi release — không cần chạy lại toàn bộ, nhưng bắt buộc chạy lại các case rủi ro cao (thanh toán, luồng đa bước ở Mục 3.1) ở môi trường gần thật nhất có thể.
4. Không bao giờ trộn lẫn cấu hình môi trường — luôn kiểm tra kỹ URL/credentials đang trỏ đúng môi trường, tránh rủi ro gọi nhầm sang production khi đang test.
📌 Ghi nhớ
Test case PASS ở mock không đảm bảo nó cũng đúng ở sandbox/staging — vì mock luôn phản hồi đúng như mình lập trình sẵn, không mô phỏng được lỗi/độ trễ thật. Luôn dành ít nhất 1 vòng chạy lại ở môi trường gần thật hơn trước khi release.
📖 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 |
|---|---|
| Mock | Giả lập hành vi của 1 service phụ thuộc, dùng để test không phụ thuộc service thật |
| Sandbox | Môi trường thử nghiệm do bên thứ 3 cung cấp, mô phỏng gần giống hành vi thật |
| Staging | Môi trường nội bộ cấu hình gần giống production nhất trước khi release |
| Contract mismatch | Sai lệch hợp đồng dữ liệu — response thực tế khác với những gì đã thống nhất/mock |
📎 Nội dung do maiqai.com biên soạn dựa trên thực hành phổ biến khi test tích hợp, không sao chép nguyên văn từ nguồn nào.