Get in touch
or send us a question?
CONTACT

Chaos Testing vs Stress Testing vs Load Testing

Tester Đừng Nhầm “Phá” Với “Ép” Hệ Thống

Trong testing, có 3 kiểu “hành hạ” hệ thống rất hay bị nhầm lẫn:

  • Load Testing – ép làm việc đều đều

  • Stress Testing – ép đến khi gục

  • Chaos Testing –… bắn lén 😈

Nếu bạn từng tự hỏi:

“Ủa, đều là làm hệ thống đau mà khác gì nhau?”

Thì bài này dành cho bạn.


1. Load Testing – Khi Hệ Thống Làm Việc Bình Thường

🎯 Mục tiêu

Xem hệ thống chạy ổn không khi user dùng đúng như dự kiến.

Test cái gì?

  • Response time

  • Throughput

  • CPU / Memory

  • Bottleneck

Ví dụ

  • 1,000 user cùng login

  • 500 user checkout trong 5 phút

👉 Hệ thống không bị sốc, chỉ đang… đi làm giờ hành chính.


Khi nào tester nên làm Load Test?

  • Trước release lớn

  • Khi có feature ảnh hưởng nhiều user

  • Khi cần benchmark hiệu năng


2. Stress Testing – Khi Hệ Thống Bị Dồn Đến Chết

🎯 Mục tiêu

Tìm:

  • Giới hạn chịu đựng

  • Điểm gãy

  • Hành vi khi quá tải

Test cái gì?

  • Max user bao nhiêu thì sập?

  • Sập kiểu gì?

  • Có phục hồi được không?

Ví dụ

  • Tăng user từ 1,000 → 10,000 → 50,000

  • Gửi request liên tục cho đến khi timeout

👉 Stress test không hỏi “có chạy không”,
mà hỏi “chết lúc nào”.


Tester cần quan sát:

  • Có crash toàn bộ không?

  • Có queue request không?

  • Sau khi giảm tải → hệ thống có sống lại không?


3. Chaos Testing – Khi Tai Nạn Xảy Ra Bất Ngờ

🎯 Mục tiêu

Test khả năng chịu lỗi và phục hồi.

Test cái gì?

  • Failure của service

  • Network chập chờn

  • Dependency chết

  • Data inconsistency

Ví dụ

  • Kill payment service giữa lúc checkout

  • Delay API 10 giây

  • Random restart pod

👉 Chaos test không cần đông user,
chỉ cần đúng thời điểm xấu.


Tester cần quan sát:

  • User thấy gì?

  • Có fallback không?

  • Có dead-end scenario không?

  • Dữ liệu có lệch không?


4. So sánh nhanh cho dễ nhớ

Tiêu chí Load Stress Chaos
Mục tiêu Chạy ổn Tìm giới hạn Chịu lỗi
Tác động Dự đoán được Tăng dần Bất ngờ
User Nhiều Rất nhiều Không cần nhiều
Failure Không mong muốn Có thể xảy ra Chủ động tạo
Focus Performance Stability Resilience

5. Tester hay sai ở đâu?

❌ Dùng stress test để test resilience
❌ Dùng load test để test error handling
❌ Nghĩ chaos test = phá bừa

📌 Mỗi loại test trả lời một câu hỏi khác nhau.


6. Khi nào nên dùng loại nào?

Dùng Load Test khi:

  • Muốn biết hệ thống chạy mượt không

  • Chuẩn bị mở chiến dịch lớn

Dùng Stress Test khi:

  • Muốn biết giới hạn chịu tải

  • Chuẩn bị traffic spike

Dùng Chaos Test khi:

  • Hệ thống phân tán

  • Microservices / Cloud

  • Lo nhất là… sự cố bất ngờ

👉 Dự án trưởng thành thường dùng cả 3.


7. Góc nhìn tester: Bạn nên đóng vai gì?

Tester không cần:

  • Viết tool load

  • Setup infra

Tester rất nên:

  • Đặt câu hỏi đúng

  • Thiết kế scenario xấu

  • Quan sát trải nghiệm user

  • Phát hiện dead-end flow

💡 Tester là người hỏi: “User sẽ khổ thế nào nếu chuyện này xảy ra?”


8. Kết luận

  • Load Test: “Chạy có mượt không?”

  • Stress Test: “Chết lúc nào?”

  • Chaos Test: “Chết rồi có sống lại không?”

Hệ thống tốt không phải là hệ thống chưa từng sập,
mà là hệ thống sập mà không kéo cả thế giới đi theo.

😈 Test đúng kiểu
☕ Ngủ ngon khi deploy