테스트 주도 개발 (Test Driven Development)

16
테테테 테테 테테 테테테 테테 테테 (Test Driven Development) (Test Driven Development) 1 작작작 : 작 작 작 작작작작 : IT 작작작 작작작작 : [email protected] 2011. 10. 17.

description

테스트 주도 개발 (Test Driven Development). 2011. 10. 17. 작성자 : 한 애 연 작성부서 : IT 연구소 전자메일 : [email protected]. 1. 목차. 테스트 주도 개발의 필요성 테스트 주도 개발 테스트 주도 개발 도구 - JUnit JUnit 사용법 Eclipse 와 JUnit 을 이용한 TDD 실습 테스트 주도 개발의 목표 자료출처. 테스트 주도 개발의 필요성. 개발자의 테스트 활동이 중요한 이유 - PowerPoint PPT Presentation

Transcript of 테스트 주도 개발 (Test Driven Development)

Page 1: 테스트 주도 개발 (Test Driven Development)

테스트 주도 개발테스트 주도 개발(Test Driven Development)(Test Driven Development)

1

작성자 : 한 애 연작성부서 : IT 연구소전자메일 : [email protected]

2011. 10. 17.

Page 2: 테스트 주도 개발 (Test Driven Development)

2 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 목차

테스트 주도 개발의 필요성

테스트 주도 개발

테스트 주도 개발 도구 - JUnit

JUnit 사용법

Eclipse 와 JUnit 을 이용한 TDD 실습

테스트 주도 개발의 목표

자료출처

Page 3: 테스트 주도 개발 (Test Driven Development)

3 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 테스트 주도 개발의 필요성

개발 테스트 개발 테스트 개발 테스트

. . .

테스트는 문제가 없다는 것을 증명하는 것이 아니라 문제가 있다는 것을 증명하는 프로세스이다 .

개발자의 테스트 활동이 중요한 이유 초기 단계에서 발견된 결함은 수정이 용이하다 .

개발 후기 단계에서 발견된 결함들을 수정하기에는 비용과 시간이 많이 소비되고 , 프로젝트가 실패될 확률이 높아진다 .

개발 단계에서의 효율적인 테스팅은 전체 프로젝트 시간을 감소시킨다 .

Page 4: 테스트 주도 개발 (Test Driven Development)

4 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 테스트 주도 개발

글쎄요…확실하진 않지만 한 1 개월쯤 ?

아니 1 개월에 며칠 더 ..

지금 해결 못한 문제들이 많은데 ..

그게 다 해결되려면 .. 한…

음 .. 그것만 해결되면 말씀 드리겠습니다 .

현재 진행중인 테스트 10 개 중

7 개가 마무리되었고 ,

지금 같은 진행속도라면

일주일 내로 모든 것이 끝납니다 .

자네 ,

현재 진행중인 프로젝트

얼마나 진행되었지 ?

김 PM

Page 5: 테스트 주도 개발 (Test Driven Development)

5 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 테스트 주도 개발

Need

Simple code Bad smell?

통과

<Test Driven Development 의 흐름 >

Test

Refactoring

Code

N 번

실패하는

테스트 코드

작성

테스트를

통과하는

코드 작성

코드의

중복을

제거

Page 6: 테스트 주도 개발 (Test Driven Development)

6 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 테스트 주도 개발

Test 계산클래스

test 더하기메소드

test 빼기메소드

test 나누기메소드

test 곱하기메소드

+a…

계산클래스

더하기메소드

빼기메소드

나누기메소드

곱하기메소드

Page 7: 테스트 주도 개발 (Test Driven Development)

7 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 테스트 주도 개발 도구 - JUnit

xUnit - 각 언어별로 다양한 단위 테스트 도구가 존재

(JUnit, NUnit, CPPUnit, PyUnit, VBUnit, PearlUnit 등 )

JUnit

1997 년 에릭 감마와 켄트 백이 만든

자바를 위한 단위 테스트 프레임워크

Page 8: 테스트 주도 개발 (Test Driven Development)

8 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 JUnit 사용법

Eclipse 의 plugins 폴더에 JUnit 을 다운로드한다 . (http://www.junit.org/)

Page 9: 테스트 주도 개발 (Test Driven Development)

9 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 JUnit 사용법

Eclipse 의 Windows>Preferences>Java>Installed JREs 메뉴에서 사용하는 JRE 를 선택하고

[Edit] 를 클릭한다 .

Page 10: 테스트 주도 개발 (Test Driven Development)

10 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 JUnit 사용법

[Add External JARs] 를 클릭하여 JUnit 사이트에서 다운로드한 jar 파일을 선택한다 .

Page 11: 테스트 주도 개발 (Test Driven Development)

11 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 JUnit 사용법

Eclipse 의 Windows>Preferences>Java>JUnit 에서 JUnit 의 사용을 체크한 후 저장한다 .

Page 12: 테스트 주도 개발 (Test Driven Development)

12 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 JUnit 사용법

Eclipse 의 Windows>Show View>Other... 에서 JUnit 을 클릭한다 .

Page 13: 테스트 주도 개발 (Test Driven Development)

13 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 JUnit 사용법

클래스에서 마우스 오른쪽 버튼을 클릭하고 New>JUnit Test Case 를 클릭하면

해당 클래스의 테스트 케이스를 생성할 수 있다 .

실행은 Run>Run As>JUnit Test (Alt+Shift+X,T) 로 한다 .

Page 14: 테스트 주도 개발 (Test Driven Development)

14 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민

Eclipse 와 JUnit 을 이용한 TDD 실습

Page 15: 테스트 주도 개발 (Test Driven Development)

15 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 테스트 주도 개발의 목표

“Clean code that works!”TDD 의 목표

Page 16: 테스트 주도 개발 (Test Driven Development)

16 광주광역시 남구 진월동 314-7 전화 /팩스 : 062-653-2879 / 062-676-4869 홈페이지 : http://www.comin.com

정직한 기업 , 공부하는 사원 , 발전하는 가민 자료출처

•한국 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