Tdd

1,762 views

Published on

한글 폰트 때문에 PDF

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,762
On SlideShare
0
From Embeds
0
Number of Embeds
13
Actions
Shares
0
Downloads
0
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Tdd

  1. 1. Test Driven Development
  2. 2. 2002년피보나치 수열TDD로 짜는 동영상
  3. 3. main()
  4. 4. Edit & Pray
  5. 5. 2009년젂사적 QP홗동Code Corverage
  6. 6. Legacy Code에서개발하기
  7. 7. TDD제대로 배워보기
  8. 8. assert( 개발에서 만드는 테스트의 종류를 파악하고 장단점을 이해한다 );
  9. 9. 개발자라면테스트도 코드로!
  10. 10. 수동 테스트• 장점• 쉽다 갂편하다• 테스트 불가능한 경우 거의 없음• 단점• 휘발성• 재현의 어려움
  11. 11. 자동 테스트• 장점• 여러 번 수행 가능하다.• 기존 테스트는 새 테스트를 작성하는 발판이 된다• 코드를 통한 도큐먼트 & 커뮤니케이션• 단점• 기술, 노하우의 필요
  12. 12. assert( TDD가 무엇인지 안다 );
  13. 13. Test the program before you write it. [1][1] 『테스트 주도 개발』
  14. 14. TDD에서는• 오직 자동화된 테스트가 실패할 경 우에만 새로운 코드를 작성한다.• 중복을 제거한다.
  15. 15. assert( 테스트 범주를 이해한다 );
  16. 16. Unit Test• 최소 실행 단위, 보통 함수 하나에 대한 테스트 [1]• 외부의 의존성을 배제한 테스트[1] http://en.wikipedia.org/wiki/Unit_testing
  17. 17. Integration Test• 개별 모듈을 결합하여 그룹의 테스 트 [1]• DB, 네트웍 리소스를 홗용한 테스 트[1] http://en.wikipedia.org/wiki/Integration_testing
  18. 18. System Test [1]• 젂체 소프트웨어 시스템을 실행시 키고 짂행하는 테스트• 기능/시나리오 테스트[1] 『지속적 통합 : 소프트웨어 품질을 높이고 위험을 줄이기』
  19. 19. 테스트 범주 별 도구 [1]범주 도구Unit Test Junit Mock 라이브러리Integration Test DbUnit StrutsTestCase Springframework.test.*System Test Selenium JWebUnit [1] 『지속적 통합 : 소프트웨어 품질을 높이고 위험을 줄이기』
  20. 20. assert( Mock Object를 사용해야 하는 경우를 안다 );
  21. 21. Test Double• 代役• 임시의 가상 구현체[그림] http://msdn.microsoft.com/ko-kr/magazine/cc163358.aspx
  22. 22. 언제 Mock객체를 만들 것인가?• 테스트 대상이 가짂 ‘의존성’을 배 제하고 테스트 케이스를 작성 할 때• 홖경 구축이 필요한 경우• 의존적인 라이브러리가 테스트 시갂을 많이 소요할 경우• 특정 순갂이나 이벤트에 의존적인 경우
  23. 23. assert( TDD를 시도해보면 무언가 장점을 얻을 수 있겠다는 느낌이 있다 );
  24. 24. 메일 발송 배치 개발• 메일Pool에 미발송 메일이 있는지 확인한다.• 미발송 메일이 있을 경우, 메일서버 로 발송을 요청한다.• 발송이 성공하면, 메일Pool에 결 과를 저장한다.
  25. 25. 테스트 케이스 클래스의 위치 [1]• 테스트 대상 소스와 테스트 클래스를 같은 위치로• 테스트 클래스는 하위 패키지로• 최상위 패키지를 분리• 소스 폴더는 다르게, 패키지는 동일, 컴파일된 클래스는 각각 다른 곳으로• 테스트를 프로젝트로 분리[1] 『테스트 주도 개발 : 고품질 쾌속개발을 위한 TDD 실천법과 도구』
  26. 26. MoreUnit단축키 기능Ctrl + J 소스와 테스트 케이스 갂의 이동Ctrl + R 테스트 케이스 구동Ctrl + U 테스트 케이스 생성
  27. 27. Mockito• 기본 사용법 • Mock 객체 만들기 • 예상값 지정 • 테스트에 사용할 스텁 만들기 • 검증• 특징• void 메소드를 stub으로 만들기• 실제 객체를 stub으로 만들기 : spy• Behavior-Driven Development 스타일 지웎
  28. 28. assert( TDD의 장점을 이해한다 );
  29. 29. TDD의 장점• 개발의 방향을 잃지 않게 유지해준다.• 품질 높은 소프트웨어 모듈 보유하게 된다.• 자동화된 단위 테스트 케이스를 갖게 된다.• 사용설명서 & 의사소통 수단으로 사용한다.• 리팩토링이 용이하다.• 보다 자주 성공을 경험하게 한다.
  30. 30. Regression Testassert( 개발에서 만드는 테스트의 종류를 파악하고 장단점을 이해한다 );assert( TDD가 무엇인지 안다 );assert( 테스트 범주를 이해한다 );assert( Mock Object를 사용해야 하는 경우를 안다 );assert( TDD를 시도해보면 무언가 장점을 얻을 수 있겠다는느낌이 있다 );assert( TDD의 장점을 이해한다 );

×