반응형
코드 커버리지
- 소프트웨어의 테스트를 논할 때 얼마나 테스트가 충분한가를 나타내는 지표중 하나다. 말 그대로 코드가 얼마나 커버되었는지, 소프트웨어 테스트를 진행했을 때 코드 자체가 얼마나 실행되었냐는 것을 의미한다.
메이븐 Jacoco 설정
<build>
<plugins>
<plugin>
<groupId>org.jacoco</groupId>
<artifactId>jacoco-maven-plugin</artifactId>
<version>0.8.7</version>
<executions>
<execution>
<id>default-prepare-agent</id>
<goals>
<goal>prepare-agent</goal>
</goals>
</execution>
<execution>
<id>report</id>
<phase>prepare-package</phase>
<goals>
<goal>report</goal>
</goals>
</execution>
<!-- 커버리지 만족 못할 시, 빌드 실패 설정 -->
<execution>
<id>jacoco-check</id>
<goals>
<goal>check</goal>
</goals>
<configuration>
<rules>
<rule>
<element>PACKAGE</element>
<limits>
<limit>
<counter>LINE</counter>
<value>COVEREDRATIO</value>
<minimum>0.50</minimum>
</limit>
</limits>
</rule>
</rules>
</configuration>
</execution>
<!-- 커버리지 만족 못할 시, 빌드 실패 설정 끝 -->
</executions>
</plugin>
</plugins>
</build>
노란색 다이아몬드는 분기문 중 일부만 테스트 된 경우 표시가 된다. 완전하게 테스트 되려면 분기문의 참에 해당하는 조건과 거짓에 해당하는 조건 둘 다 확인되어야 한다.
붉은 영역은 실행이 되지 않은 영역이고 초록색 영역은 실행된 영역이다.
코드 커버리지 툴의 동작 원리?
우선, 바이트 코드를 읽어서 코드 커버리지를 측정해야 하는 것들의 갯수를 세어 놓는다.
그 후, 코드가 실행이 될 때 측정된 것들의 동작여부를 확인하면서 갯수를 세고 초기에 바이트 코드를 읽어 측정한 것과 실제 동작한 것들을 서로 비교를 해서 커버리지를 측정한다.
[참고자료]
반응형
'Java > 기본' 카테고리의 다른 글
자바(Java) 바이트 코드 조작관련 - 자바 에이전트 (0) | 2021.05.29 |
---|---|
자바(Java) 바이트 코드 조작관련 - ByteBuddy (0) | 2021.05.27 |
자바(Java) - 클래스 로더 시스템 구조 이해하기 (0) | 2021.05.25 |
자바(Java) - JVM 구조 이해하기 (0) | 2021.05.24 |
자바(Java) - JVM, JDK, JRE 차이점 이해하기 (0) | 2021.05.23 |