화이트박스 테스트는 코드를 실제로 수행하지 않고 구현된 코드의 구조만 고려하여 테스트 케이스를 생성하는 방법이다.
소스 코드를 입력하여 코드의 실행부터 종료까지의 제어 흐름을 플로우차트로 표현한 것이다.
제어 흐름 그래프를 기반으로 테스트 케이스를 생성한다. 테스트 케이스를 생성할 때 고려할 사항은 테스트 케이스가 전체 코드를 어느 정도 커버하는가
이다. 이는 테스트 케이스의 커버리지로 정의하는데 테스트 케이스 생성 기법에 따라 커버리지가 결정될 수 있다.
코드를 구성하는 모든 문장을 최소한 한 번씩은 거쳐 가야 한다는 조건을 만족하도록 Path
를 선택하는 것이다.
물론 제어 흐름의 다양한 경우, 복잡한 조건 조합, 런타임 환경에 대해 모두 확인하지는 않기에 프로그램에 오류가 없음을 보장하지는 않는다.
모든 분기를 적어도 한 번씩은 거쳐 가도록 Path
를 선택하는 것이다.
조건식 내부의 모든 논리 조합, 반복문의 다양한 동작을 확인하지는 않기에 프로그램에 오류가 없음을 보장하지는 않는다.
소스 코드에 나타나는 변수 선언과 변수 사용에 의존하여 테스트 데이터를 선정하는 방법이다.
이 친구는 오류가 없음을 보장하나?
조건문에 대하여 모든 가능한 결과가 적어도 한 번씩은 나타날 수 있도록 테스트 케이스를 준비하는 방법이다.
or
연산의 경우 앞쪽 조건이 참이면 뒤쪽 조건을 확인하지 않는 경우가 많기에 이를 해결하기 위한 방식이다.
조건 커버리지와 분기 커버리지를 동시에 만족하는 테스트 케이스를 생성하기 위한 방법이다.
조건 커버리지에서 고려하는 테스트 케이스 조합의 수를 줄이기 위한 방법이다.