테스트 효과성을 검증하기 위한 방법은 여러가지 방법이 있습니다!
크게 3가지로 나눠 볼 수 있는데요.
TC기반 / 결함기반 / 커버리지 기반
요렇게 3개로 나눌 수 있습니다.
테스트 케이스 기반
- 테스트 케이스 실패율로 판단하기
⇒ 결함을 검출한 테스트 케이스의 비율이 높으면 효과적인 테스트라고 판단
⇒ 그럼 결함 검출한 테스트 케이스의 비율이 높으면, 비효율적인 테스트라고 판단하게된다.
근데 이미 SW품질이 높거나 예외 테스트케이스가 없어서 실패율이 낮을 수도 있고, 특정 테스트만 편중해서 실패율이 높게 나올 수도 있다..
- 테스트 케이스 효율성으로 판단하기
⇒하나의 결함을 검출하기 위해 사용된 TC개수로 판단
⇒ 하나의 결함을 검출하는데, 많은 수의 TC가 사용되면 효율이 낮은 것.
⇒ 왜냐하면 여러 테스트 케이스들이 유사/동일한 오류를 검출했기 때문이다. 최대한 적인 TC로 많은 결함을 잡아내는 것을 목표로 한다.
그럼 중복을 막기위해 TC를 다른 TC와 최대한 독립적으로 구성하게 되는데, 이 과정에서 찾을 수 있는 결함이 누락될 수 있다.
또는 애초에 테스트 대상이 적은 결함이어서 중복이 많이 들어갔을 수도 있다.
결함 기반 (간단히 설명만하고 넘어갈게용)
- 검출 결함 수
검출된 결함 수로 테스트 효율성 판단 - 결함 검출 밀도
테스트 대상의 크기 당 검출된 결함의 수로 판단 - 결함 검출 비율
존재하는 모든 결함 중, 검출된 결함의 비율로 판단 - 해당 단계 결함 검출 비율
개발 단계에서 생성된 결함을 해당 단계에서 검출하는 비율로 판단
- 커버리지 기반
요구사항 커버리지
⇒ 요구사항이 테스트된 비율로 판단
설계 커버리지
⇒ 설계가 테스트된 비율로 판단
코드 커버리지
⇒ 소스코드가 테스트된 비율로 판단
코드 커버리지
문장 커버리지
⇒ 프로그램 내 모든 문장을 적어도 한번이상 실행하는 것을 기준으로 측정분기 커버리지 (결정 커버리지)
⇒ 각 분기가 (if가) 참/거짓을 한번 이상 실행하는 것을 기준으로 측정
(실행된 분기가 몇%인가?)조건 커버리지
⇒ 전체 조건식의 결과와 관계없이, 모든 기본 조건식의 결과 값이 참/거짓을 적어도 한 번이상 실행시키는 것을 기준으로 측정
(조건 커버리지 100%를 달성했다고, 분기 커버리지가 100%만족되는것이 아님, vice versa)
요기 까지는 잘 설명된 글이 있어서, 타 블로그로 구체적인 설명을 대체합니당
https://woowacourse.github.io/javable/post/2020-10-24-code-coverage/
조건/분기 커버리지
⇒ 각 기본 조건식 및 전체 조건식의 결과 값이 참/거짓을 적어도 한번이상 실행시키는 것을 기준으로 측정
즉, 분기커버리지 + 조건 커버리지입니다.MD/DC 커버리지
개별 조건식이 다른 조건식의 영향을 받지 않고, 전체 조건식의 결과에 독립적으로 영향을 주도록 TC를 짜서 측정
여기 까지도 잘 설명된 글이 있어서, 타 블로그로 구체적인 설명을 대체합니당
https://m.blog.naver.com/shiftspace/220561755364
- 다중 조건 커버리지
⇒ 각 조건문 내의 기본 조건식이 가능한 논리적인 조합이 적어도 한 번 테스트 되도록 TC를 짜서 측정
그냥 코드에 있는 기본 조건식이 가질 수 있는 모든 조합으로 테스트한다 생각하시면 됩니다 >_<
'개발 > QA' 카테고리의 다른 글
4. White box testing (0) | 2020.09.15 |
---|---|
3. BlackBox Testing (0) | 2020.09.15 |
2. testing 기초 (0) | 2020.09.15 |
1. SW는 무엇이고 testing이란 무엇인가 (0) | 2020.09.14 |
칸반과 스크럼이란? (0) | 2020.09.12 |