테스트 주도 개발

Posted by 엘키의 주절 주절 on January 12, 2008

사실 저는 테스트를 별로 좋아하지 않습니다.

테스터 분들이 보시면 기분나빠하실지도 모르지만, 개발보다 지루한 작업이기 때문이죠.

하지만 테스트는 언젠가 해야하고, 프로그램의 품질에 지대한 영향을 끼칩니다.

프로그래머는 모든 상황을 생각할 수 없습니다. 현재의 코드가 미칠 여파를 모두 생각해내는건 사실상 불가능하죠.

프로그래머의 논리적 빈틈은 테스트를 통해서 해결해야합니다.

그런 코드의 빈틈을 테스터에게만 맡길 수 있을까요?

그 프로그램을 작성한 사람보다 빈틈을 더 잘 찾을 수 있을까요?

프로그래머가 하는 테스트가 꼼꼼하다면 프로그램이 공개 되고 나서 발생할 문제를 상당수 방지 하거나 해결 할 수 있습니다.

테스트 주도 개발은 기본적으로 리팩토링을 기반으로 이루어집니다.

테스트를 통해 개발을 하며, 리팩토링을 통해 같은 기능을 하지만 좀 더 좋은 코드를 자연스레 갖춰나갈 수 있게 됩니다.

개발자 선에서 이루어지는 테스트 도중 더 좋은 아이디어를 떠올릴 수도 있고, 빈틈 하나 하나를 채워가며 높이는 완성도는 프로그램의 가치를 높여줄 것이라고 확신합니다.