Bỏ qua để đến nội dung
Knowledge Hub

Testing Cơ bản

Nên đọc theo thứ tự: trước hết biết test nào bắt lỗi nào, sau đó biết vì sao test mất tín hiệu và sửa, rồi tới load test và test với dependency thật.

Phù hợp cho dev backend mới viết test hoặc tech lead đang dọn một CI hay đỏ vô cớ. Nhóm chưa bàn về mutation testing hay test frontend.

# Bài Bạn sẽ trả lời được Level Đọc
1 Unit, integration, e2e Lỗi này nên bắt ở tầng nào? Khi nào cần DB thật hay contract test? Pyramid hay trophy? Basic ~12 phút
2 Flaky test Vì sao test lúc xanh lúc đỏ? Sửa clock, thứ tự, state chung, async thế nào? Khi nào quarantine? Basic ~12 phút
3 Load testing với k6 API chịu được bao nhiêu RPS với p95 mục tiêu? Vì sao closed model che giấu server chậm? Threshold làm CI fail thế nào? Intermediate ~15 phút
4 Testcontainers Chạy test với Postgres, Redis, Kafka thật mà không chậm, không dính state chung? Rollback, truncate hay template database? Intermediate ~15 phút

Bài 2 giả định bạn đã nắm ranh giới các tầng test ở bài 1.

Triệu chứng Đọc
Unit test xanh nhưng production vẫn lỗi ở response/field Lỗi nào, test tầng nào
Mock repository pass nhưng lỗi unique constraint ở production Database thật và Testcontainers
Hai service lệch schema API sau deploy Contract test
CI đỏ, rerun thì xanh Phân loại nguyên nhân flaky
Test TTL/expiry dùng sleep và hay fail Sleep và clock tiêm vào
Chỉ fail khi chạy song song hoặc cả suite Phân loại nguyên nhân flaky
Nhóm quen retry cho đến khi xanh Quarantine và chính sách flake

Ranh giới test dễ vạch hơn khi ranh giới code đã rõ: Strategy pattern tách phần biến thiên thành policy test được độc lập, còn modular monolith bàn về ranh giới ở cấp module. Rủi ro persistence xem ACID và transaction.