TDD는 Test Driven Develop의 약자로, 테스트 주도 개발을 의미한다.
기능과 서비스를 개발한 후에 테스트 코드를 작성하고 테스트하는 것이 아닌 테스트를 먼저 작성하고 테스트를 통과하는 기능과 서비스를 개발하는 것이다. 더욱 안정성있고 견고한 개발을 진행하기 위해 테스트의 중요성은 날이 갈수록 더 커져만 간다. 이 글에서는 TDD의 진행 순서와 방식, 그리고 TDD의 장단점에 대해서 다뤄보고자 한다.
좋은 테스트의 특징은 First라는 규칙을 따른다.
사실 테스트 주도 개발 방식이 빛을 보는 것은 개인적으로 생각하기에 개발 초기보다 어느 정보 개발이 진행된 시기가 아닐까 싶다. 개발 초기에는 손보거나 수정할 코드가 그리 많지는 않다. 때문에 개발 초기에는 빠른 개발이 가능한데, 테스트를 먼저 작성하고 기능 개발을 하게 되면, 테스트 코드를 작성하는 시간, 테스트를 진행하는 시간이 추가된다. 사람에 따라서는 테스트를 빨간 불에서 점점 초록불로 클리어해가는 과정을 즐기며 할 수도 있다.
개발이 어느 정도 진행된 중 ~ 후반부에는 테스트가 빛을 확실히 보는 때 인것 같다. 사실 개발 초기에나 후기에나 테스트를 작성해야하는 것은 같다. TDD방식대로 개발을 하면 개발 진행 도중에도 코드의 수정이 있을 시, 테스트를 통해 코드의 안정성을 수시로 확보할 수 있다. 또한 TDD는 테스트를 통과하기 위한 최소한의 코드로 개발을 진행하기 때문에 코드의 가독성이나 효율측면에서도 도움을 줄 수 있다. 개발 초기에는 테스트 코드를 작성하는 것이 지루하거나 귀찮게 느껴질 수 도 있지만, 결과적으로는 개발의 시간을 더 단축시켜줄 수 있는 것이다.