2015-01-13 1 views
2

나는 커버리지 테스팅의 이론을 알고있다. 그러나 실제로, 커버리지 측정은 CC 툴에 의해 어떻게 수행 되는가? 내 말은, 각각의 방법이 그것을 테스트하는 단위 테스트를 가지고 있는지를 검사 하는가? 라인 적용 범위가 단위 테스트에 어떻게 든 연관되어 있습니까? 내가 찾을 수있는 것은 적용 범위 기준 등이지만이 도구 (예 : 수중 음파 탐지기)가 실제로 단위 테스트 적용 범위를 실제로 측정하는 방법을 이해하지 못합니다.단위 테스트 커버리지는 실제로 어떻게 수행됩니까?

+0

어떤 특정 도구에 대해 알고 싶습니까? D 언어의 도구는 C++의 도구와 조금 다르게 작동하기 때문에 Java 도구는 다른 방식으로도 작동합니다. 일반적으로 코드 계측이 있지만 여러 수준에서 수행 될 수 있습니다. –

+0

@TomaszLewowski 질문 본문과 질문 태그 모두에서 하나의 도구가 언급됩니다. 아마도. :) – bzlm

+0

@bzlm Sonar는 코드 커버리지 도구가 아니며 확장 가능한 품질 측정 도구입니다. 그것은 다른 언어에 대한 서로 다른 도구를 사용하며 (단일 언어에 대해 여러 도구를 사용하도록 구성 될 수 있습니다.) 제 질문은 합리적이라고 생각합니다.) –

답변

4

범위는 자동화 된 테스트가 실행되는 동안 실행되는 코드의 행/블록/호 수를 측정 한 것입니다.

코드 범위의 기본 개념은 간단합니다. 제품 개발 중에 많은 수의 테스트 케이스가 생성되어 시스템의 버그를 찾아냅니다. 코드 커버리지 분석은 제품 코드의 어느 부분이 테스트 케이스 모음에 의해 수행되는지를 모니터합니다. 테스트 중에 절대로 실행되지 않는 제품 코드 세그먼트가 있으면 제품이 철저히 테스트되지 않았습니다.

따라서 코드 커버리지가 90 % 이상인 경우 테스트에서 다루지 않는 코드의 10 %가 있다는 의미입니다. 코드의 90 %는 다룰 수 있다고 생각할 수도 있지만 다른 각도에서보아야합니다. 100 % 코드 커버리지를 얻으려고 무엇을 멈추게합니까 ??? "100 % 코드 커버리지"를 유지한다고해서 모든 것이 완전히 테스트된다는 것을 의미하지는 않습니다. 모든 코드 행이 테스트된다는 것을 의미하지만 모든 가능한 시나리오에서 테스트를 받았다는 것을 의미하지는 않습니다.

Sonar를 사용하면 응용 프로그램의 전체 적용 범위를 모니터링하고 요구 사항에 따라 비율 메트릭을 보낼 수 있습니다. 프로젝트에 통합 테스트로 코드 커버리지를 얻으려면, 당신은 단순히 아래의 5 단계를 수행해야합니다

  1. 는 연결하고 당신이 당신의 통합 테스트를 실행할 JVM에 JaCoCo 에이전트를 구성합니다.

  2. 이 JVM 내에서 자동 또는 수동 통합 테스트를 실행하십시오. 실행이 끝나면 JaCoCo는 1 단계에서 설정 한 대상에 코드 커버리지 보고서를 덤프합니다.

  3. 이 JaCoCo 보고서를 다시 사용하도록 Sonar를 구성합니다. 프로젝트 등록 정보 파일 (또는 명령 줄에서 직접)에 sonar.jacoco.itReportPath 등록 정보를 JaCoCo IT coverage 보고서의 경로와 함께 값으로 추가하십시오. 예제를 다운로드하고 projects/code-coverage/it 디렉토리를 살펴보십시오. 각 실행 프로그램에 대해 샘플을 찾을 수 있습니다.

  4. 분석을 실행하여 JaCoCo 보고서에서 제공 한 정보를 제공합니다.

  5. Sonar 웹 인터페이스에서 결과를 탐색하십시오. 소나 대시 보드에서 가장 낮은 보상 범위를 가진 수업을보고 그에 따라 전략을 계획 할 수 있습니다.

+0

THanks. 그러나 방법 범위를 알 수 있습니까? SonarQube로. – user144171

+0

sonarqube에는 아직 방법 적용 범위가 없습니다. 당신은 이것을 위해 불즈 아이를 시도 할 수 있습니다. – RicoRicochet

관련 문제