Transcript 테스트주도개발
테스트 주도 개발
(Test Driven Development)
2011. 10. 17.
작성자 : 한 애 연
작성부서 : IT연구소
전자메일 : [email protected]
1
정직한 기업, 공부하는 사원, 발전하는 가민
목차
테스트 주도 개발의 필요성
테스트 주도 개발
테스트 주도 개발 도구 - JUnit
JUnit 사용법
Eclipse와 JUnit을 이용한 TDD 실습
테스트 주도 개발의 목표
자료출처
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
2
정직한 기업, 공부하는 사원, 발전하는 가민
테스트 주도 개발의 필요성
개발자의 테스트 활동이 중요한 이유
초기 단계에서 발견된 결함은 수정이 용이하다.
개발 후기 단계에서 발견된 결함들을 수정하기에는 비용과 시간이 많이 소비되고,
프로젝트가 실패될 확률이 높아진다.
개발 단계에서의 효율적인 테스팅은 전체 프로젝트 시간을 감소시킨다.
개발
테스트
개발
테스트
...
개발
테스트
테스트는 문제가 없다는 것을 증명하는 것이 아니라 문제가 있다는 것을 증명하는 프로세스이다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
3
정직한 기업, 공부하는 사원, 발전하는 가민
테스트 주도 개발
자네,
현재 진행중인 프로젝트
얼마나 진행되었지?
김PM
현재 진행중인 테스트 10개 중
7개가 마무리되었고,
글쎄요…확실하진 않지만 한 1개월쯤?
아니 1개월에 며칠 더..
지금 같은 진행속도라면
일주일 내로 모든 것이 끝납니다.
지금 해결 못한 문제들이 많은데..
그게 다 해결되려면..한…
음..그것만 해결되면 말씀 드리겠습니다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
4
정직한 기업, 공부하는 사원, 발전하는 가민
테스트 주도 개발
코드의
중복을
Refactoring
제거
Simple code
Bad smell?
N번
실패하는
Need
테스트
Test코드
작성
테스트를
통과
통과하는
Code
코드 작성
Simplicity
<Test Driven Development의 흐름>
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
5
정직한 기업, 공부하는 사원, 발전하는 가민
테스트 주도 개발
Test계산클래스
계산클래스
test더하기메소드
더하기메소드
test빼기메소드
빼기메소드
test나누기메소드
나누기메소드
test곱하기메소드
곱하기메소드
+a…
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
6
정직한 기업, 공부하는 사원, 발전하는 가민
테스트 주도 개발 도구 - JUnit
xUnit - 각 언어별로 다양한 단위 테스트 도구가 존재
(JUnit, NUnit, CPPUnit, PyUnit, VBUnit, PearlUnit 등)
JUnit
1997년 에릭 감마와 켄트 백이 만든
자바를 위한 단위 테스트 프레임워크
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
7
정직한 기업, 공부하는 사원, 발전하는 가민
JUnit 사용법
Eclipse의 plugins 폴더에 JUnit을 다운로드한다. (http://www.junit.org/)
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
8
정직한 기업, 공부하는 사원, 발전하는 가민
JUnit 사용법
Eclipse의 Windows>Preferences>Java>Installed JREs 메뉴에서 사용하는 JRE를 선택하고
[Edit]를 클릭한다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
9
정직한 기업, 공부하는 사원, 발전하는 가민
JUnit 사용법
[Add External JARs]를 클릭하여 JUnit 사이트에서 다운로드한 jar파일을 선택한다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
10
정직한 기업, 공부하는 사원, 발전하는 가민
JUnit 사용법
Eclipse의 Windows>Preferences>Java>JUnit에서 JUnit의 사용을 체크한 후 저장한다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
11
정직한 기업, 공부하는 사원, 발전하는 가민
JUnit 사용법
Eclipse의 Windows>Show View>Other... 에서 JUnit을 클릭한다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
12
정직한 기업, 공부하는 사원, 발전하는 가민
JUnit 사용법
클래스에서 마우스 오른쪽 버튼을 클릭하고 New>JUnit Test Case를 클릭하면
해당 클래스의 테스트 케이스를 생성할 수 있다.
실행은 Run>Run As>JUnit Test (Alt+Shift+X,T)로 한다.
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
13
정직한 기업, 공부하는 사원, 발전하는 가민
Eclipse와 JUnit을 이용한 TDD 실습
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
14
정직한 기업, 공부하는 사원, 발전하는 가민
TDD의 목표
테스트 주도 개발의 목표
“Clean code that works!”
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
15
정직한 기업, 공부하는 사원, 발전하는 가민
자료출처
•한국 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
광주광역시 남구 진월동 314-7 전화/팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com
16