100% 코드 커버리지가 테스트되었다는 것을 의미하는가... 노트

100% 코드 커버리지가 테스트되었다는 것을 의미하는가?

엔지니어링 조직이 보고하기를 좋아하고 엔지니어링 리더들이 받기를 좋아하는 숫자가 있습니다. 바로 100% 코드 커버리지입니다. 이 숫자는 완전함이라는 만족스러운 속성을 가지고 있습니다. 하지만 정확히 무엇의 완전함일까요? 모든 라인이 테스트되었고, 모든 분기가 검토되었으며, 모든 조건이 검증되었음을 암시합니다. 잘 수행된 작업에 대한 수학적 증명처럼 보입니다. 하지만 그렇지 않습니다. 그리고 그 숫자가 약속하는 것과 실제로 제공하는 것 사이의 간극은 많은 조직에서 품질 프로그램에서 가장 비용이 많이 드는 오해입니다.코드 커버리지는 테스트가 실행하는 코드의 비율을 측정하는 것이지, 테스트가 검증하는 동작의 비율을 측정하는 것이 아닙니다. 이 두 가지는 근본적으로 다르며, 이를 혼동하면 잘 커버되었지만 위험할 정도로 테스트가 부족한 시스템이 만들어집니다. 엔지니어들은 커버리지 숫자를 알고 있습니다. 경영진은 커버리지 숫자를 신뢰합니다. 그리고 시스템은 커버리지 숫자가 감지할 수 없었던 방식으로 실패합니다.