Emma, Cobertura 및 Clover와 같은 코드 적용 툴은 코드를 계측하고 일련의 테스트를 실행하여 호출되는 코드 부분을 기록합니다. 이것은 매우 유용하며 개발 프로세스에서 없어서는 안될 부분입니다. 테스트 스위트가 코드를 얼마나 잘 다루는 지 식별하는 데 도움이됩니다.
그러나 이것은 실제 데드 코드를 식별하는 것과 다릅니다. 테스트에서 다루거나 다루지 않는 코드 만 식별합니다. 이렇게하면 오 탐지 (테스트가 모든 시나리오를 다루지 않는 경우)와 오 탐지 (실제 시나리오에서 실제로 사용되지 않은 코드에 액세스하는 경우)를 얻을 수 있습니다.
죽은 코드를 실제로 식별하는 가장 좋은 방법은 실제 실행 환경에서 적용 범위 도구를 사용하여 코드를 계측하고 장기간에 걸쳐 코드 적용 범위를 분석하는 것입니다.
로드 밸런싱 된 중복 환경에서 실행중인 경우 (그렇지 않은 경우, 그렇지 않은 이유는 무엇입니까?) 애플리케이션의 한 인스턴스 만 계측하고로드 밸런서를 임의의 작은 크기로 구성하는 것이 합리적이라고 가정합니다. 사용자는 인스트루먼트 된 인스턴스에서 실행됩니다. 장기간에 걸쳐이 작업을 수행하는 경우 (계절 변화와 같은 실제 사용 시나리오를 모두 포함했는지 확인하기 위해) 실제 사용에서 액세스하는 코드 영역과 해당 파트를 정확하게 확인할 수 있어야합니다. 실제로 액세스하지 않으므로 코드가 죽은 것입니다.
나는 이것을 개인적으로 본 적이 없으며 앞서 언급 한 도구를 사용하여 테스트 스위트를 통해 호출되지 않는 코드를 계측하고 분석하는 방법을 모릅니다.