TDD (테스트 주도 설계)
2013.07.19 14:00
'자바 개발자도 쉽고 즐겁게 배우는 테스팅이야기' 에서 발췌하였습니다.
------------------------------------------
TDD는 Test Driven Development 의 약자이다. 우리나라 말로 하면 테스트 주도 개발이라는 뜻이다. 지금까지의 개발 방식과 다르게, 테스트할 코드를 먼저 작성하고 코드를 개발하는 다소 특이한 개발 방법이다.
기존 개발 절차
디자인 -> 개발 -> 테스트
TDD의 개발 절차
테스트, 스크립트 개발 -> 개발 -> 리팩토링
TDD 를 실무 적용하지 못하는 이유는 시간적 여유입니다. 언제 테스트 스크립트를 만들고 개발하냐는 것이죠.
"단지 개발하면서 테스트 스크립트를 만들었고 게다가 리팩토링까지 수행했다면, TDD를 적용했다고 할 수 있는 것이다. 그리고 테스트 스크립트를 코드와 같이 작성하고 오류를 점검한다는 개념 자체가 중요한 것이다."
- 저도 이말에 공감갑니다. sangjjang
리팩토링은 마틴 파울러라는 유명한 아저씨가 쓴 「Refactoring: Improving the Design of Existing Code」라는 책에서 한 말에 의하면 'a disciplined technique for restructuring an existing body of code, altering its internal structure without changing its external behavior' 라는 작업을 의미한다. 우리말로 하면 '코드가 원래 하는 일이 변경되지 않으면서 내부적인 코드의 구조를 재구성하는 규율에 따른 기술'이란 뜻이다.
리팩토리의 대상 및 큰 카테고리
1. 메소드 정리
2. 객체나 클래스 사이의 이동
3. 데이터의 재구성
4. 조건문을 이해하기 쉽게 단순화
5. 메소드 호출 단순화
6. 상속관계 재구성
웹기반과 DB와 연계된 부분을 테스트하는 것의 어려운 부분에 대해서...
JUnit 에서 제공하는 기능만으로 힘든 부분을 HttpUnit 같은 프레임워크로 해결가능하다.
그리고 스프링 프레임워크(버전 2.5)의 경우 테스트를 용이하게 하는 많은 기능을 제공한다.
광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

