나중에 테스트할수록 테스트 작성 비용이 더 많이 듭니다.
버그 수명이 길수록 수정 비용이 많이 듭니다.
반품 감소 법에 따라 버그가 없는지 망각으로 시험 할 수 있습니다.
부처는 중간 길의 지혜를 가르쳤다. 시험은 좋습니다. 좋은 것이 너무 많습니다. 열쇠는 균형이 맞지 않을 때 알 수 있습니다.
테스트없이 작성하는 모든 코드 줄은 코드를 작성하기 전에 테스트를 작성했을 때보 다 나중에 테스트를 추가하는 데 훨씬 많은 비용이 듭니다.
테스트가없는 모든 코드 줄은 디버깅 또는 재 작성이 훨씬 더 어려워집니다.
작성하는 모든 테스트에는 시간이 걸립니다.
모든 버그는 수정하는 데 시간이 걸립니다.
충실한 사람은 먼저 실패한 테스트를 작성하지 않고 한 줄의 코드를 작성하지 말라고 지시합니다. 테스트를 통해 예상 한 동작을 얻을 수 있습니다. 테스트에서 동작이 동일하다는 것이 입증되므로 나머지 시스템에 영향을 줄 염려없이 코드를 빠르게 변경할 수 있습니다.
테스트에 기능이 추가되지 않는다는 사실과 비교하여 모든 것을 평가해야합니다. 생산 코드는 기능을 추가합니다. 그리고 기능은 청구서를 지불하는 것입니다.
실용적으로 말하면, 나는 도망 갈 수있는 모든 테스트를 추가합니다. 나는 시험 시청에 찬성하는 의견을 무시합니다. 내가 생각하는 것을하기 위해 코드를 신뢰조차하지 않습니다. 나는 테스트를 믿습니다. 그러나 나는 가끔 우박 Mary를 던지고 운이 좋은 것으로 알려져 있습니다.
그러나 많은 성공적인 코더는 TDD를 수행하지 않습니다. 그렇다고 테스트하지 않는다는 의미는 아닙니다. 그들은 모든 코드 라인에 대해 자동 테스트가 필요하다고 강박 적으로 주장하지 않습니다. 밥 삼촌조차도 자신의 UI를 테스트하지 않는다는 것을 인정합니다. 또한 모든 로직을 UI 밖으로 옮기라고 주장합니다.
축구 비유 (미식 축구)로서 TDD는 좋은 지상 게임입니다. 코드 더미를 작성하고 그것이 작동하기를 희망하는 수동 테스트는 지나가는 게임입니다. 어느 쪽이든 능숙 할 수 있습니다. 둘 다 할 수 없다면 당신의 경력은 플레이 오프를 만들지 않을 것입니다. 언제 각각을 고를 지 배울 때까지 슈퍼 볼을 만들지 않습니다. 그러나 당신이 특정한 방향으로 조금씩 움직여야한다면 : 공무원의 전화는 내가 지나갈 때 더 자주 저를 거스 릅니다.
TDD를 시험해보고 싶다면 직장에서하기 전에 연습하는 것이 좋습니다. TDD는 반쯤, 반은 반으로, 반은 엉덩이를 존중하는 것이 큰 이유입니다. 한 잔의 물을 다른 잔에 붓는 것과 같습니다. 커밋하지 않고 신속하고 완전하게 수행하면 테이블 전체에 물이 뚝뚝 떨어집니다.