- 설계된 절차에 초점을 맞춘 구조적 테스트
- 프로시저 설계의 제어구조를 사용하여 검사 사례를 설계하며 테스트 과정의 초기에 적용
- 각 조건에서의 참과 거짓의 모든 논리적 결정이 한 번 이상 수행
- 프로그램의 제어구조에 따라 선택, 반복 등의 부분들을 수행함으로써 논리적 경로 점검
- 모듈 안의 작동을 직접 관찰
- 기초경로검사, 제어구조검사(조건검사, 루프검사, 데이터흐름검사) 등
대표적인 화이트 박스 테스트 기법이다. (McCabe cyclomatic)
검사 사례 설계자가 절차적 설계의 논리적 복잡성을 측정할 수 있게 해주고, 이 측정 결과는 실행 경로의 기초를 정의하는데 지침으로 사용한다.
순환복잡도
- 한 프로그램의 논리적 복잡도를 측적하기 위한 소프트웨어 척도로 제어흐름도 이론에 기반
- 순환복잡도 V(G) = E-N+2 (E = edge 수, N = node 수)

제어 흐름 그래프가 위와 같을 때, McCabe 의 cyclomatic 수는 4 이다.
조건 검사
루프 검사
데이터 흐름 검사(Data Flow Testing)
- 소프트웨어가 수행할 특정 기능을 알기 위해 각 기능이 완전히 작동되는 것을 입증하는 검사
- 부정확하거나 누락된 기능, 인터페이스 오류, 자료구조, 외부DB 접근에 따른 오류, 행위나 성능 오류 등을 발견하기 위해 사용(테스트 후반부에 적용)
- 데이터 위주 또는 입출력위주 검사
- 각 산출물의 기능별로 적절한 정보 영역을 정하여, 적합한 입력에 대한 출력의 정확성 점검
- 동등 분할 검사, 경계값 분석, 원인-결과 그래프, 오류 예측 검사, 비교 검사
Feature: 성적 관리 기능
Scenario: 점수에 따른 학점을 계산한다.
When: 90점을 입력한다.
then: A학점이 나온다.
Feature: 오전/오후 도출 기능
Scenario: 시간에 따른 오전/오후를 구한다.
When: 1시를 입력한다.
then: 오후라는 결과가 나온다.

IDENTITY : 원인이 참이면 결과도 참이고, 원인이 거짓이면 결과도 거짓

AND : 하나 이상의 원인에서 모두가 참인 경우에만 결과가 참

OR : 하나 이상의 원인 집합에서 둘 중 하나라도 참이면 결과는 참이다.

NOT : 원인의 반대값이 결과값이 된다. 결과가 참이기 위해선 원인이 거짓이어야 한다.


E(exclusive) : 두 개의 원인 중 둘 다 참이 될 수 없다. 많아야 하나만 참이될 수 있다.(0개일수도 있다.)3³

I(inclusive) : 원인들 중 최소 하나는 참이어야 한다. 모두가 거짓일 수 없다.

O(one and only one) : 원인1과 원인2중 오로지 하나만 참이어야 한다.

R(requires) : 원인1이 참이려면 원인2도 참이어야한다.

M(mask) : 해당 제약은 결과에 적용이 가능한 제약심볼로 결과1이 참일경우 결과2는 강제로 거짓이 된다.