tdd: test driven development 첫번째 이야기
TRANSCRIPT
![Page 2: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/2.jpg)
목차테스트 이야기TDD 란 무엇인가 ?JUnit 소개TDD 를 잘 하려면 ??TDD 흉내내기
![Page 3: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/3.jpg)
테스트 이야기
![Page 4: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/4.jpg)
테스트 이야기
애플리케이션은 계속 변하고 복잡해져간다 .
![Page 5: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/5.jpg)
테스트 이야기
단위 테스트는 코드가 바뀌지 않는다면 매번 실행할 때마다 테스트 결과가 동일하다 .
![Page 6: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/6.jpg)
테스트 이야기
만들어진 테스트 코드를 통해서 변경 사항을 확인하고 빠르게 조치할 수 있다 .
![Page 7: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/7.jpg)
TDD 란 무엇인가 ?테스트 주도 개발Test Driven Development
![Page 8: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/8.jpg)
TDD 란 무엇인가 ?
TDD != 단위 테스트
![Page 9: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/9.jpg)
TDD 란 무엇인가 ?
만들고자 하는 기능의 내용을 담고 있으면서 만들어진 코드를 검증해줄 수 있도록 테스트 코드를 먼저 만들고 !
![Page 10: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/10.jpg)
TDD 란 무엇인가 ?
테스트를 성공하게 해주는 코드를 작성하는 방식의 개발 방법
![Page 11: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/11.jpg)
TDD 란 무엇인가 ?
최대한 빨리 실패하기 !!
![Page 12: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/12.jpg)
TDD 의 장점개발의 방향을 잃지 않게 유지해준다 .
클래스 이름은 Account기능은 세 가지잔고 balance 조회입금 deposit출금 withdraw
![Page 13: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/13.jpg)
TDD 의 장점
품질 좋은 소프트웨어 모듈 보유자동화된 단위 테스트 케이스를 갖게 된다 .
사용 설명서 & 의사소통의 수단설계 개선보다 자주 성공한다 .
테스트를 거친 ' 품질이 검증된 부품 ' 을 갖게 됨필요한 시점에 언제든지 수행하고 확인 가능테스트 코드 남음 ( 문서보다 코드 !)
다양한 설계 요소 고민 ( 이름 , 인자 , 접근 제어자 )!
테스트 주기를 짧게 하여 녹색 막대를 보며 ,
성취감을 !!
![Page 14: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/14.jpg)
TDD 의 최종목적 :' 잘 동작하는 깔끔한 코드 ' 작성
![Page 15: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/15.jpg)
테스트 유의사항l 테스트 케이스는 이름이 중요하다 .l 코드형식 보다는 테스트를 설명하는 형식으로l 한글로 작성해도 자바니까 OK~ 이왕이면 UTF-8 인코딩l 메소드명을 통해서 테스트 의도 확인
![Page 16: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/16.jpg)
테스트 이야기
더 이상 동작하지 않는 테스트 케이스는 제거한다 .
![Page 17: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/17.jpg)
테스트 이야기
TDD 는 자동화된 테스트를 만드는 것이 최종 목표가 아니다 .
![Page 18: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/18.jpg)
테스트 이야기
모든 상황에 대한 테스트 케이스를만들 필요는 없다 .
![Page 19: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/19.jpg)
테스트 이야기
여러 개의 실패하는 테스트 케이스를 한번에 만들지 않는다 .
![Page 20: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/20.jpg)
JUnit: 테스트 자동화 프레임워크
![Page 21: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/21.jpg)
JUnit 개념
●테스트 픽스처 Test fixture
●테스트 케이스 Test case 와 테스트 메소드 Test
method
●JUnit3 vs JUnit4
![Page 22: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/22.jpg)
JUnit 을 사용한 클래스 기본구조@Before: 테스트에 필요한 변수나 환경설정@Test: 실제 테스트가 진행됨// Given: 테스트와 관련된 조건식// When: 테스트 실행 ( 행위 , behavior)// Then: 테스트 실행결과 확인 @After: 테스트에 사용된 뒷정리
![Page 23: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/23.jpg)
TDD 를 잘하려면 ?
![Page 24: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/24.jpg)
TDD 를 잘 하려면 ??
IDE(tool) 를 잘 써야 한다 .
![Page 25: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/25.jpg)
TDD 를 잘 하려면 ??
많이 연습해야 한다 .
![Page 26: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/26.jpg)
TDD 를 잘 하려면 ??
테스트하기 편한 환경을 조성한다 .
![Page 27: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/27.jpg)
TDD 를 잘 하려면 ??
잘 쪼개야 한다 .
![Page 28: TDD: Test Driven Development 첫번째 이야기](https://reader031.vdocuments.site/reader031/viewer/2022021813/58707cb11a28ab57368b5719/html5/thumbnails/28.jpg)
TDD 를 잘 하려면 ??
아래에서 위로 (Bottom-up) 보다는 위에서 아래로 (Top-down) 방식이 좋다 .