위키득계정 ↗
기술

Gcov

Gcov기술
소속
GNU GCC
분류
테스트 커버리지 도구
출력 예
행별 실행 정보
관련 보고 도구
Gcovr와 LCOV
Gcov는 GCC와 함께 사용하는 코드 커버리지 도구다. 프로그램 실행 중 어떤 소스 행이 얼마나 실행되었는지 살펴보고 검사되지 않은 영역을 찾는 데 활용한다.

실행된 코드 확인

검사 모음이 프로그램의 어느 부분을 실제로 실행했는지 소스와 연결한다. 기대값을 맞혔는지 확인하는 테스트와 실행 범위를 확인하는 커버리지는 서로 다른 역할이다. 실행되지 않은 영역은 추가 검사를 설계할 때 단서가 될 수 있다.

최적화의 영향

컴파일 최적화는 여러 소스 행을 합치거나 코드를 변형해 행 단위 정보의 해석을 어렵게 할 수 있다. 소스 한 행에 많은 작업이나 복잡한 매크로가 들어가 있어도 세부 동작을 구분하기 어렵다. 측정 목적에 맞게 빌드 조건과 표현 단위를 이해해야 한다.

시간과 횟수 구분

많이 실행된 코드가 반드시 전체 실행 시간의 대부분을 차지하는 것은 아니다. 실행 횟수와 실제 소요 시간을 구분하고 시간 프로파일 등 다른 자료와 함께 병목을 살핀다. 높은 커버리지 비율만으로 모든 요구 사항과 경계 조건이 검증되었다고 판단하지 않는다.

관련 문서

Gcovr / LCOV / LLVM Cov / CTest