Dazzling 개발 노트

[테스트] JaCoCo와 보고서 구성요소 단위테스트 결과 본문

카테고리 없음

[테스트] JaCoCo와 보고서 구성요소 단위테스트 결과

dj._.dazzling 2024. 2. 8. 23:29

Code Coverage

Code Coverage란 소프트웨어에서 test code가 본 코드를 얼마나 커버하고 있냐를 측정해주는 지표입니다. 테스트를 진행하였을 때 코드 자체가 몇% 나 실행되었느냐로 생각하실 수 있을 것입니다.

 

원래 원칙적으로 test code는 모든 시나리오에 대해서 설계되어야 합니다. 실제로 배포하는 서비스라면 더욱더 모든 시나리오를 커버하려 합니다. 하지만 현실적으로 내가 지금 작성한 테스트 케이스가 모든 케이스를 커버하는지를 객관적인 지표로 확인할 수 있는 방법 중에 하나가 Code Coverage입니다.

 

 

JaCoCo 

JaCoCo란 Java Code의 coverage를 측정하는 라이브러리입니다. 테스트를 실행하고, 그 결과를 html 파일이나 csv, xml 파일을 통해서 시각화해줍니다. 또한, 결과에 대한 기준치를 적용할 수도 있습니다.

 

  1. Missed Instructions (누락된 명령어): 이 열은 테스트되지 않은 코드 명령어의 수와 비율을 나타냅니다. 높은 수치는 더 많은 코드가 테스트되지 않았음을 의미합니다.
  2. Cov. (커버리지): 이 열은 코드의 어느 비율이 테스트에 의해 실행되었는지를 백분율로 나타냅니다. 높을수록 더 좋습니다.
  3. Missed Branches (누락된 분기): 여기서 분기는 if/else나 switch 같은 조건문을 의미합니다. 누락된 분기는 테스트되지 않은 조건문의 경로를 나타냅니다.
  4. Cov. (분기 커버리지): 분기 커버리지는 테스트가 조건문의 모든 가능한 경로를 얼마나 커버하는지를 백분율로 나타냅니다.
  5. Cxty (복잡성): 이는 코드의 복잡성을 나타내며, 일반적으로 분기의 수로 측정됩니다. 높은 복잡성은 더 많은 테스트 케이스가 필요함을 의미합니다.
  6. Missed Lines (누락된 라인): 테스트되지 않은 코드 라인의 수를 나타냅니다.
  7. Lines (라인 커버리지): 코드의 어느 비율이 실행되었는지를 나타내는 라인의 총 수입니다.
  8. Missed Methods (누락된 메소드): 테스트되지 않은 메소드의 수를 나타냅니다.
  9. Missed Classes (누락된 클래스): 테스트되지 않은 클래스의 수입니다.