(Test Driven Development) 테스트 주도 개발 (Test Driven Development) 2011. 10. 17. 작성자 : 한 애 연 작성부서 : IT연구소 전자메일 : ayhan@comin.com 1
목차 테스트 주도 개발의 필요성 테스트 주도 개발 테스트 주도 개발 도구 - JUnit JUnit 사용법 Eclipse와 JUnit을 이용한 TDD 실습 테스트 주도 개발의 목표 자료출처
테스트는 문제가 없다는 것을 증명하는 것이 아니라 문제가 있다는 것을 증명하는 프로세스이다. 테스트 주도 개발의 필요성 개발자의 테스트 활동이 중요한 이유 초기 단계에서 발견된 결함은 수정이 용이하다. 개발 후기 단계에서 발견된 결함들을 수정하기에는 비용과 시간이 많이 소비되고, 프로젝트가 실패될 확률이 높아진다. 개발 단계에서의 효율적인 테스팅은 전체 프로젝트 시간을 감소시킨다. 개발 테스트 . . . 테스트는 문제가 없다는 것을 증명하는 것이 아니라 문제가 있다는 것을 증명하는 프로세스이다.
테스트 주도 개발 자네, 현재 진행중인 프로젝트 얼마나 진행되었지? 김PM 현재 진행중인 테스트 10개 중 7개가 마무리되었고, 지금 같은 진행속도라면 일주일 내로 모든 것이 끝납니다. 글쎄요…확실하진 않지만 한 1개월쯤? 아니 1개월에 며칠 더.. 지금 해결 못한 문제들이 많은데.. 그게 다 해결되려면..한… 음..그것만 해결되면 말씀 드리겠습니다.
<Test Driven Development의 흐름> 테스트 주도 개발 Simplicity Refactoring 코드의 중복을 제거 N번 Simple code Bad smell? Need Test 실패하는 테스트 코드 작성 테스트를 통과하는 코드 작성 Code 통과 <Test Driven Development의 흐름>
테스트 주도 개발 Test계산클래스 계산클래스 test더하기메소드 test빼기메소드 test나누기메소드 test곱하기메소드 +a… 계산클래스 더하기메소드 빼기메소드 나누기메소드 곱하기메소드
테스트 주도 개발 도구 - JUnit xUnit - 각 언어별로 다양한 단위 테스트 도구가 존재 (JUnit, NUnit, CPPUnit, PyUnit, VBUnit, PearlUnit 등) JUnit 1997년 에릭 감마와 켄트 백이 만든 자바를 위한 단위 테스트 프레임워크
JUnit 사용법 Eclipse의 plugins 폴더에 JUnit을 다운로드한다. (http://www.junit.org/)
JUnit 사용법 Eclipse의 Windows>Preferences>Java>Installed JREs 메뉴에서 사용하는 JRE를 선택하고 [Edit]를 클릭한다.
JUnit 사용법 [Add External JARs]를 클릭하여 JUnit 사이트에서 다운로드한 jar파일을 선택한다.
JUnit 사용법 Eclipse의 Windows>Preferences>Java>JUnit에서 JUnit의 사용을 체크한 후 저장한다.
JUnit 사용법 Eclipse의 Windows>Show View>Other... 에서 JUnit을 클릭한다.
JUnit 사용법 클래스에서 마우스 오른쪽 버튼을 클릭하고 New>JUnit Test Case를 클릭하면 해당 클래스의 테스트 케이스를 생성할 수 있다. 실행은 Run>Run As>JUnit Test (Alt+Shift+X,T)로 한다.
Eclipse와 JUnit을 이용한 TDD 실습
“Clean code that works!” 테스트 주도 개발의 목표 TDD의 목표 작동하는 깨끗한 코드(론 제프리즈 : 익스트림 프로그래밍의 아버지) -중복이 없고 누가 봐도 명확한 코드 “Clean code that works!”
자료출처 한국 eXtreme Programming 사용자 모임 http://xper.org/ TDD 오픈 소스 스터디 http://www.javajigi.net/display/OSS/TDD 월간 microSoftware 2007년 05월호 Cover story 2 기민한 테스트 코드의 결정판 「테스트 주도 개발 전략」 「테스트 주도 개발(Test-Driven Development by Example)」 - Kent Beck 「Professional Enterprise.NET」 - Jon Arking, Scott Millett