Chaos Testing nghe thì “ngầu”, nhưng nếu không có checklist, bạn rất dễ rơi vào trạng thái:
“Phá xong rồi… không biết mình vừa test cái gì.”
Bài này dành cho tester muốn tham gia chaos testing một cách bài bản, không cần quyền root server, không cần kill production 😇
Hỏi thẳng:
Mình đang muốn kiểm chứng điều gì?
Khả năng chịu lỗi?
Trải nghiệm người dùng khi có sự cố?
Tính toàn vẹn dữ liệu?
👉 Không mục tiêu = không chaos testing, chỉ là phá.
Checklist:
❌ Không test chaos trực tiếp trên prod (trừ khi có kiểm soát)
✅ Staging / Pre-prod giống prod
✅ Có logging, monitoring, alert
📌 Tester nên đảm bảo: “Có cái để quan sát khi hệ thống đau.”
Trước khi phá:
Flow chạy bình thường mất bao lâu?
Tỉ lệ error là bao nhiêu?
User flow chuẩn ra sao?
👉 Không biết “bình thường” thì không biết “bất thường”.
Service A down → service B có sập theo không?
Có fallback không?
Có circuit breaker không?
Ví dụ:
Payment chết → order có bị treo không?
Email service down → user có bị chặn luồng không?
Delay API 3–10 giây
Timeout
Packet loss
Checklist:
UI có loading vô hạn không?
Có message rõ ràng không?
Có retry tự động không?
💀 Loading xoay mãi = user bỏ đi.
Retry bao nhiêu lần?
Retry có giới hạn không?
Hết retry thì sao?
👉 Retry vô hạn = tự DDOS chính mình
Transaction fail giữa chừng → data có rollback không?
Có trạng thái “nửa vời” không?
Có job dọn dữ liệu rác không?
Ví dụ:
Đã trừ tiền nhưng chưa tạo đơn
Tạo đơn nhưng không trừ tiền
📌 Chaos test rất hay lộ bug dữ liệu.
Checklist:
User có bị kẹt không?
Có nút “Thử lại / Quay lại” không?
Có mất dữ liệu nhập không?
Dead-end phổ biến:
Session hết hạn giữa form dài
Payment fail → không quay lại giỏ hàng
Upload fail → không retry
User có hiểu chuyện gì đang xảy ra không?
Message có “người” không, hay kiểu:
“Error code 500×9-a” 🙃
Lỗi có được log không?
Alert có bắn đúng người không?
Có spam alert không?
👉 Chaos tốt là ít alert nhưng đúng alert.
Lỗi 1 phần → có lan toàn hệ thống không?
Có degrade gracefully không?
Ví dụ:
Recommendation chết → vẫn mua hàng được
Chat support chết → vẫn checkout được
Service có auto-restart không?
Cache có rebuild không?
Job có chạy lại không?
Tester nên document:
Điều gì fail?
Điều gì survive?
Điều gì khiến user khó chịu nhất?
📌 Chaos test không để bắt bug lặt vặt,
mà để cải thiện thiết kế hệ thống.
Tester nên trao đổi với:
Dev → cải thiện handling & retry
BA/PO → cải thiện user message
DevOps → alert, monitoring
👉 Chaos testing là việc của cả team, không riêng QA.
✔️ Có mục tiêu test
✔️ Có baseline
✔️ Phá từng phần, không phá tất
✔️ Quan sát user experience
✔️ Săn dead-end scenario
✔️ Kiểm tra data consistency
✔️ Ghi lại insight, không chỉ bug
Chaos Testing không biến tester thành “kẻ phá hoại”.
Nó biến tester thành người bảo vệ hệ thống trong tình huống xấu nhất.
Nếu hệ thống sống sót sau chaos,
prod sẽ hiền hơn rất nhiều.
😈 Phá có kế hoạch hôm nay
☕ Ngủ ngon hơn khi deploy ngày mai
You need to login in order to like this post: click here
YOU MIGHT ALSO LIKE