정답: D
코드 내의 모든 결정에 대해 결정 결과 중 하나 이상을 실행하면 전체 분기 적용 범위를 달성할 수 있습니다. 전체 분기 적용 범위는 코드의 제어 흐름에 있는 모든 분기가 테스트 케이스에서 최소한 한 번은 실행되어야 한다는 테스트 적용 범위 기준입니다. 분기는 단일 진입점과 단일 종료점이 있는 기본 코드 블록이고, 결정은 제어 흐름이 여러 방향으로 갈 수 있는 코드의 지점으로, 예를 들어 if-then-else 문, switch-case 문, 루프 문 등이 있습니다. 결정 결과는 결정에서 가져올 수 있는 가능한 경로로, 예를 들어 then 분기 또는 else 분기, case 분기 또는 default 분기, 루프 본문 또는 루프 종료 등이 있습니다. 다른 문은 다음과 같은 이유로 거짓입니다.
* 전체 분기 커버리지를 달성하는 데 필요한 최소 테스트 케이스 수는 일반적으로 전체 문장 커버리지를 달성하는 데 필요한 수보다 많습니다. 전체 문장 커버리지는 코드의 모든 실행 가능한 문장이 테스트 케이스에서 최소한 한 번은 실행되어야 하는 테스트 커버리지 기준입니다. 이는 분기 커버리지가 문장 커버리지보다 더 강력한 기준이기 때문입니다. 문장 커버리지는 문장 커버리지를 의미하지만 그 반대는 아닙니다. 예를 들어, 단일 테스트 케이스는 if-then-else 문장에 대한 전체 문장 커버리지를 달성할 수 있지만, then 분기와 else 분기를 모두 실행해야 하므로 전체 분기 커버리지를 달성하려면 두 개의 테스트 케이스가 필요합니다.
* 전체 분기 범위가 달성되었다면 코드 내의 모든 무조건 분기가 실행된 것은 아닙니다. 무조건 분기는 어떤 결정에도 의존하지 않고 항상 실행되는 분기(예: goto 문, break 문, return 문 등)이기 때문입니다.
무조건 분기는 코드의 제어 흐름에서 다른 경로를 나타내지 않으므로 분기 적용 범위 기준의 일부가 아닙니다. 그러나 코드에서 실행 가능한 명령문이므로 명령문 적용 범위 기준의 일부입니다.
* 전체 분기 적용 범위가 달성된 경우 결정 테이블의 모든 조건 조합이 반드시 실행된 것은 아닙니다. 결정 테이블은 여러 조건과 해당 작업 간의 논리적 관계를 표 형식으로 나타내는 테스트 설계 기법이기 때문입니다. 결정 테이블은 코드의 결정 결과 수보다 많은 조건 조합을 가질 수 있습니다. 각 조건에는 참 또는 거짓, 예 또는 아니요 등 두 개 이상의 가능한 값이 있을 수 있기 때문입니다. 예를 들어, 네 가지 조건이 있는 결정 테이블은 16가지 조건 조합을 가질 수 있지만 해당 코드에는 통과 또는 실패와 같은 두 가지 결정 결과만 있을 수 있습니다. 결정 테이블에서 모든 조건 조합을 실행하려면 조건 조합 적용 범위와 같은 더 강력한 테스트 적용 범위 기준이 필요합니다. 이는 코드의 모든 가능한 조건 결과 조합이 테스트 케이스에서 최소한 한 번 실행되어야 함을 요구합니다. 참조: ISTQB Certified Tester Foundation Level(CTFL) v4.0 소스 및 문서:
* ISTQB® 인증 테스터 기초 수준 교과 과정 v4.0, 2.3.1장, 소프트웨어 구조에 따른 테스트 적용 범위 기준
* ISTQB® 테스트 용어집 v4.0, 분기 범위, 문장 범위, 분기, 결정, 결정 결과, 무조건 분기, 결정 테이블, 조건 조합 범위