ISO/IEC/IEEE 29119-4 테스트 설계 기법 요약 정리
ISO/IEC/IEEE 29119-4
1. 명세 기반 기법 (Clause 5.2) - 입력 및 출력의 명세 기반
| 조항 |
기법명 |
특징 |
계산 및 설계 방법 |
| 5.2.1 |
동등 분할 |
데이터를 동일 결과가 예상되는 영역으로 분할 |
유효/무효 영역당 최소 1개 값 선정 |
| 5.2.2 |
분류 트리 기법 |
테스트 요소를 트리 구조로 시각화하여 조합 |
트리의 잎(Leaf) 노드 조합으로 케이스 생성 |
| 5.2.3 |
경계값 분석 |
영역의 경계에서 발생하는 오류 집중 공략 |
2-point(경계, 외부) 또는 3-point($n-1, n, n+1$) |
| 5.2.4 |
구문 규칙 테스팅 |
입력 값의 형식(문법) 규칙을 검증 |
올바른 문법과 잘못된 문법 케이스 설계 |
| 5.2.5.3 |
모든 조합 기법 |
모든 변수의 가능한 모든 값을 결합 |
모든 값의 개수를 곱함 ($\prod V_i$) |
| 5.2.5.4 |
페어와이즈 테스팅 |
모든 변수의 쌍(Pair)을 최소 한 번씩 포함 |
도구(PICT 등)를 사용하여 쌍 조합 최적화 |
| 5.2.5.5 |
이치 초이스 테스팅 |
모든 변수의 각 개별 값을 최소 한 번씩 포함 |
모든 변수 값 중 최대 개수를 가진 변수의 값 수 |
| 5.2.5.6 |
베이스초이스 테스팅 |
기준 조합에서 변수를 하나씩 변경 |
$1 + \sum (V_i - 1)$ |
| 5.2.6 |
결정 테이블 테스팅 |
조건과 행위의 논리적 관계를 표로 정리 |
조건 조합($2^n$)에 따른 결과 도출 |
| 5.2.7 |
원인 결과 그래프 |
입력 조건(원인)과 결과를 논리 게이트로 표현 |
그래프를 의사결정 테이블로 변환하여 설계 |
| 5.2.8 |
상태 전이 테스팅 |
이벤트에 따른 시스템 상태 변화 검증 |
상태 전이도에서 전이(Transition) 커버리지 계산 |
| 5.2.9 |
시나리오 테스팅 |
사용자 시나리오(유즈케이스) 기반 검증 |
기본 흐름과 대안/예외 흐름을 시퀀스로 설계 |
| 5.2.10 |
랜덤 테스팅 |
입력 도메인에서 무작위 데이터 선택 |
무작위 난수 생성을 통한 대량 입력 수행 |
2. 구조 기반 기법 (Clause 5.3) - 코드의 제어 흐름 및 데이터 흐름을 바탕으로 설계
| 조항 |
기법명 |
특징 |
커버리지 계산 방식 |
| 5.3.1 |
구문 테스팅 |
코드의 모든 문장을 실행 |
$\frac{실행 문장}{전체 문장} \times 100\%$ |
| 5.3.2 |
분기 테스팅 |
모든 분기(Branch)의 출력을 실행 |
$\frac{실행 분기}{전체 분기} \times 100\%$ |
| 5.3.3 |
결정 테스팅 |
결정 포인트의 결과(T/F)를 실행 |
분기 테스팅과 유사하나 결정문 단위 측정 |
| 5.3.4 |
분기 조건 테스팅 |
결정 내 개별 조건의 T/F 실행 |
$\frac{실행된 개별 조건 결과}{전체 개별 조건 결과}$ |
| 5.3.5 |
분기 조건 조합 테스팅 |
개별 조건의 모든 가능한 조합 실행 |
각 결정 내 조건들의 모든 조합($2^n$) 확인 |
| 5.3.6 |
변경 조건 결정 커버리지 |
개별 조건이 결과에 독립적 영향 미침 입증 |
변수 $n$개당 최소 $n+1$개 케이스 필요 |
| 5.3.7.2 |
모든 정의 테스팅 |
변수가 정의된 모든 지점 확인 |
변수 정의(Definition) 포인트의 실행 비율 |
| 5.3.7.6 |
모든 정의-사용 경로 |
정의부터 사용까지의 모든 경로 확인 |
Def-Use Pair 경로의 실행 비율 |
3. 경험 기반 기법 (Clause 5.4) - 테스터의 경험과 직관을 활용
| 조항 |
기법명 |
특징 |
설계 방법 |
| 5.4.1 |
에러 추정 |
오류가 발생할 것으로 예상되는 지점 선정 |
결함 체크리스트 및 과거 장애 사례 활용 |