2019년 1월 8일
TDD (Test Driven Development)
I. 테스트 기준 개발 방법, TDD
가. TDD(Test Driven Development)의 개념
- 테스트 설계를 선수행하여, 테스트 통과 위해 프로그램 코드 리팩토링 과정 반복 개발방법론
나. TDD의 특징
특징 | 설명 |
---|---|
Design of Testablility | – 소스코드 의존성 감소, 독립테스트 |
테스트 커버리지 확보 | – 단위 테스트 커버리지, 디버깅용이 |
견고성 보장 | – 발생 가능 오류 조기 탐지 가능 |
Clean Code | – 동작하는 코드를 지향 |
II. TDD의 진행절차 및 사용 패턴
가. TDD의 진행 절차
- TDD는 테스트 코드 작성, 테스트 실패 확인, 구현 코드 작성, 테스트 통과 확인, 리팩토링 5단계의 짧은 주기로 반복
단계 | 목표 | 설명 |
---|---|---|
테스트 작성 | 테스트 생성 | – 동작 요구 기능 기반 I/F 개발 |
코드 작성 | 테스트 통과 | – 테스트 실행 코드 빠른 개발 (임시코드/자료삽입, 선 구현) |
리팩토링 | Clean Code | – 중복코드/임시코드 제거 – 모듈화, 디자인 패턴 적용 |
체크인 | 피드백 | – 모든 테스트가 동작 – 요구기능 고도화, 테스트 발전 |
나. TDD 사용 패턴
단계 | 역할 | 설명 |
---|---|---|
빨간막대 | 내부 검증 | – 미실행 내용 검증, 작은 테스트 |
초록막대 | 코드 동작 | – 신속 구현, 테스트 통과 기준 |
테스팅 | 적합성 검증 | – 테스트-모듈 간 적합성 검증 |
xUnit | 프레임워크 | – 테스트 프레임워크 활용 방법 |
디자인패턴 | Best Practice | – 유사 도메인 문제 해결 |
- TDD는 Clean Code 지향, 코드의 견고성을 보장하지만 단계적 적용이 필요하며, 완벽한 임시 코드 제거가 필요
III. 효과적 TDD 적용 방안/고려사항
적용 방안 | 고려사항 |
---|---|
① 단위 모듈, 일부 선적용 ② 적합성 판단 단계적 확대 ③ 전체 개발팀 유기적 수행 | – 임시 모듈 완벽 처리 필요 – 코드 추적성 확보 방안 – Pair-Programming 고효율화 |