테스트가 개발을 이끌어 나간다.
TDD란 테스트를 먼저 만들고, 테스트를 통과하기 위한 로직을 작성하는 것입니다. 즉, 만드는 과정에서 테스트를 먼저 작성하고, 그걸 통과하는 코드를 만들고를 반복하면서 제대로 동작하는지에 대한 피드백을 적극적으로 받는 것입니다.
보통은 SW개발을 진행할 때 코딩이 끝난 후에 테스트를 합니다. TDD는 이러한 순서를 바꿔서 소프트웨어 개발 과정을 진행하는 것인데, 이를 적용한 사례는 아래와 같습니다.
예를 들어 생년월일(input)을 입력받으면, 현재 나이(output)를 출력하는 프로그램을 개발한다고 가정해 보겠습니다.
결정과 피드백 사이의 갭에 대한 인식, 더 나아가 결정과 피드백 사이의 갭을 조절하기 위한 테크닉이라고도 할 수 있습니다.
TDD는 프로그래밍 기법이나 기술적인 느낌보다는 심리적인 것으로 볼 수 있습니다.
이 둘(결정과 피드백) 사이에 갭이 생기게 됩니다.
갭이 커질수록 문제가 되며, 개발자 본인이 그 갭을 모를수도 있습니다. 이렇게 되면 더 큰문제가 발생합니다.