도서 및 강의/소프트웨어 테스트 전문가(CSTS) 가이드

구조 기반 테스트 정리

간쥬 2025. 11. 28. 01:41

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