[Software testing] Code coverage
아래 링크는 내가 지금까지 검색한 code coverage 설명 중에 젤 깔끔하게 설명한 page 이다.
(누구신지 모르지만 완전 존경합니다!!!)
소프트웨어공학 - 21. Code coverages for white box testing :: jsdysw (tistory.com)
소프트웨어공학 - 21. Code coverages for white box testing
1. Code coverage - test suite을 사용해서 테스트를 했을때 소스 코드의 어느정도까지 커버가 가능한가? 2. function coverage - test suite을 실행했을때, 프로그램을 구성하는 모든 function들의 실행을 커버하는
jsdysw.tistory.com
개인적으로 제일 헷갈리는 부분들을 정리해 보면,
- Branch coverage는 분기되는 경로들만 빠짐없이 지나가면 되는 반면에, condition coverage는 조건값 하나하나 다 고려하기 때문에 'if((a < 3) && (b>5))' 같은 분기 조건이 있는 곳에서는 만든 test case에 따라 서로 다른 coverage를 갖는다. (포함 관계도 아님)
- Branch coverage 도 100% 만족하고 condition coverage도 100% 만족하도록 test case를 생성한 것이 'Decision/Condition coverage' 임.
- Condition coverage는 각각의 조건을 따로 따로 고려하여 test case를 만드는 반면, Multiple condition coverage는 각각의 조건들의 조합을 모두 만족하도록 test case를 만든다. (제일 강력하면서, 제일 빡셈.. 거의 불가능)
- MCDC는 multiple condition coverage가 너무 빡세니까 적절한 수준으로 test case를 생성하는 방법을 만든 것임.
이걸로 code coverage 이해 끝임!