Get in touch
or send us a question?
CONTACT

Checklist Chaos Testing cho Tester

Phá Có Kế Hoạch, Không Phá Bừa 😈

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 😇


1. Trước khi “gieo hỗn loạn” – Chuẩn bị

🔍 1.1 Xác định mục tiêu test

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á.


🧭 1.2 Chọn đúng môi trường

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.”


📊 1.3 Xác định baseline

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”.


2. Trong khi phá – Checklist Chaos Scenario

💣 2.1 Service / Dependency Failure

  • 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?


🌐 2.2 Network Chaos

  • 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.


🔁 2.3 Retry & Recovery

  • 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


🧠 2.4 Data Consistency

  • 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.


🚪 2.5 Dead-End Scenario (Quan trọng!)

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


3. Quan sát – Tester nên nhìn vào đâu?

👀 3.1 Góc nhìn User

  • 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” 🙃


🧾 3.2 Log & Alert

  • 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.


🧩 3.3 Phạm vi ảnh hưởng

  • 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


4. Sau khi phá – Checklist Hậu Chaos

🔄 4.1 Hệ thống có tự phục hồi không?

  • Service có auto-restart không?

  • Cache có rebuild không?

  • Job có chạy lại không?


📋 4.2 Ghi nhận bài học

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.


🤝 4.3 Feedback cho team

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.


5. Checklist ngắn gọn cho tester (TL;DR)

✔️ 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


6. Kết luận

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