19. Unit Test
• 최소 실행 단위, 보통 함수 하나에
대한 테스트 [1]
• 외부의 의존성을 배제한 테스트
[1] http://en.wikipedia.org/wiki/Unit_testing
20. Integration Test
• 개별 모듈을 결합하여 그룹의 테스
트 [1]
• DB, 네트웍 리소스를 홗용한 테스
트
[1] http://en.wikipedia.org/wiki/Integration_testing
21. System Test [1]
• 젂체 소프트웨어 시스템을 실행시
키고 짂행하는 테스트
• 기능/시나리오 테스트
[1] 『지속적 통합 : 소프트웨어 품질을 높이고 위험을 줄이기』
22. 테스트 범주 별 도구 [1]
범주 도구
Unit Test Junit
Mock 라이브러리
Integration Test DbUnit
StrutsTestCase
Springframework.test.*
System Test Selenium
JWebUnit
[1] 『지속적 통합 : 소프트웨어 품질을 높이고 위험을 줄이기』
27. 메일 발송 배치 개발
• 메일Pool에 미발송 메일이 있는지
확인한다.
• 미발송 메일이 있을 경우, 메일서버
로 발송을 요청한다.
• 발송이 성공하면, 메일Pool에 결
과를 저장한다.
28. 테스트 케이스 클래스의 위치 [1]
• 테스트 대상 소스와 테스트 클래스를
같은 위치로
• 테스트 클래스는 하위 패키지로
• 최상위 패키지를 분리
• 소스 폴더는 다르게, 패키지는 동일,
컴파일된 클래스는 각각 다른 곳으로
• 테스트를 프로젝트로 분리
[1] 『테스트 주도 개발 : 고품질 쾌속개발을 위한 TDD 실천법과 도구』
29. MoreUnit
단축키 기능
Ctrl + J 소스와 테스트 케이스 갂의 이동
Ctrl + R 테스트 케이스 구동
Ctrl + U 테스트 케이스 생성
30. Mockito
• 기본 사용법
• Mock 객체 만들기
• 예상값 지정
• 테스트에 사용할 스텁 만들기
• 검증
• 특징
• void 메소드를 stub으로 만들기
• 실제 객체를 stub으로 만들기 : spy
• Behavior-Driven Development 스타일 지웎
32. TDD의 장점
• 개발의 방향을 잃지 않게 유지해준다.
• 품질 높은 소프트웨어 모듈 보유하게 된다.
• 자동화된 단위 테스트 케이스를 갖게 된다.
• 사용설명서 & 의사소통 수단으로 사용한다.
• 리팩토링이 용이하다.
• 보다 자주 성공을 경험하게 한다.
33.
34.
35. Regression Test
assert( 개발에서 만드는 테스트의 종류를 파악하고 장단점
을 이해한다 );
assert( TDD가 무엇인지 안다 );
assert( 테스트 범주를 이해한다 );
assert( Mock Object를 사용해야 하는 경우를 안다 );
assert( TDD를 시도해보면 무언가 장점을 얻을 수 있겠다는
느낌이 있다 );
assert( TDD의 장점을 이해한다 );