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 고효율화

 

콘텐츠 사용 시 출처 표기 부탁 드리고, 댓글은 큰 힘이 됩니다^^