복잡한 엣지 케이스를 재현 환경 구축·경계 조건 분석·단계적 디버깅으로 해결하는 방식
복잡한 엣지 케이스를 해결하기 위해 가장 먼저 하는 건 케이스를 재현할 수 있는 최소한의 환경을 만드는 것입니다. 재현이 안 되면 원인 파악이 어렵습니다. 수업 임베디드 시스템 프로젝트에서 특정 조건에서만 발생하는 타이밍 버그를 다룰 때, 로그를 추가해서 어떤 상태 조합에서 문제가 생기는지 먼저 좁혀나갔습니다. 경계 조건 분석이 두 번째 단계입니다.
입력값이 정상 범위를 벗어나는 경우, 타이밍이 극단에 몰리는 경우 등을 체계적으로 열거하면 놓친 케이스가 보입니다. 화이트박스 테스트 기법으로 코드 경로 커버리지를 확인하면서 엣지 케이스에 닿지 않는 분기를 찾는 방식도 씁니다. 단계적 디버깅에서는 가장 작은 단위로 나눠서 어느 모듈에서 문제가 생기는지 이진 탐색처럼 범위를 줄여가는 방식이 효율적입니다. 엣지 케이스 해결 후에는 회귀 테스트를 추가합니다.