**엣지 케이스(edge case)**는 버그가 자주 숨는 비정상적이거나 경계에 있는 입력 및 조건입니다 — 빈 입력, 경계, null, 큰 값, 오류. 효과적인 테스팅은 "happy path"를 넘어 이를 커버합니다. 엣지 케이스는 실제 결함의 흔한 원천이기 때문입니다.
엣지 케이스가 중요한 이유
HAPPY PATH(정상적, 기대된 입력)는 대개 동작한다. 버그는 엣지 케이스에 숨는다:
→ 비정상 입력, 경계, 오류 조건, 예상치 못한 상태
→ happy path만 테스트하면 결함이 실제로 발생하는 곳을 놓침
→ 철저한 테스팅은 엣지 케이스를 커버한다 — 거기서 가장 큰 가치를 더한다.
엣지 케이스의 흔한 범주
빈 값 / NULL → 빈 문자열/리스트/컬렉션, null/undefined, 누락된 값
경계 → 최소/최대값, 0, -1, off-by-one (첫/마지막 요소, 한계)
큰 값 / 극단 → 매우 큰 입력, 긴 문자열, 거대한 숫자, 오버플로
유효하지 않음 → 잘못된 타입, 형식이 깨진 데이터, 범위 밖, 특수 문자
오류 조건 → 네트워크 실패, 예외, 타임아웃, 사용 불가한 의존성
상태 → 빈/초기 상태, 동시 접근, 예상치 못한 동작 순서
특수 값 → 음수, 0, 중복, 유니코드/이모지, 아주 작거나 큰 값
