책 이미지
책 정보
· 분류 : 국내도서 > 컴퓨터/모바일 > 웹디자인/홈페이지 > HTML/JavaScript
· ISBN : 9788966260065
· 쪽수 : 644쪽
· 출판일 : 2011-06-23
책 소개
목차
역자 서문
서문
초판의 서문
감사의 글
이 책에 대해
저자 소개
표지 일러스트 소개
1부 JUnit 기본
1장 JUnit 첫걸음
1.1 동작 증명하기
1.2 밑그림부터 시작하기
1.3 단위 테스트 프레임워크 이해하기
1.4 JUnit의 설계 목표
1.5 JUnit 셋업하기
1.6. JUnit으로 테스트 실행하기
1.7 정리
2장 JUnit 핵심 들여다보기
2.1. JUnit의 핵심
2.2 파라미터화 테스트 실행하기
2.3 JUnit 테스트 러너
2.3.1 테스트 러너 개요
2.3.2 JUnitCore 퍼사드
2.3.3 자신만의 테스트 러너 만들기
2.4 스위트를 이용한 테스트 조직하기
2.4.1. 테스트 클래스 집합 만들기
2.4.2 스위트의 스위트 만들기
2.4.3 스위트 vs. IDE, Ant, Maven
2.5 정리
3장 JUnit 마스터하기
3.1 컨트롤러 컴포넌트 소개
3.1.1 인터페이스 설계하기
3.1.2 기반 클래스 구현하기
3.2 자! 이제 테스트다!
3.2.1 DefaultController 테스트하기
3.2.2 핸들러 추가하기
3.2.3 요청 처리하기
3.2.4 testProcessRequest 개선하기
3.3 예외 처리 테스트하기
3.3.1 예외 상황 시뮬레이션하기
3.3.2 예외 테스트하기
3.4 타임아웃 테스트하기
3.5 Hamcrest 매처 소개
3.6 테스트 프로젝트 셋업하기
3.7 정리
4장 소프트웨어 테스트 원칙
4.1 단위 테스트가 필요한 이유
4.1.1 높은 테스트 커버리지 달성
4.1.2 팀 생산성 향상
4.1.3 회귀 테스트 수행 및 디버깅 감소
4.1.4 확신에 찬 리팩터링
4.1.5 구현 품질 향상
4.1.6 기대 행위 문서화
4.1.7 코드 커버리지 등 각종 측정이 가능
4.2. 테스트의 종류
4.2.1 소프트웨어 테스트의 네 가지 종류
4.2.2 단위 테스트의 종류 세 가지
4.3 블랙박스 테스트와 화이트박스 테스트
4.4 정리
2부 다채로운 테스트 전략
5장 테스트 커버리지와 개발
5.1 테스트 커버리지 측정하기
5.1.1 테스트 커버리지란?
5.1.2 Cobertura 소개
5.1.3 테스트 커버리지 보고서 생성하기
5.1.4 블랙박스 테스트와 화이트박스 테스트 혼용하기
5.2. 테스트 가능한 코드 작성하기
5.2.1 공개 API는 계약이다
5.2.2 종속성을 줄여라
5.2.3 생성자는 간단하게 만들어라
5.2.4 최소 지식의 원칙을 따르라
5.2.5 숨겨진 종속성과 전역 상태를 피하라
5.2.6 싱글톤의 장단점
5.2.7 제너릭 메서드를 애용하라
5.2.8 상속보다 컴포지션을 활용하라
5.2.9 조건 분기보다 다형성을 활용하라
5.3. 테스트 주도 개발
5.3.1 개발 주기 조정하기
5.3.2 TDD 실천으로 가는 두 단계
5.4 개발 주기에서의 테스트
5.5 정리
6장 스텁을 활용한 포괄적인 테스트
6.1. 스텁이란?
6.2 HTTP 커넥션을 스텁으로 대체하기
6.2.1 스텁 방식 선택하기
6.2.2 임베디드 서버로 Jetty 활용하기
6.3 웹 서버의 리소스를 스텁으로 대체하기
6.3.1 첫 번째 스텁 테스트 설정하기
6.3.2 실패 조건 테스트하기
6.3.3 첫 번째 스텁 테스트 되돌아보기
6.4 커넥션 스텁 작성하기
6.4.1 커스텀 URL 프로토콜 핸들러 제작하기
6.4.2 JDK HttpURLConnection 스텁 작성하기
6.4.3 테스트 실행하기
6.5 정리
7장 목 객체를 활용한 테스트
7.1 목 객체 소개하기
7.2 목 객체를 활용해 단위 테스트하기
7.3 목 객체와 함께 리팩터링하기
7.3.1 예제 리팩터링하기
7.4 HTTP 커넥션을 목으로 대체하기
7.4.1 목 객체 정의하기
7.4.2 예제 메서드 테스트하기
7.4.3 첫 번째 시도: 손쉬운 메서드 리팩터링 기법
7.4.4 두 번째 시도: 클래스 팩토리를 활용한 리팩터링
7.5 목 객체를 트로이 목마로 사용하기
7.6 목 프레임워크 만나보기
7.6.1 EasyMock 활용하기
7.6.2 JMock 활용하기
7.7 정리
8장 In-container 테스트
8.1 표준 단위 테스트의 한계
8.2 목 객체를 이용한 해법
8.3 In-container 테스트
8.3.1 전략 구현하기
8.3.2 In-container 테스트 프레임워크
8.4 스텁, 목 객체, In-container 테스트 비교하기
8.4.1 스텁의 장단점
8.4.2 목 객체의 장단점
8.4.3 In-container 테스트의 장단점
8.4.4 In-container 테스트 vs. Out-of-container 테스트
8.5 정리
3부 JUnit과 빌드 프로세스
9장 Ant로 JUnit 테스트 실행하기
9.1 개발자의 하루
9.2 Ant로 테스트 실행하기
9.3 Ant 소개 및 설치하기
9.4 Ant의 타깃, 프로젝트, 속성, 태스크 알아보기
9.4.1 javac 태스크
9.4.2 junit 태스크
9.5 Ant 실행하기
9.6 Ivy를 이용한 종속성 관리
9.7 HTML 보고서 생성하기
9.8 테스트 일괄 수행하기
9.9 정리
10장 Maven2로 JUnit 테스트 실행하기
10.1 Maven의 특성
10.1.1 규약이 설정에 우선한다
10.1.2 강력한 종속성 관리
10.1.3 Maven 빌드 생명주기
10.1.4 플러그인 기반 아키텍처
10.1.5 Maven 프로젝트 객체 모델(POM)
10.2 Maven 프로젝트 구성하기
10.3 Maven 플러그인 소개하기
10.3.1 Maven Compiler 플러그인
10.3.2 Maven Surefire 플러그인
10.3.3 Maven으로 HTML JUnit 보고서 생성하기
10.4 Maven의 부정적 측면
10.5 정리
11장 지속적 통합 툴
11.1 지속적 통합의 맛
11.1.1 지속적 통합 테스트
11.2 구원투수 CruiseControl
11.2.1 CruiseControl 시작하기
11.2.2 견본 프로젝트 설정하기
11.2.3 CruiseControl 설정 파일 살펴보기
11.3 또 하나의 멋진 구원자 Hudson
11.3.1 Hudson 소개하기
11.3.2 Hudson 설치하기
11.3.3 Hudson 설정하기
11.3.4 Hudson 안에 프로젝트 설정하기
11.4 지속적 통합으로 얻는 이점
11.5 정리
4부 JUnit 확장
12장 표현 계층 테스트하기
12.1 테스트 프레임워크 선택하기
12.2 HtmlUnit 소개하기
12.2.1 실생활에서 찾을 수 있는 예
12.3 HtmlUnit 테스트 작성하기
12.3.1 HTML 단언
12.3.2 특정 웹 브라우저를 위한 테스트
12.3.3 다수의 웹 브라우저 테스트
12.3.4 독립형 테스트 작성하기
12.3.5 객체 모델 내비게이션
12.3.6 원소 타입으로 원소 접근하기
12.3.7 이름 vs. 인덱스로 원소 접근하기
12.3.8 참고를 통해 원소 접근하기
12.3.9 XPath 사용하기
12.3.10 테스트 실패와 예외
12.3.11 애플리케이션과 인터넷 내비게이션
12.3.12 HtmlUnit으로 폼 테스트하기
12.3.13 프레임 테스트하기
12.3.14 자바스크립트를 이용해 테스트하기
12.3.15 CSS 테스트하기
12.3.16 SSL 에러
12.4 HtmlUnit과 Cactus 함께 사용하기
12.4.1 Cactus로 테스트 작성하기
12.5 Selenium 소개
12.6 Selenium 테스트 생성하기
12.6.1 실생활에서 찾을 수 있는 예
12.7 Selenium 테스트 실행하기
12.7.1 Selenium 서버 관리하기
12.7.2 JUnit 4로 Selenium 테스트 실행하기
12.8 Selenium 테스트 작성하기
12.8.1 특정 웹 브라우저를 겨냥한 테스트 수행하기
12.8.2 브라우저별 테스트 한 번에 수행하기
12.8.3 애플리케이션과 인터넷 내비게이션
12.8.4 참조를 이용해 원소 접근하기
12.8.5 예외를 발생시켜 테스트 실패시키기
12.8.6 Selenium으로 폼 테스트하기
12.8.7 자바스크립트 경고를 이용해 테스트하기
12.8.8 JUnit 3 테스트 실패 시 화면 캡처하기
12.8.9 JUnit 4 테스트 실패 시 화면 캡처하기
12.9 HtmlUnit vs. Selenium
12.10 정리
13장 Ajax 테스트하기
13.1 Ajax 애플리케이션 테스트는 왜 어려운가?
13.1.1 웹의 전통적 상호작용 방식
13.1.2 Ajax의 상호작용
13.1.3 용감한 신세계
13.1.4 테스트를 위해 극복해야 할 난제들
13.2 Ajax 테스트 패턴
13.2.1 기능 테스트
13.2.2 클라이언트단 스크립트 단위 테스트하기
13.2.3 서비스 테스트하기
13.3 기능 테스트
13.3.1 Selenium을 이용해 기능 테스트하기
13.3.2 HtmlUnit을 이용해 기능 테스트하기
13.4 자바스크립트 테스트하기
13.4.1 RhinoUnit으로 자바스크립트 테스트하기
13.4.2 JsUnit으로 자바스크립트 테스트하기
13.4.3 JsUnit 테스트 작성하기
13.4.4 JsUnit 테스트 스위트 작성하기
13.4.5 수동으로 JsUnit 테스트 수행하기
13.4.6 Ant로 JsUnit 테스트 실행하기
13.5 RhinoUnit vs. JsUnit
13.6 JSLint로 모범 사례 이행 여부 검사하기
13.7 HttpClient로 서비스 테스트하기
13.7.1 XML 서비스 호출하기
13.7.2 XML 응답 검증하기
13.7.3 JSON 응답 검증하기
13.8 Google Web Toolkit 애플리케이션 테스트하기
13.8.1 GWT 애플리케이션용 테스트 프레임워크 선택하기
13.8.2 수작업으로 GWTTestCase 작성하기
13.8.3 junitCreator로 GWTTestCase 생성하기
13.8.4 테스트 케이스 실행하기
13.8.5 setUp과 tearDown
13.8.6 테스트 스위트 만들기
13.8.7 테스트 스위트 실행하기
13.9 정리
14장 Cactus를 이용한 서버단 자바 테스트하기
14.1 Cactus란 무엇인가?
14.2 Cactus를 이용해 테스트하기
14.2.1 Cactus로 테스트할 수 있는 자바 컴포넌트
14.2.2 일반 원칙
14.2.3 Cactus 동작 메커니즘
14.3 서블릿과 필터 테스트하기
14.3.1 관리 애플리케이션 소개하기
14.3.2 Cactus를 이용한 서블릿 테스트 작성하기
14.4 JSP 테스트하기
14.4.1 관리 애플리케이션 재조명해보기
14.4.2 JSP 단위 테스트란?
14.4.3 Cactus를 이용해 격리된 환경에서 JSP 단위 테스트하기
14.4.4 SQL 결과 데이터로 JSP 실행하기
14.5 EJB 테스트하기
14.6 Cargo란 무엇인가?
14.7 Ant로 Cactus 테스트 실행하기
14.7.1 아카이브 준비를 위한 Cactus 태스크
14.8 Maven2x를 이용해 Cactus 테스트 실행하기
14.8.1 Maven2의 cactifywar MOJO
14.8.2 Maven2의 cactifyear MOJO
14.9 브라우저로부터 Cactus 테스트 실행하기
14.10 정리
15장 JSP 애플리케이션 테스트하기
15.1 JSF 소개하기
15.2 애플리케이션 예제 소개하기
15.3 JSF 애플리케이션 테스트 시의 전형적인 난관들
15.4 JSF 애플리케이션 테스트 전략
15.4.1 블랙박스 방식
15.4.2 구원 투수 목 객체 투입
15.5 JSFUnit으로 예제 애플리케이션 테스트하기
15.5.1 브라우저로 JSFUnit 테스트 실행하기
15.5.2 JSFUnit을 이용해 Ajax 테스트하기
15.6 JSFUnit과 HtmlUnit 함께 사용하기
15.7 JSF 애플리케이션 성능 테스트하기
15.8 정리
16장 OSGi 컴포넌트 테스트하기
16.1 OSGi 소개하기
16.2 첫 번째 OSGi 서비스
16.2.1 예제 애플리케이션
16.3 OSGi 서비스 테스트하기
16.3.1 목 객체
16.4 JUnit4OSGi 소개하기
16.5 정리
17장 데이터베이스 액세스 테스트하기
17.1 데이터베이스 단위 테스트 임피던스 미스매치
17.1.1 단위 테스트는 격리된 환경에서 수행해야 한다
17.1.2 단위 테스트는 쉽게 작성하고 쉽게 실행할 수 있어야 한다
17.1.3 단위 테스트는 빠르게 수행되어야 한다
17.2 DbUnit 소개하기
17.2.1 예제 애플리케이션
17.2.2 DbUnit 설정 및 예제 애플리케이션 실행하기
17.3 데이터셋을 이용해 데이터베이스 채우기
17.3.1 DatabaseOperation 해부
17.4 데이터셋으로 데이터베이스 상태 확인하기
17.4.1 데이터셋 필터링하기
17.4.2 열 무시하기
17.5 ReplacementDataSet를 이용해 데이터 변환하기
17.5.1 ReplacementDataSet을 이용해 다른 ID 문제를 처리하기
17.5.2 NULL 값 처리하기
17.6 데이터베이스 안의 데이터로부터 데이터셋 생성하기
17.7 고급 기법
17.7.1 DbUnit과 템플릿 디자인 패턴
17.7.2 커스텀 애노테이션으로 재활용성 높이기
17.7.3 데이터셋에 표현 언어 사용하기
17.8 데이터베이스 액세스 테스트 모범 사례
17.8.1 개발자마다 하나의 데이터베이스를 사용하라
17.8.2 대상 데이터베이스가 테스트되는지 확인하라
17.8.3 데이터를 읽고 저장하는 보조적인 테스트를 만들라
17.8.4 읽기 테스트 케이스에서 모든 기본 시나리오를 검증하라
17.8.5 데이터셋 용도를 계획하라
17.8.6 테스트 정리
17.9 정리
18장 JPA 기반 애플리케이션 테스트하기
18.1 계층형 애플리케이션 테스트하기
18.1.1 예제 애플리케이션
18.1.2 다양한 계층, 다양한 테스트 전략
18.2 JPA 테스트의 특징
18.3 인프라 갖추기
18.4 JPA 엔티티 매핑 테스트하기
18.4.1 테스트 케이스에 JPA ID 생성기 통합하기
18.5 JPA 기반 DAO 테스트하기
18.6 외래키 이름 테스트하기
18.7 정리
19장 JUnit에 부스터를...
19.1 툴 소개
19.1.1 툴 살펴보기
19.1.2 예제 실행하기
19.2 투명 목 활용
19.2.1 Unitils의 EasyMock 지원
19.2.2 FEST-Mocks
19.2.3 Mycila
19.3 DbUnit 통합
19.4 assert는 일을 쉽게 만든다
19.4.1 JUnit-addons의 단언 패키지
19.4.2 Unitils의 ReflectionAssert
19.4.3 FEST Fluent Assertions Module
19.4.4 Mycila 확장 assert 문
19.5 리플렉션을 이용해 캡슐화 회피하기
19.5.1 직접 만들어보기
19.5.2 JUnit-addons
19.5.3 FEST-Reflect
19.6 정리
부록A JUnit 3와 4의 차이점
A.1 전반적인 변화
A.1.1 JDK 요구사항
A.1.1 하위/상위 호환성
A.2 API의 변화
A.2.1 패키지 구조
A.2.2 생성자
A.2.3 테스트 케이스 확장하기
A.2.4 테스트 메서드 이름
A.3 애노테이션과 정적 임포트의 도입
A.3.1 @Before와 @After 애노테이션
A.3.2 @BeforeClass와 @AfterClass 애노테이션
A.3.3 일부 테스트를 제외하고 실행시키기
A.3.4 정적 임포트
A.3.5 예외 테스트하기
A.3.6 타임아웃 테스트하기
A.4 추가된 JUnit 러너
A.4.1 테스트 러너
A.4.2 테스트 스위트
A.4.3 파라미터화 테스트
A.5 새로운 assert 문과 가정
A.5.1 Hamcrest assert 문
A.5.2 가정
A.5.3 새로 추가된 assert 문
A.5.4 assert 에러
부록B 커스텀 러너와 매처로 JUnit API 확장하기
B.1 인터셉터 패턴 소개하기
B.2 커스텀 러너 제작하기
B.3 커스텀 매처 구현하기
부록C 책의 소스 코드
C.1 소스 코드 얻기
C.2 소스 코드 개요
C.3 외부 라이브러리
C.4 JAR 버전
C.5 디렉터리 구조 규약
부록D JUnit IDE 통합
D.1 이클립스에 통합된 JUnit
D.1.1 이클립스 설치하기
D.1.2 소스로부터 이클립스 프로젝트 설정하기
D.1.3 이클립스에서 JUnit 테스트 실행하기
D.1.4 이클립스에서 Ant 스크립트 실행하기
D.2 JUnitMAX 이클립스 플러그인 소개
D.2.1 개발 주기에 통합됨
D.2.2 실행 순서
D.2.3 마지막 안정 버전으로 되돌리기
D.3 NetBeans에 통합된 JUnit
D.3.1 NetBeans 설치하기
D.3.2 소스로부터 NetBeans 프로젝트 설정하기
D.3.3 NetBeans에서 JUnit 테스트 실행하기
D.3.4 NetBeans에서 Ant 스크립트 실행하기
부록E 소프트웨어 설치하기
E.1 HtmlUnit 설치하기
E.1.1 표준 설정
E.1.2 이클립스 설정
E.2 HtmlUnit을 사용할 수 있도록 Cactus 설정하기
E.3 Selenium 설치하기
E.4 RhinoUnit 설치하기
E.5 JsUnit 설치하기
찾아보기



















