연관토픽
개념
- 각 개별 조건식이 다른 개별 조건식에 영향을 받지 않고 전체 조건식의 결과에 독립적으로 영향을 주도록 함으로써, 조건 커버리지(Condition Coverage)와 분기 커버리지(Decision Coverage)를 보완해서 만든 테스트 커버리지 접근 방법
- 다른 상태(condition)들의 변동이 없고 자신의 상태가 변경되었을 때 결과 값에 영향을 미치는 경우 해당 상태는 MC/DC를 만족한다고 할 수 있음
- 전체 조합을 테스트 하는 것은 현실적으로 불가능, 의미있게 조합수를 줄여 테스트 하자는 것이 변경조건/결정 커버리지의 핵심
MC/DC 커버리지의 핵심
- 전체 조합을 테스트 하는 것은 현실적으로 불가능, 의미있게 조합수를 줄여 테스트 하자는 것
- 각 개별 조건이 다른 개별 조건에 영향을 받지 않으면서 전체 조건식의 결과 값에 독립적으로 영향을 주는 조건을 MC/DC 테스트 커버리지로 선정하는 것
테스트 커버리지 간 포함관계
- MC/DC는 높은 수준의 테스트 커버리지로 SW 안정성 테스트에 중요
MC/DC 특징
특징 | 설명 |
전체 조건식 최소 한번 수행 |
프로그램에 있는 모든 결정포인트 내 전체 조건식은 적어도 한번 모든 가능한 결과값을 취함 |
모든 개별 조건식 최소 한번 수행 |
프로그램에 있는 모든 결정포인트 내 모든 개별 조건식은 적어도 한번 모든 가능한결과값 취함 |
개별 조건식은 결과에 독립적영향 |
결정 포인트에 있는 각각의 개별 조건식은 결정 포인트의 결과값에 독립적으로 영향 |
MC/DC 결정 테이블(테스트 케이스)
- A, B는 개별 조건식
- (A and B)는 전체 조건식
개별 조건식 | 전체 조건식 | MC/DC 테스트 케이스 여부 |
설명 | |
A | B | A and B | ||
T | T | T | Y | - A가 B에 독립적 , B가 A에 독립적으로 전체 조건식에 영향 - A, B 중 한 개의 값을 변경하면 전체 조건식에 영향 |
T | F | F | Y | - B가 A 에 독립적 - B를 T로 변경하면 전체 조건식이 T로 변경 , 독립적으로 영향 |
F | T | F | Y | - A가 B에 독립적 - A를 T로 변경하면 전체 조건식이 T로 변경 |
F | F | F | - A, B 둘 중 어느 하나라도 변경하더라도 전체 조건식은 변경 없음 - MC/DC 커버리지에서 제외 |
MC/DC 만족 케이스
- a 조건을 기준으로 MC/DC를 만족하는 경우는 (1, 5) 테스트 케이스
- b 조건을 기준으로 MC/DC를 만족하는 경우는 (1, 3) 테스트 케이스
- c 조건을 기준으로 MC/DC를 만족하는 경우는 (1, 2) 테스트 케이스
MC/DC 테스트 케이스 생성 절차
단계 | 설명 |
결정 table 의 대각선값 설정 | - 대각선으로 1 과 0 을 지정 |
Neutral Value 설정 | - 각각 개별 Condition이 취할 수 있는 값 중, Decision의 Outcome에 영향을 주지 않는 값 - 개별조건식이 ‘OR’인 경우 0, 개별조건식이 ‘AND’인 경우 1을 삽입 |
중복값 제거 | - 같은 결과값을 보이는 커버리지 제거 |
테스트 상황 구성 | - 구성된 조건별 실제 데이터를 통해 작성 |
- 프로그램에 있는 모든 결정 포인트 내의 전체 조건식은 적어도 한 번 모든 가능한 결과값을 취함
- 프로그램에 있는 모든 결정 포인트 내의 모든 개별 조건식은 적어도 한번 모든 가능한 결과값 취함
- 프로그램에 있는 모든 결정 포인트 내의 모든 개별 조건식은 적어도 한번 모든 가능한 결과값 취함
MC/DC 테스트 케이스 생성 예시
단계 | 세부 내용 |
수행 예제 | |
결정 Table의 대각선값결정 | |
Neutral Value 설정 | |
중복값 제거 | |
테스트 상황 구성 |
- 중복값을 제거할 때 순서는 중요치 않고 시간적인 효율성을 고려하여 판단
- 테스트 상황으로 구성된 조합의 개수는(조건식의 개수+ 1) 임
모범답안
참고 사이트