Test-Driven Development(TDD)
매우 짧은 개발 사이클의 반복에 의존하는 소프트웨어 개발 프로세스.
개발자 -> 새로운 기능에 대한 자동화된 테스트 케이스 작성 -> 통과.
상황에 맞게 리팩토링 하는 과정을 거치면서 테스트가 코드 작성을 주도하는 개발방식.
- 개발자는 해당 기능의 요구사항과 명세를 분명하게 이해하고 있어야한다.
- 새로운 기능 추가 시 , 새로운 기능이 제대로 작동함과 동시에 기존의 기능들이 잘 작동하는지 테스트를 통해
확인할 수 있다.
- 뚱뚱해진 함수를 여러 함수로 나누는 과정에서 해당 기능이 오작동을 일으킬 수 있지만, 테스트 코드를 돌려봄으로써 안심 하고 계속해서 리팩토링을 진행 할 수 있다. -> 보다 객체지향적으로 확정 가능이 용이한 코드로 리팩토링된다.
※ 모든 테스트케이스 작성할 수 는 없다. 코드량도 늘어난다. -> 빠른 생산성이 요구되는 시점에서 TDD는 걸림돌이 될 수 있다.
댓글