답변:
TDD 수행의 의미와 이점에 대한 연구가 있지만 그 결과는 모순됩니다. 기능을 변경하는 비용이 크게 줄어들 기 때문에 일부 프로젝트 (이것은 내 경험에 있습니다)는 TDD를 사용하여 버그 율과 소유 비용이 낮습니다. 어떤 사람들은 멈춰 멈춰 있습니다.
일부 연구 ( 여기서는 1 체크 슬라이드 n50 임)에 따르면 버그 수는 적용 범위에 따라 증가했습니다. 더 큰 적용 범위는 TDD를 의미하고 더 많은 수의 버그는 더 높은 소유 비용을 의미한다고 가정합니다.
내 관점에서 볼 때 자체적으로 어떤 메트릭이나 관행도 더 나은 품질이나 낮은 소유 비용과 관련 될 수 없습니다. 상관 관계를 유발할 수있는 여러 요인이 있습니다. 그리고 이러한 요소는 팀과 프로젝트간에 변경됩니다.
TDD를 시작하고 100 줄 테스트 방법을 작성하는 팀에 대한 이야기를 모두 들었다고 생각합니다.이 테스트는 비용이 많이 들기 때문에 소유 비용이 증가합니다.
저의 실용적인 규칙은 배려 하고 배우고 싶어하는 사람들이 자신을 지원하는 환경 에서 일하고 그들의 아이디어 가 더 나은 품질과 소유 비용을 갖는 것입니다.
구체적인 연구는 없지만 개인 경험과 다른 개발자의 경험을 통해 중대형 프로젝트에 올바르게 적용하면 TDD가 출시 시간을 단축하고 버그 및 결함을 줄이며 코드 품질을 향상시킬 수 있음을 알고 있습니다. .
그것들은은 총알이 아니라고 말하면서 TDD없이 좋은 코드를 작성할 수 있습니까? 예, TDD를 사용하여 잘못된 코드를 작성할 수 있습니까? 또한 프로젝트에 따라 TDD는 코드에 대한 소유 비용을 크게 증가시킬 수 있습니다. 좋은 예는 NASA입니다. 코드 당 비용은 크지 만 소유 비용에 초점이없고 결함이 없습니다.
올바르게 적용하면 TDD가 시작 비용과 코드 기반을 증가 시키지만 회귀 테스트, 초기 버그 감지 및 더 나은 코드 설계의 장기적인 이점을 얻음으로써 결함 및 테스트 비용과 유지 보수 시간을 줄여 전체적인 비용을 줄입니다. 소유권.