코드 커버리지 란?
테스트 커버리지(test coverage)는 코드 커버리지(code coverage)라고도 하는데, 쉽게 말해 코드가 얼마큼 테스트되고 있는지를 나타내는 소프트웨어 품질 지표이다.
당신의 회사는 Test 도구가 있는가?
회사 VS에서 코드 커버리지를 확인해 보려는데 IDE에서 해당 기능을 지원하지 않았다. 이럴 수가!!!😨 찾아보니 VS는 Enterprise 버전부터 지원을 하고 있었다. (지금이 어떤 시대인데 이런 똑똑한 사람들 같으니라고..)
https://visualstudio.microsoft.com/ko/vs/compare/
OpenCppCoverage 소개(코드 커버리지 툴)
다행히 GPL v3.0 License를 가진 코드 커버리지 툴이 있어서 소개하고자 한다. 👍👍👍
1. 코드 커버리지 프로그램 다운로드 및 설치
1) 최신 64bit exe 파일로 다운로드
- 자신의 시스템이 32bit 운영체제라면 x86으로 다운로드한다. (설치 후 VS restart 필요)
https://github.com/OpenCppCoverage/OpenCppCoverage/releases
Releases · OpenCppCoverage/OpenCppCoverage
OpenCppCoverage is an open source code coverage tool for C++ under Windows. - OpenCppCoverage/OpenCppCoverage
github.com
2) PlugIn 설치
: 위 1)만 설치해도 되지만 PlugIn을 설치하면 VS IDE에서 바로 coverage 실행 및 확인을 할 수 있다. (MaketPlace로 이동해서 설치)
https://marketplace.visualstudio.com/items?itemName=OpenCppCoverage.OpenCppCoveragePlugin
OpenCppCoverage Plugin - Visual Studio Marketplace
Extension for Visual Studio - Visual Studio plugin for OpenCppCoverage to compute code coverage for C++ application.
marketplace.visualstudio.com
2-1. 코드 커버리지 산출물 만들기 (PlugIn 미 설치)
1) 솔루션(프로젝트 아님)에서 터미널 열기
: 아래 메뉴로 터미널을 열지 않고 터미널을 실행해서 솔루션 위치에 명령을 실행해도 된다.
2) 커버리지 산출물 추출 명령어 실행
OpenCppCoverage.exe --source MySourcePath* -- YourProgram.exe arg1 arg2
예) OpenCppCoverage.exe --source D:*.c --export_type=html:coverage -- .\x64\Debug\Sample-Test1.exe
option 설명
--export_type=html:coverage : html 형식으로 추출하는 옵션
.\x64\Debug\Sample-Test1.exe : 커버리지를 측정할 실행파일
--sources C:*.c : 실행 프로그램의 파일별 커버리지 확인을 위한 소스파일 경로 추가
참고
사용방법 원문 : https://github.com/OpenCppCoverage/OpenCppCoverage/wiki
2-2. 확인 방법 (PlugIn 미 설치)
. 산출물이 나오면 index.html 파일이 생성이 된다.
- index.html 파일을 실행해 보면 실행 파일의 커버리지를 확인할 수 있고, 실행파일에 링크를 선택하면
- --source D:*.c 옵션으로 실행파일에서 호출된 함수들의 코드 커버리지를 파일별로 확인할 수 있다.
- 프로그램에서 사용한 파일 중 소스 옵션에서 찾은 소스 파일과 일치하는 파일들만 링크로 생성이 된다.
링크를 선택하면 line 별 코드커버리지를 시각적으로 확인할 수 있다.(초록색 사용 코드, 붉은색 미사용 코드)
3-1. 코드 커버리지 산출물 만들기 (PlugIn 설치)
. 도구 > Run OpenCppCoverage 실행
- 기본적으로 시작 프로젝트를 실행 프로그램으로 자동 세팅이 되기에 바로 실행해 보면 된다.
- 실행산출물은 임의의 경로로 자동생성되며 IDE에서 바로 확인이 가능하기에 산출물 경로를 신경 쓸 필요는 없다.
3-2. 확인 방법(PlugIn 설치)
- . Coverage 창에서 실행파일의 전체 커버리지 %를 확인할 수 있다.
- 위 Display coverage를 check 박스를 통해 커버리지를 시각적으로 확인이 가능하다.
- 실행파일 중 사용된 코드는 녹색, 미사용 된 코드는 빨간색으로 표시된다.
4. 젠킨스 적용
. 위 내용과 결이 다르긴 한데 CI/CD에 적용할 수 있도록 젠킨스 적용가이드도 제공하고 있다.
https://github.com/OpenCppCoverage/OpenCppCoverage/wiki/jenkins
Jenkins
OpenCppCoverage is an open source code coverage tool for C++ under Windows. - OpenCppCoverage/OpenCppCoverage
github.com
Others
다른 커버리지 도구들 소개
gcovr : https://gcovr.com/en/stable/guide/compiling.html#example-code
'개발 > 환경구축' 카테고리의 다른 글
mock object(모의 객체) 파일 자동 생성 툴 (0) | 2023.09.12 |
---|---|
TDD : Unit Test 환경 설정(Visual Studio 2017 + gtest) (2) | 2023.03.22 |
TDD : Unit Test 환경 설정(IntelliJ + java + JUnit) (0) | 2023.01.10 |
[C/C++]VSCode + MinGW + makefile 환경 설정 하기 (2) | 2022.12.11 |
[Raspberry PI] 커널 모듈 빌드를 위한 환경 셋팅 (2) | 2022.11.27 |