메뉴 바로가기 검색 및 카테고리 바로가기 본문 바로가기

Effective Unit Testing : 클린 코드와 좋은 설계를 이끄는 단위 테스트

한빛미디어

번역서

절판

  • 저자 : 라쎄 코스켈라
  • 번역 : 이복연
  • 출간 : 2013-11-11
  • 페이지 : 316 쪽
  • ISBN : 9788968480621
  • 물류코드 :2062
  • 초급 초중급 중급 중고급 고급
1 2 3 4 5
5점 (2명)
좋아요 : 57

책소개

프로젝트의 성공과 실패를 가늠하는 단위 테스트

 

좋은 테스트를 작성하는 방법은 언어에 무관하다.
테스트 라이브러리 사용법에서 나아가 '좋은 테스트란 무엇인가', '좋은 테스트를 작성하려면 어떻게 해야 하는가'에 관한 현장의 물음에 해답을 제시한다.

 

유형별로 나눈 테스트 카탈로그 제공
테스트가 갖춰야 할 요건에 따라 나눈 테스트 카탈로그를 제공한다. 따라서 필요할 때마다 원하는 목록을 참고하여 자신이 작성한 테스트에서 문제를 발견하고 수정해 나갈 수 있으며 더욱 응용력 높은 학습을 할 수 있다. 

 

이 책의 내용

  • 테스트 냄새
  • 최상의 툴을 고르는 방법
  • 동적 언어를 사용해서 테스트 작성하기
  • 효과적인 테스트 자동화
  • 테스트 기능 설계

 

어떤 독자를 위한 책인가?

  • 테스팅 경험은 있으나 테스트의 품질을 자신할 수 없는 자바 개발자
  • 테스팅에 대한 개념이 아직 명확하지 않은 사람
  • QA 부서에서 직무 교육을 받는 테스터/개발자

저자소개

라쎄 코스켈라 저자

라쎄 코스켈라

라쎄 코스켈라는 Reaktor 소속의 코치, 트레이너, 컨설턴트, 프로그래머로서 고객이 성공적인 소프트웨어 제품을 만드는 데 이바지하고 있다. 그는 기업용 애플리케이션에서부터 미들웨어 제품까지 다양한 영역의 소프트웨어 프로젝트를 경험해왔다.

공인 스크럼 트레이너(Certified Scrum Trainer )이기도 한 그는 근래에는 고객팀의 생산성을 개선하고 끊임없이 배워가는 문화를 길러주는 교육 프로그램을 제공하거나 직접 맨토링하는 데 시간을 쏟고 있다. 또한, 리더와 관리자를 위한 컨설팅 외에도 소프트웨어 개발팀과 일하며 프로그래밍하는 것 역시 좋아한다.

여가 시간에는 오픈 소스 프로젝트에 참여하거나 소프트웨어 개발 관련 저술 활동을 한다. 직접 블로그(http://lassekoskela.com/thoughts/)도 운영하며, 이번 『Effective Unit Testing』은 2007년에 출간한 『Test Driven』에 이은 두 번째 작품이다. 그는 핀란드 애자일 커뮤니티의 선구자 중 한 명으로 국제 컨퍼런스의 발표자로도 자주 얼굴을 비추고 있다.

개앞맵시(이복연) 역자

개앞맵시(이복연)

고려대학교 컴퓨터학과를 졸업하고 삼성전자에서 자바 가상 머신, 스마트폰 플랫폼, 메신저 서비스 등을 개발했다. 주 업무 외에 분산 빌드, 지속적 통합, 앱 수명주기 관리 도구, 애자일 등 동료 개발자들에게 실질적인 도움을 주는 일에 관심이 많았다. 그 후 창업전선에 발을 들여 좌충우돌하다가 개발자 커뮤니티에 기여하는 더 나은 방법을 찾아 출판 시장에 뛰어들었다.

 

『밑바닥부터 시작하는 딥러닝』 시리즈, 『구글 엔지니어는 이렇게 일한다』, 『리팩터링 2판』, 『JVM 밑바닥까지 파헤치기』, 『이펙티브 자바 3판』 등을 번역했다.

 

- 페이스북: facebook.com/dev.loadmap

- 개앞맵시에게 번역이란: brunch.co.kr/@wegra/27

 

 

목차

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 기본 규칙들 

독자리뷰

오탈자 보기

부록/예제소스

결제하기
• 문화비 소득공제 가능
• 배송료 : 2,000원배송료란?

배송료 안내

  • 20,000원 이상 구매시 도서 배송 무료
  • 브론즈, 실버, 골드회원 무료배송
닫기

리뷰쓰기

닫기
* 상품명 :
Effective Unit Testing : 클린 코드와 좋은 설계를 이끄는 단위 테스트
* 제목 :
* 별점평가
1 2 3 4 5
* 내용 :

* 리뷰 작성시 유의사항

글이나 이미지/사진 저작권 등 다른 사람의 권리를 침해하거나 명예를 훼손하는 게시물은 이용약관 및 관련법률에 의해 제재를 받을 수 있습니다.

1. 특히 뉴스/언론사 기사를 전문 또는 부분적으로 '허락없이' 갖고 와서는 안됩니다 (출처를 밝히는 경우에도 안됨).
2. 저작권자의 허락을 받지 않은 콘텐츠의 무단 사용은 저작권자의 권리를 침해하는 행위로, 이에 대한 법적 책임을 지게 될 수 있습니다.

오탈자 등록

닫기
* 도서명 :
Effective Unit Testing : 클린 코드와 좋은 설계를 이끄는 단위 테스트
* 구분 :
* 상품 버전
종이책 PDF ePub
* 페이지 :
* 위치정보 :
* 내용 :

도서 인증

닫기
도서명*
Effective Unit Testing : 클린 코드와 좋은 설계를 이끄는 단위 테스트
구입처*
구입일*
부가기호*
부가기호 안내

* 온라인 또는 오프라인 서점에서 구입한 도서를 인증하면 마일리지 500점을 드립니다.

* 도서인증은 일 3권, 월 10권, 년 50권으로 제한되며 절판도서, eBook 등 일부 도서는 인증이 제한됩니다.

* 구입하지 않고, 허위로 도서 인증을 한 것으로 판단되면 웹사이트 이용이 제한될 수 있습니다.

닫기

해당 상품을 장바구니에 담았습니다.이미 장바구니에 추가된 상품입니다.
장바구니로 이동하시겠습니까?