TDD(Test-Driven Development)란 반복 테스트를 이용한 소프트웨어 개발 방법론
으로서 테스트 코드를 먼저 작성한 후 테스트를 통과하는 코드를 작성하는 과정
을 반복하는 소프트웨어 방식
에자일 방법론 중 하나인 익스트림 프로그래밍의 Test-First 개념에 기반을 둔, 개발 주기가 짧은 개발 프로세스로 단순한 설계를 중시
Agile
: 신속한 개발 프로세스를 통해 수시로 변하는 고객의 요구사항에 대응해서 제공하는 서비스의 가치 극대화
출처: https://teamdable.github.io/techblog/TDD-and-wallaby
일반적인 개발주기
TDD 개발 주기
요구사항 분석 → 자세한 설계 → 테스트 작성 → 코드 작성 → 리팩토링 이런 형태로 이루어짐
디버깅 시간 단축
: 테스트 코드를 기반으로 개발이 진행되기에 문제 발생 시 어디에서 잘못됐는지 확인하기 쉬움
생산성 향상
: 테스트 코드를 통해 지속적으로 애플리케이션 코드의 불안정성에 대해 피드백을 받기에 리팩토링 횟수가 줄고 생산성이 높아짐
재설계 시간 단축
: 작성돼 있는 테스트 코드를 기반으로 코드를 작성하기에 재설계가 필요한 경우 테스트 코드를 조정하는 것으로 재설계 시간 단축 가능
기능 추가와 같은 추가 구현 용이
: 테스트 코드를 통해 의도한 기능을 미리 설계하고 코드를 작성하기에 목적에 맞는 코드 작성 용이