테스트주도개발

Download Report

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