Upload
ji-heon-kim
View
1.033
Download
10
Embed Size (px)
Citation preview
TDD: Test Driven Development실패하는 테스트 코드부터 작성한다 .
TCS/InnoQuartz Team김지헌 ([email protected])
목차테스트 이야기TDD 란 무엇인가 ?JUnit 소개TDD 를 잘 하려면 ??TDD 흉내내기
테스트 이야기
테스트 이야기
애플리케이션은 계속 변하고 복잡해져간다 .
테스트 이야기
단위 테스트는 코드가 바뀌지 않는다면 매번 실행할 때마다 테스트 결과가 동일하다 .
테스트 이야기
만들어진 테스트 코드를 통해서 변경 사항을 확인하고 빠르게 조치할 수 있다 .
TDD 란 무엇인가 ?테스트 주도 개발Test Driven Development
TDD 란 무엇인가 ?
TDD != 단위 테스트
TDD 란 무엇인가 ?
만들고자 하는 기능의 내용을 담고 있으면서 만들어진 코드를 검증해줄 수 있도록 테스트 코드를 먼저 만들고 !
TDD 란 무엇인가 ?
테스트를 성공하게 해주는 코드를 작성하는 방식의 개발 방법
TDD 란 무엇인가 ?
최대한 빨리 실패하기 !!
TDD 의 장점개발의 방향을 잃지 않게 유지해준다 .
클래스 이름은 Account기능은 세 가지잔고 balance 조회입금 deposit출금 withdraw
TDD 의 장점
품질 좋은 소프트웨어 모듈 보유자동화된 단위 테스트 케이스를 갖게 된다 .
사용 설명서 & 의사소통의 수단설계 개선보다 자주 성공한다 .
테스트를 거친 ' 품질이 검증된 부품 ' 을 갖게 됨필요한 시점에 언제든지 수행하고 확인 가능테스트 코드 남음 ( 문서보다 코드 !)
다양한 설계 요소 고민 ( 이름 , 인자 , 접근 제어자 )!
테스트 주기를 짧게 하여 녹색 막대를 보며 ,
성취감을 !!
TDD 의 최종목적 :' 잘 동작하는 깔끔한 코드 ' 작성
테스트 유의사항l 테스트 케이스는 이름이 중요하다 .l 코드형식 보다는 테스트를 설명하는 형식으로l 한글로 작성해도 자바니까 OK~ 이왕이면 UTF-8 인코딩l 메소드명을 통해서 테스트 의도 확인
테스트 이야기
더 이상 동작하지 않는 테스트 케이스는 제거한다 .
테스트 이야기
TDD 는 자동화된 테스트를 만드는 것이 최종 목표가 아니다 .
테스트 이야기
모든 상황에 대한 테스트 케이스를만들 필요는 없다 .
테스트 이야기
여러 개의 실패하는 테스트 케이스를 한번에 만들지 않는다 .
JUnit: 테스트 자동화 프레임워크
JUnit 개념
●테스트 픽스처 Test fixture
●테스트 케이스 Test case 와 테스트 메소드 Test
method
●JUnit3 vs JUnit4
JUnit 을 사용한 클래스 기본구조@Before: 테스트에 필요한 변수나 환경설정@Test: 실제 테스트가 진행됨// Given: 테스트와 관련된 조건식// When: 테스트 실행 ( 행위 , behavior)// Then: 테스트 실행결과 확인 @After: 테스트에 사용된 뒷정리
TDD 를 잘하려면 ?
TDD 를 잘 하려면 ??
IDE(tool) 를 잘 써야 한다 .
TDD 를 잘 하려면 ??
많이 연습해야 한다 .
TDD 를 잘 하려면 ??
테스트하기 편한 환경을 조성한다 .
TDD 를 잘 하려면 ??
잘 쪼개야 한다 .
TDD 를 잘 하려면 ??
아래에서 위로 (Bottom-up) 보다는 위에서 아래로 (Top-down) 방식이 좋다 .