java bytecode 를 조작해 테스트 코드 커버리지 확인하기 (feat.jacoco)

jacoco 같은 테스트 코드 커버리지 툴은 어떻게 만들어지는 것일까?

인프런 백기선님의 강의 <더 자바, 코드를 조작하는 다양한 방법> 을 수강하면서 공부한 내용을 정리합니다.

1. 테스트코드 커버리지 플러그인들은 어떤 원리로 동작하는가

테스트 코드 커버리지를 확인하는 많은 툴들이 있다. 구글 검색시 최상단에 노출되는 jacoco plugin 을 살펴보자.

jacoco plugin 사용방법은 이곳을 참고

위의 링크에 참고된 문서에 따라 차례대로 jacoco 플러그인을 설치한 뒤, gradle java project 에서 테스트 코드를 실행하면, build > 내부에 테스트 결과 리포트가 생성된다. 확인하면 대략 위와 같은 이미지로 테스트 코드가 다루는 범위를 눈으로 확인할 수 있다.

1-1. 동작원리

  • 이러한 툴들은 기본적으로 컴파일된 바이트 코드를 실행할 때, 실행이 되는 곳들과 안되는 곳들을 기억하고, 결과로 표시해주는 것이다.

2. 느낀점

  • 부끄럽게도 jacoco 와 같은 테스트 코드 커버리지 툴을 쓰면서 매번 툴 사용법을 익히는데에만 급급했지, 이런 툴들이 어떤 원리로 동작하는 것일까 호기심을 가져본 적이 없었다.

  • 이번 강의를 들으면서 결국에는 특정 기술은, 특정 라이브러리는, 특정 프레임워크는 어떤 원리로 동작하는 것일까, 호기심을 갖고 탐구하는 연습을 많이 하게 되는 것 같다.

  • 이런 탐구의 과정이 진심으로 재미있다.

3. 참고

Last updated