반응형
구조적 커버리지 종류
1. 문장 커버리지 (Statement Coverage)
정의: (실행된 statement 수) / (전체 statement 수) * 100
예제
printf("hello")
if (x > 2) {
printf("hello")
}
print("hello")
x = 1
인 경우 문장 커버리지는 3/4*100 = 75%
2. 결정 커버리지 (Decision Coverage)
정의: (수행된 분기 수) / (전체 분기 수) * 100
- 하나의
if
문에 대해 결정 커버리지 100% 를 달성하기 위해서는 true 와 false 데이터가 모두 필요하다 - and 도는 or 조건에 의해 오른쪽 조건에 대해서는 조건식을 확인하지 않을 수 있다.
예제
printf("hello")
if (x > 2 && y < 6) {
printf("hello")
} else {
printf("hello")
}
print("hello")
결정 커버리지 100%를 달성하기 위해서는
(x > 2 && y < 6)
-> true case(x > 2 && y < 6)
-> false case
를 만족하는 input 조합을 찾으면 된다.
3. 조건 커버리지 (Condition Coverage)
정의: (수행된 조건 수) / (전체 조건 수) * 100
- if 문의 전체 조건식을 구성하는 개별 조건식 각각에 대한 true 와 false 를 모두 거쳐야 한다.
예제
printf("hello")
if (x > 2 && y < 6) {
printf("hello")
} else {
printf("hello")
}
print("hello")
같은 예제이며, 조건 커버리지 100%를 달성하기 위해서는 x > 2
와 y < 6
각각의 조건식에 대해 true 와 false 의 경우를 모두 제시해야 한다.
- { true, true } and { false, false }
- { true, false } and { false, true }
경우가 있다.
4. 조건/결정 커버리지 (Condition/Decision Coverage)
반응형