Software Quality

구조기반 테스트(Structure based Testing) 본문

SQA/이론

구조기반 테스트(Structure based Testing)

Kairoka 2023. 10. 7. 08:30

1. What is Structure based Testing?

  • 프로그램 내부 구조 및 복잡도를 검증하는 테스트로서 WhiteBox 기법 중 하나입니다.
  • 코드 구조의 효율성 및 오류사항을 발견하기 위한 테스트로서 Logic Driven 방식입니다.

2. What is Code Coverage

코드 커버리지는 구조기반 테스트 유형으로 구문(Statement), 조건(Condition), 결정(Decision) 이 얼마나 확인되었는지 확인합니다.

 

1. 구문 커버리지(Statement Coverage)

프로그램의 모든 코드 구문(statement)이 얼마나 많이 실행되는지를 측정합니다. 

 

2. 조건 커버리지(Condition Coverage)

전체 조건식과 관계 없이 각 개별 조건식의 True/False가 한번씩 수행되었는지를 확인합니다.

 

결정포인트 A and B에서 조건 커버리지의 결정 테이블

Dpoint A B
0 1 0
0 0 1

 

3. 결정 커버리지(Decision Coverage)

개별 조건식과 관계 없이 각 전체 조건식의 True/False가 한번씩 수행되었는지를 확인합니다.

 

결정포인트 A and B에서 결정 커버리지의 결정 테이블

Dpoint A B
0 1 0
1 1 1

 

4. 조건/결정 커버리지(Condition/Decision Coverage)

개별 조건식과 전체 조건식의 True/False가 한번씩 수행되었는지를 확인합니다.

 

결정포인트 A and B에서 결정 커버리지의 결정 테이블

Dpoint A B
0 0 0
1 1 1

 

5. 변형 조건/결정 커버리지(Modified Condition/Decision Coverage)

전체 조건식의 개별 조건이 다른 개별 조건과 무관하게 전체 조건식의 True/False에 영향을 주는 케이스가 얼마나 수행되었는지를 확인합니다.

 

결정포인트 A and B에서 변형 조건/결정 커버리지의 결정 테이블

Dpoint A B
0(B가 A에 독립적) 1 0
0(A가 B에 독립적) 0 1
1(A가 B에 독립적, B가 A에 독립적) 1 1

 

6. 다중 조건 커버리지(Multiple Condition Coverage)

개별 조건식의 모든 가능한 논리적 조합을 얼마나 수행했는지 확인합니다.

 

결정포인트 A and B에서 다중조건 커버리지의 결정 테이블

Dpoint A B
1 1 1
0 1 0
0 0 1
0 0 0

 

7. 경로 커버리지(All Path Coverage)

프로그램의 실행 가능한 모든 경로를 얼마나 확인했는지 확인합니다.

 

 

 

 

 

참고

https://www.guru99.com/code-coverage.html

https://m.blog.naver.com/suresofttech/221833396343

https://itwiki.kr/w/%EC%86%8C%ED%94%84%ED%8A%B8%EC%9B%A8%EC%96%B4_%ED%85%8C%EC%8A%A4%ED%8A%B8_%EC%BB%A4%EB%B2%84%EB%A6%AC%EC%A7%80