본문 바로가기

TIL

TDD의 장점

개발의 방향을 잃지 않게 유지해준다.

현재 자신이 어떤 기능을 개발하고, 어디까지 와 있는지를 항상 살펴볼 수 있고, 남은 단계와 목표를 잊지 않게 도와준다.

 

 

품질 높은 소프트웨어 모듈 보유

TDD를 통해 만들어진 애플리케이션은 필요한 만큼 테스트를 거친 '품질이 검증된 부품'을 갖게 되는 것이다. 

 

 

자동화된 단위 테스트 케이스를 갖게 된다.

TDD의 부산물로 나오는 자동화된 단위 테스트 케이스들은, 개발자가 필요한 시점에 언제든지 수행해볼 수 있다. 그리고 즉시 현재까지 작성된 시스템에 대한 이상 유무를 바로 확인할 수 있다. 또한 기능 추가와 수정에 수행해야 하는 회귀 테스트에 대한 부담도 줄어든다.

 

 

사용설명서 & 의사소통 수단

TDD로 작성된 각 모듈에는 테스트 케이스라고 하는 테스트 코드가 개발 종료와 함께 남게 된다. 이렇게 남은 코드는 개발의 사용 설명서이자 다른 개발자와 소통하는 커뮤니케이션 통로가 된다.

 

 

설계 개선

테스트 케이스 작성 시에는 클래스나 인터페이스, 접근 제어자, 일므 짓기, 인자 등에 이른 개발에 포함된 다양한 설계 요소들에 대해 미리부터 고민하게 된다. 테스트하기 어렵다고 생각되는 코드들은 객체 설계 원리 중 기본에 해당하는 원칙들이 잘못 적용됐거나 충분히 고려되지 않았을 가능성이 높다. TDD를 ㅈ린행해나가면서, 테스트가 가능하도록 설계 구조를 고민하다 보면 자연스럽게 디자인을 개선하게 된다.

 

 

정리

TDD는 개발자가 목표를 세워 개발을 진행해나가고, 설계에 대해 지속적으로 고민할 수 있게 도와준다. 또한 그 와중에 정형화된 형태의 테스트 케이스들을 작성함으로써 테스트 과정을 자동화하고, 테스트의 수행결과와 개발의 목표 달성 여부를 즉각적으로 알 수 있게 된다.

 

기타

클래스를 설계할 때 클래스의 상태가 아닌 동작(메소드)를 중심으로 설계할 것

- 불필요한 속성이 클래스 내에 섞여 들어가는 걸 막음

- 불필요하거나 자리를 잘못 잡은 속성이 클래스에 포함되면 그 결과 또 다른 불필요한 동작이 클래스에 추가되어 클래스의 정 체성이나 모듈성을 훼손

 

 

 

 

출처:

https://repo.yona.io/doortts/blog/issue/1

 

"TDD 실천법과 도구" 책 전체를 PDF 공개합니다.

2010년 6월에 출간되었던 "TDD 실천법과 도구" 책 전체를 PDF로 공개합니다. 책소개: http://naver.me/GaYZCDjD Updated --- - [1장 - 테스트주도개발 Test Driven Development](https://repo.yona.io/doortts/blog/issue/2) - 18.07.18 -

repo.yona.io