개발 중 단위 테스트를 작성할 때 코딩하는 것보다 애플리케이션을 개발하는 데 걸리는 시간에 대한 통계가 있습니까?
이것에 대한 매우 흥미로운 연구가 있습니다. 다음 백서를 읽으십시오.
테스트 중심 개발을 통한 품질 향상 실현 : 4 개의 산업 팀의 결과 및 경험
백서 및 기타 저자 인 Nachi Nagappan 의 연구는 여기 ( http://research.microsoft.com/en-us/news/features/nagappan-100609.aspx)에서 논의됩니다.
이 연구와 그 결과는 테스트 중심 개발을 통한 품질 향상 실현이라는 제목의 논문에 발표되었습니다. IBM Almaden Research Center의 Nagappan과 연구 동료 E. Michael Maximilien의 4 개 산업 팀의 결과 및 경험; Thirumalesh Bhat, Microsoft의 주요 소프트웨어 개발 책임자; 노스 캐롤라이나 주립 대학의 Laurie Williams. 연구팀은 TDD 팀이 비 TDD 팀보다 결함 밀도 측면에서 60 ~ 90 % 더 나은 코드를 생성한다는 사실을 발견했습니다. 또한 TDD 팀이 프로젝트를 완료하는 데 15 ~ 35 % 더 오래 걸렸다는 사실도 발견했습니다.
Nagappan은“12 개월의 개발주기 동안 35 %는 또 다른 4 개월이며 이는 엄청납니다. 그러나 코드 품질이 훨씬 우수하기 때문에 릴리스 후 유지 관리 비용을 대폭 절감한다는 단점이 있습니다. 다시 말하지만, 이는 관리자가 내려야 할 결정입니다. 그러나 이제는 실제로 그러한 결정을 내리기 위해 데이터를 정량화했습니다.”
또한 Jason Gorman 은 올해 Software Craftsmanship 컨퍼런스에서 이러한 실험 을 제안 했습니다. 그는 TDD와 비 TDD 접근 방식을 사용하여 동일한 응용 프로그램을 만드는 실험을 시도하고 있으며 최근에 자신의 결과에 대해 블로그를 작성했습니다 .
3 회 이상 반복하여 TDD없이 카타를 완료하는 데 걸리는 평균 시간은 28m 40 초입니다. TDD의 평균 시간은 25 분 27 초입니다. TDD가 없으면 평균 5.7 패스를 합격했습니다 (수락 테스트 제공). TDD를 사용하여 평균적으로 1.3 패스를 만들었습니다.
물론 이것은 아기 실험이었습니다. 정확히 실험실 조건이 아닙니다. 그러나 나는 똑같은 몇 가지 흥미로운 것을 주목합니다.
더 많은 사람들이 실험 할 때이 실험의 전체 결과를 보는 것이 흥미로울 것입니다.
(좋은) 단위 테스트를 수행 할 때 유지 보수 시간이 몇 시간이나 단축되는지 보여주는 통계가 있습니까?
위의 백서에서 :
사례 연구의 결과는 4 가지 제품의 시험판 결함 밀도가 TDD 사례를 사용하지 않은 유사한 프로젝트에 비해 40 %에서 90 % 사이로 감소했음을 나타냅니다.