가입하고 포인트 받기
Effective Unit Testing (클린 코드와 좋은 테스트를 이끄는 설계 지침서, 개발자를 위한 단위 테스트)
라쎄 코스켈라 지음
한빛미디어
 펴냄
25,000 원
25,000원 
앱에서 포인트받고 구매
316쪽 | 2013-11-10
분량 보통인책 | 난이도 보통인책
상세 정보
테스트 라이브러리 사용법에서 나아가 '좋은 테스트란 무엇인가', '좋은 테스트를 작성하려면 어떻게 해야 하는가'에 관한 현장의 물음에 해답을 제시한다. 테스팅 경험은 있으나 테스트의 품질을 자신할 수 없는 자바 개발자, 테스팅에 대한 개념이 아직 명확하지 않은 사람, QA 부서에서 직무 교육을 받는 테스터/개발자를 위한 도서이다.
더보기
목차

PART 1 기반 다지기
CHAPTER 1 좋은 테스트의 약속
_1.1 더 좋은 테스트를 작성하기 위한 현황 점검
_1.2 테스트의 가치
__1.2.1 생산성에 영향을 주는 요소
__1.2.2 설계 잠재력 곡선
_1.3 설계 수단으로써의 테스트
__1.3.1 테스트 주도 개발
__1.3.2 행위 주도 개발
_1.4 요약

CHAPTER 2 좋은 테스트란?
_2.1 읽기 쉬운 코드가 유지보수도 쉽다
_2.2 구조화가 잘 되어 있다면 이해하기 쉽다
_2.3 엉뚱한 걸 검사하는 건 좋지 않다
_2.4 독립적인 테스트는 혼자서도 잘 실행된다
_2.5 믿음직한 테스트라야 기댈 수 있다
_2.6 모든 일이 그렇듯 테스트에도 도구가 쓰인다
_2.7 요약

CHAPTER 3 테스트 더블
_3.1 테스트 더블의 위력
__3.1.1 테스트 대상 코드를 격리한다
__3.1.2 테스트 속도를 개선한다
__3.1.3 예측 불가능한 실행 요소를 제거한다
__3.1.4 특수한 상황을 시뮬레이션한다
__3.1.5 감춰진 정보를 얻어낸다
_3.2 테스트 더블의 종류
__3.2.1 테스트 스텁은 유난히 짧다
__3.2.2 가짜 객체는 뒤끝 없이 처리한다
__3.2.3 테스트 스파이는 기밀을 훔친다
__3.2.4 Mock 객체는 예기치 않은 일을 막아준다
_3.3 테스트 더블 활용 지침
__3.3.1 용도에 맞는 더블을 선택하라
__3.3.2 준비하고, 시작하고, 단언하라
__3.3.3 구현이 아니라 동작을 확인하라
__3.3.4 자신의 도구를 선택하라
__3.3.5 종속 객체를 주입하라
_3.4 요약

PART 2 테스트 냄새
CHAPTER 4 가독성
_4.1 기본 타입 단언
_4.2 광역 단언
_4.3 비트 단언
_4.4 부차적 상세정보
_4.5 다중 인격
_4.6 쪼개진 논리
_4.7 매직 넘버
_4.8 셋업 설교
_4.9 과잉보호 테스트
_4.10 요약

CHAPTER 5 유지보수성
_5.1 중복
_5.2 조건부 로직
_5.3 양치기 테스트
_5.4 파손된 파일 경로
_5.5 끈질긴 임시 파일
_5.6 잠자는 달팽이
_5.7 픽셀 퍼펙션
_5.8 파라미터화된 혼란
_5.9 메서드 간 응집력 결핍
_5.10 요약

CHAPTER 6 신뢰성
_6.1 주석으로 변한 테스트
_6.2 오해를 낳는 주석
_6.3 절대 실패하지 않는 테스트
_6.4 지키지 못할 약속
_6.5 낮아진 기대치
_6.6 플랫폼 편견
_6.7 조건부 테스트
_6.8 요약

CHAPTER 7 테스트 가능 설계
_7.1 테스트 가능 설계란?
__7.1.1 모듈러 설계
__7.1.2 SOLID 설계 원칙
__7.1.3 맥락을 고려한 모듈러 설계
__7.1.4 모듈러 설계를 위한 시운전
_7.2 테스트 불가 원인
__7.2.1 클래스 생성 불가
__7.2.2 메서드 호출 불가
__7.2.3 결과 확인 불가
__7.2.4 협력 객체 대체 불가
__7.2.5 메서드 오버라이딩 불가
_7.3 테스트 가능 설계를 위한 지침
__7.3.1 복잡한 private 메서드를 피하라
__7.3.2 final 메서드를 피하라
__7.3.3 정적 메서드를 피하라
__7.3.4 new는 신중하게 사용하라
__7.3.5 생성자에서는 로직 구현을 피하라
__7.3.6 싱글톤을 피하라
__7.3.7 상속보다는 컴포지션을 사용하라
__7.3.8 외부 라이브러리를 감싸라
__7.3.9 서비스 호출을 피하라
_7.4 요약

CHAPTER 8 제2의 JVM 언어를 활용한 테스트 작성
_8.1 JVM 언어 혼용의 조건
__8.1.1 일반적인 이점
__8.1.2 테스트 작성하기
__8.2 그루비로 단위 테스트 작성하기
__8.2.1 간소화된 테스트 셋업
__8.2.2 그루비로 작성한 JUnit 4 테스트
__8.3 BDD 도구의 뛰어난 표현력
__8.3.1 easyb로 작성한 그루비 명세
__8.3.2 테스트의 표현력을 높여주는 스폭
__8.3.3 스폭의 또 다른 무기, 테스트 더블
_8.4 요약

CHAPTER 9 테스트 속도 개선
_9.1 속도 개선을 위해서
__9.1.1 더 빠르게!
__9.1.2 상황 속으로
__9.1.3 빌드 프로파일링하기
_9.1.4 테스트 프로파일링하기
_9.2 테스트 코드 속도 높이기
__9.2.1 피곤하지 않다면 잠들지 말라
__9.2.2 덩치 큰 기반 클래스를 경계하라
__9.2.3 불필요한 셋업과 티어다운을 경계하라
__9.2.4 테스트에 초대할 손님은 까다롭게 선택하라
__9.2.5 로컬하게, 그리고 빠르게 유지하라
__9.2.6 데이터베이스의 유혹을 뿌리쳐라
__9.2.7 파일 I/O보다 느린 I/O는 없다
_9.3 빌드 속도 높이기
__9.3.1 램 디스크를 활용한 초고속 I/O
__9.3.2 빌드 병렬화하기
__9.3.3 고성능 CPU에 짐 떠넘기기
__9.3.4 빌드 분산하기
_9.4 요약

Appendix 부록
Appendix A JUnit 기초
_A.1 기본적인 JUnit 테스트 케이스
_A.2 JUnit 단언문

Appendix B JUnit 확장하기
_B.1 러너를 통해 테스트 동작 제어하기
_B.2 규칙으로 테스트 꾸미기
_B.3 기본 규칙들

더보기
저자 정보
라쎄 코스켈라
Reaktor 소속의 코치, 트레이너, 컨설턴트, 프로그래머로서 고객이 성공적인 소프트웨어 제품을 만드는 데 이바지하고 있다. 그는 기업용 애플리케이션에서부터 미들웨어 제품까지 다양한 영역의 소프트웨어 프로젝트를 경험해왔다. 공인 스크럼 트레이너(Certified Scrum Trainer )이기도 한 그는 근래에는 고객팀의 생산성을 개선하고 끊임없이 배워가는 문화를 길러주는 교육 프로그램을 제공하거나 직접 맨토링하는 데 시간을 쏟고 있다. 또한, 리더와 관리자를 위한 컨설팅 외에도 소프트웨어 개발팀과 일하며 프로그래밍하는 것 역시 좋아한다. 여가 시간에는 오픈 소스 프로젝트에 참여하거나 소프트웨어 개발 관련 저술 활동을 한다. 직접 블로그(http://lassekoskela.com/thoughts/)도 운영하며, 이번 『Effective Unit Testing』은 2007년에 출간한 『Test Driven』에 이은 두 번째 작품이다. 그는 핀란드 애자일 커뮤니티의 선구자 중 한 명으로 국제 컨퍼런스의 발표자로도 자주 얼굴을 비추고 있다.
더보기
남긴 글 1
유니킥님이 이 책을 읽었어요
5년 전
다음에 다시 한번 더 읽자
더보기
앱에서 바로 보기