ex)
int multi(int x, int y) {
if(x > 0 && y <= -3) {
x = y + 4;
}
return x;
}
결정문
- (x > 0 && y <= 3)
기본 조건
- 조건1: x > 0
- 조건2: y <= 3
1. 문장 테스트
- 프로그램의 모든 실행 가능한 구문(문장)을 한 번 이상 실행
- 필요한 구문: if문 true / if문 false / return문
| if문 | 테스트 케이스 | 기대 출력 | |
| TC1 | true | x=1, y=-3 | 1 |
| TC2 | false | x=0, y=0 | 0 |
- 커버리지

| 전체 문장 수 | TC1 실행 시 문장 수 | 커버리지 |
| 3 | 3 | 100% |
2. 결정 테스트
- 모든 결정문이 True와 False를 최소 한 번씩 실행
- 결정문: (x > 0 && y <= 3)
| 결정문 | 테스트 케이스 | 기대 출력 | |
| TC1 | true | x=1, y=-3 | 1 |
| TC2 | false | x=0, y=0 | 0 |
- 커버리지

| 모든 결정문의 결과 수 | TC1 실행시 실행된 결정문의 결과 수 | 커버리지 |
| 2 (true, false) | 1 (true) | 50% |
3. 조건 테스트
- 모든 기본 조건이 True와 False를 최소 한 번씩 갖도록 실행 (결정문 결과와 무관)
- 조건1: x > 0
- 조건2: y <= -3
| 조건1 | 조건2 | 테스트 케이스 | 기대 출력 | |
| TC1 | true | true | x=1, y=-3 | 1 |
| TC1 | false | false | x=0 y=0 | 0 |
- 커버리지

| 모든 조건의 결과 수 | TC1 실행시 실행된 조건의 결과 수 | 커버리지 |
| 4 (조건1:true/false + 조건2: true/false) | 2 (조건1: true + 조건2: true) | 50% |
4. 결정/조건 테스트
- 결정 테스트와 조건 테스트를 동시에 만족
| 조건1 | 조건2 | 결정문 | 테스트 케이스 | 기대 출력 | |
| TC1 | true | true | true | x=1, y=-3 | 7 |
| TC2 | false | false | false | x=0, y=0 | 0 |
- 커버리지

| 모든 결정문과 조건의 결과 수 | TC1 실행 시 실행된 결정문과 조건의 결과 수 | 커버리지 |
| 6 | 3 | 50% |
5. 다중 조건 테스트
- 모든 조건의 가능한 조합을 실행
| 조건1 | 조건2 | 결정문 | 테스트 케이스 | 기대 출력 | |
| TC1 | true | true | true | x=1, y=-3 | 1 |
| TC2 | true | false | false | x=1, y=0 | 1 |
| TC3 | false | true | false | x=0, y=-3 | 0 |
| TC4 | false | false | false | x=0, y=0 | 0 |
- 커버리지

| 모든 조건의 조합 수 | TC1 실행시 실행된 조건들의 조합 수 | 커버리지 |
| 4 | 1 | 25% |
모든 조건의 조합 수 : true+true / true+false / false+true / false+false
'도서 및 강의 > 소프트웨어 테스트 전문가(CSTS) 가이드' 카테고리의 다른 글
| 10장 명세 기반 테스트 - 10.2 동등 분할 (0) | 2025.11.28 |
|---|---|
| 10장 명세 기반 테스트 - 10.1 개요 (0) | 2025.11.28 |
| 9장 구조 기반 테스트 - 9.8 다중 조건 테스트 (0) | 2025.11.28 |
| 9장 구조 기반 테스트 - 9.7 결정/조건 테스트 (0) | 2025.11.27 |
| 9장 구조 기반 테스트 - 9.6 조건 테스트 (0) | 2025.11.27 |