Edge case là các input và điều kiện bất thường hoặc biên nơi lỗi thường ẩn náu — input rỗng, biên, null, giá trị lớn, lỗi. Testing hiệu quả vượt ra ngoài "happy path" để bao phủ những trường hợp này, vì edge case là nguồn lỗi thực phổ biến.
Tại sao edge case quan trọng
HAPPY PATH (input thông thường, mong đợi) thường hoạt động. LỖI ẩn trong EDGE CASE:
→ input bất thường, biên, điều kiện lỗi, state bất ngờ
→ chỉ test happy path bỏ sót nơi lỗi thực sự xảy ra
→ Testing kỹ lưỡng bao phủ edge case — đó là nơi nó tạo giá trị nhiều nhất.
Các danh mục edge case phổ biến
EMPTY / NULL → chuỗi/list/collection rỗng, null/undefined, giá trị thiếu
BIÊN → giá trị min/max, 0, -1, off-by-one (phần tử đầu/cuối, giới hạn)
LỚN / cực đoan → input rất lớn, chuỗi dài, số khổng lồ, overflow
KHÔNG HỢP LỆ → sai kiểu, dữ liệu sai định dạng, ngoài phạm vi, ký tự đặc biệt
ĐIỀU KIỆN LỖI → network fail, exception, timeout, dependency không khả dụng
STATE → state rỗng/ban đầu, truy cập đồng thời, chuỗi hành động bất ngờ
GIÁ TRỊ ĐẶC BIỆT → số âm, zero, trùng lặp, unicode/emoji, rất nhỏ/lớn
