Test Driven Development
1. TDD?
프로덕션 코드보다 테스트 코드를 먼저 작성하여, 테스트가 구현 과정을 주도하도록 하는 방법론
순서1 : RED
실패하는 테스트 작성
순서2 : GREEN
테스트 통과 최소한의 코딩
구현 코드의 품질은 중요하지 않다.
순서3 : REFACTOR
구현 코드 개선
테스트 통과 유지
2. TDD 의 핵심 가치 (빠른 피드백)
선 기능 구현, 후 테스트 작성
테스트 자체의 누락 가능성
특정 테스트 케이스만 검증할 가능성
해피 케이스
개발 과정에서 인간의 사고가 편협하게 굳어지기 때문에, 예외 케이스를 검증하지 못할 수 있다. (불확실성)
잘못된 구현을 다소 늦게 발견할 가능성
선 테스트 작성, 후 기능 구현
복잡도가 낮은, 테스트 가능한 코드로 구현할 수 있게 한다.
쉽게 발견하기 어려운 엣지 케이스를 놓치치 않게 해준다.
구현에 대한 빠른 피드백을 받을 수 있다.
과감한 리팩토링이 가능해진다.
테스트라는 안전 장치가 있기 때문에!
3. TDD : 관점의 변화

클라이언트 관점에서의 피드백을 주는 Test Driven
4. 키워드 정리
TDD
레드 - 그린 - 리팩토링
애자일(Agile) 방법론 vs 폭포수(Water pool) 방법론
익스트림 프로그래밍(XP, eXtreame Programming)
익스트림 프로그래밍의 방법론으로 TDD 제시 - 켄트 백
스크럼(Scrum), 칸반(Kanban)
Last updated