• 사용자 피드백: 사용자가 직접 코드를 사용한 후 경험한 버그나 불만을 제보

    • 확실하지만 비용과 리스크가 큼
  • Quality Assurance: 전문 인적 자원에 의한 인수 테스트

    • 사용자 피드백과 유사한 피드백을 받을 수 있음
  • 프로그래머 테스트: 프로그래머가 직접 피드백 장치를 준비

    • 코딩 비용이 더 많이 듬
    • 실행 비용은 줄어들음
    • 코드가 프로그래머의 손을 벗어나기 전에 피드백을 얻을 수 있음
  • 도구 피드백: 컴파일 오류, 정적 검사 등 프로그래머가 사용하는 도구가 제공하는 피드백

  • 오버엔지니어링

    • 코드 가독성/구조 이런 것들을 개선하는데 더 많은 자원을 사용하게 되는 것

    → TDD가 오버엔지니어링이라는 느낌을 받았을때 다음 단계로 넘어가도 될지 체크할 수 있는 도구가 될 수 있음

  • TDD의 핵심은 피드백

    • 절차가 중요한게 아니라 짧은 주기로 지속되는 피드백을 받는게 중요