강연자는 프로젝트 위험 수준에 따라 테스트 전략을 달리해야 함을 역설합니다: 낮은 위험 시 최소 테스트, 중간 위험 시 효율적인 커버리지, 높은 위험 시 형식적 방법론과 증명에 집중합니다. 주요 네 가지 테스트 기법은 다음과 같습니다:
- 동등 분할 (Equivalence Partitioning): 입력 도메인을 동일 동작 파티션으로 나누고 대표값을 테스트하여 일반적인 동작을 검증, 효율적인 테스트 케이스 생성을 돕습니다.
- 경계값 분석 (Boundary Value Analysis): 입력 도메인의 경계 지점과 그 주변 값을 집중 테스트하여 오류 발생 가능성이 높은 지점을 검증합니다. 유효 및 유효하지 않은 경계값 모두 고려합니다.
- 의사결정 테이블 (Decision Table): 복잡한 조건 조합에 따른 결과를 테이블로 정리하여 숨겨진 규칙을 발견하고 빠짐없는 테스트 케이스를 도출합니다. 레거시 코드 분석에 유용합니다.
- 상태 전이 (State Transition): 시스템 동작을 상태와 전이로 모델링한 그래프를 통해 테스트합니다. 모든 상태(노드)와 전이(엣지)를 커버하며, 허용되지 않는 전이를 시도하여 시스템 견고성을 확인합니다.
이러한 체계적인 방법론은 테스트 케이스 수를 예측 가능하게 하고, 테스트 선택의 근거를 명확히 제시합니다. AI 도구의 잠재력에도 불구하고 개발자 스스로 기법을 이해하고 적용하는 능력의 중요성을 강조합니다.