TDD: Test Driven Development 첫번째 이야기

29
TDD: Test Driven Development 실실실실 실실실 실실실실 실실실실 . TCS/InnoQuartz Team 실실실 ([email protected])

Transcript of TDD: Test Driven Development 첫번째 이야기

Page 1: TDD: Test Driven Development 첫번째 이야기

TDD: Test Driven Development실패하는 테스트 코드부터 작성한다 .

TCS/InnoQuartz Team김지헌 ([email protected])

Page 2: TDD: Test Driven Development 첫번째 이야기

목차테스트 이야기TDD 란 무엇인가 ?JUnit 소개TDD 를 잘 하려면 ??TDD 흉내내기

Page 3: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

Page 4: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

애플리케이션은 계속 변하고 복잡해져간다 .

Page 5: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

단위 테스트는 코드가 바뀌지 않는다면 매번 실행할 때마다 테스트 결과가 동일하다 .

Page 6: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

만들어진 테스트 코드를 통해서 변경 사항을 확인하고 빠르게 조치할 수 있다 .

Page 7: TDD: Test Driven Development 첫번째 이야기

TDD 란 무엇인가 ?테스트 주도 개발Test Driven Development

Page 8: TDD: Test Driven Development 첫번째 이야기

TDD 란 무엇인가 ?

TDD != 단위 테스트

Page 9: TDD: Test Driven Development 첫번째 이야기

TDD 란 무엇인가 ?

만들고자 하는 기능의 내용을 담고 있으면서 만들어진 코드를 검증해줄 수 있도록 테스트 코드를 먼저 만들고 !

Page 10: TDD: Test Driven Development 첫번째 이야기

TDD 란 무엇인가 ?

테스트를 성공하게 해주는 코드를 작성하는 방식의 개발 방법

Page 11: TDD: Test Driven Development 첫번째 이야기

TDD 란 무엇인가 ?

최대한 빨리 실패하기 !!

Page 12: TDD: Test Driven Development 첫번째 이야기

TDD 의 장점개발의 방향을 잃지 않게 유지해준다 .

클래스 이름은 Account기능은 세 가지잔고 balance 조회입금 deposit출금 withdraw

Page 13: TDD: Test Driven Development 첫번째 이야기

TDD 의 장점

품질 좋은 소프트웨어 모듈 보유자동화된 단위 테스트 케이스를 갖게 된다 .

사용 설명서 & 의사소통의 수단설계 개선보다 자주 성공한다 .

테스트를 거친 ' 품질이 검증된 부품 ' 을 갖게 됨필요한 시점에 언제든지 수행하고 확인 가능테스트 코드 남음 ( 문서보다 코드 !)

다양한 설계 요소 고민 ( 이름 , 인자 , 접근 제어자 )!

테스트 주기를 짧게 하여 녹색 막대를 보며 ,

성취감을 !!

Page 14: TDD: Test Driven Development 첫번째 이야기

TDD 의 최종목적 :' 잘 동작하는 깔끔한 코드 ' 작성

Page 15: TDD: Test Driven Development 첫번째 이야기

테스트 유의사항l 테스트 케이스는 이름이 중요하다 .l 코드형식 보다는 테스트를 설명하는 형식으로l 한글로 작성해도 자바니까 OK~ 이왕이면 UTF-8  인코딩l 메소드명을 통해서 테스트 의도 확인

Page 16: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

더 이상 동작하지 않는 테스트 케이스는 제거한다 .

Page 17: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

TDD 는 자동화된 테스트를 만드는 것이 최종 목표가 아니다 .

Page 18: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

모든 상황에 대한 테스트 케이스를만들 필요는 없다 .

Page 19: TDD: Test Driven Development 첫번째 이야기

테스트 이야기

여러 개의 실패하는 테스트 케이스를 한번에 만들지 않는다 .

Page 20: TDD: Test Driven Development 첫번째 이야기

JUnit: 테스트 자동화 프레임워크

Page 21: TDD: Test Driven Development 첫번째 이야기

JUnit 개념

●테스트 픽스처 Test fixture

●테스트 케이스 Test case 와 테스트 메소드 Test

method

●JUnit3 vs JUnit4

Page 22: TDD: Test Driven Development 첫번째 이야기

JUnit 을 사용한 클래스 기본구조@Before: 테스트에 필요한 변수나 환경설정@Test: 실제 테스트가 진행됨// Given: 테스트와 관련된 조건식// When: 테스트 실행 ( 행위 , behavior)// Then: 테스트 실행결과 확인 @After: 테스트에 사용된 뒷정리

Page 23: TDD: Test Driven Development 첫번째 이야기

TDD 를 잘하려면 ?

Page 24: TDD: Test Driven Development 첫번째 이야기

TDD 를 잘 하려면 ??

IDE(tool) 를 잘 써야 한다 .

Page 25: TDD: Test Driven Development 첫번째 이야기

TDD 를 잘 하려면 ??

많이 연습해야 한다 .

Page 26: TDD: Test Driven Development 첫번째 이야기

TDD 를 잘 하려면 ??

테스트하기 편한 환경을 조성한다 .

Page 27: TDD: Test Driven Development 첫번째 이야기

TDD 를 잘 하려면 ??

잘 쪼개야 한다 .

Page 28: TDD: Test Driven Development 첫번째 이야기

TDD 를 잘 하려면 ??

아래에서 위로 (Bottom-up) 보다는 위에서 아래로 (Top-down) 방식이 좋다 .

Page 29: TDD: Test Driven Development 첫번째 이야기

감사합니다 :)궁금하신 사항이 있으시다면 ,

[email protected]

http://innotree.slack.com