개발자를 위한 시프트 레프트 테스트 (버그와 야근을 줄이기 위한 근거 있는 효율적 테스트 기법 총정리)

개발자를 위한 시프트 레프트 테스트 (버그와 야근을 줄이기 위한 근거 있는 효율적 테스트 기법 총정리)

$24.00
Description
소프트웨어 품질을 높이기 위한 개발자 테스트 프랙티스
소프트웨어 품질은 조기에 결정되므로 개발 과정에서 테스트를 뒤로 미루지 않고 최대한 앞 단계에서 수행하자는 것이 ‘시프트-레프트’ 접근법이다. 이 책은 이상론처럼 보이는 시프트-레프트를 개발 현장에서 실천하는 방법을 보여준다. 테스트 기초부터, 단위 테스트, 리팩터링, 애자일 개발 시의 품질 담보, 테스트 자동화까지, 경험과 연구에서 비롯된 테스트 기법의 정수를 담았다. 애자일 시대에 맞는 실용적이고 효율적인 개발자 테스트 프랙티스를 내 것으로 만들어보자.
저자

다카하시주이치

高橋寿一
정보공학박사.플로리다공과대학교대학원에서켐케이너(CemKaner)박사와제임스휘태커(JamesWhittaker)박사를사사했고,히로시마시립대학에서소프트웨어품질연구로박사학위를취득했다.마이크로소프트본사및일본SAP에서소프트웨어테스트업무에종사했으며,소니소프트웨어품질담당부장을거쳐,현재AGEST집행임원CTSO및디지털하트홀딩스CTSO를역임하고있다.저서로《지식제로부터배우는소프트웨어테스트》,《현장업무가척척진행되는소프트웨어테스트기법》등이있다.

목차

옮긴이머리말xiii
베타리더후기xv
머리말xviii
이책에대하여xxii

CHAPTER1테스트시작하기1
1.1시프트-레프트의개요3
1.2애자일에서의품질7
__1.2.1애자일테스트란8

CHAPTER2시프트-레프트테스트13
2.1시프트-레프트모델16
2.2시프트-레프트테스트의특징17
__2.2.1시프트-레프트와출시후품질18
__2.2.2시프트-레프트와남은버그의리스크20
2.3마치며23

CHAPTER3개발자테스트의기본중기본25
3.1개발자가반드시알아야할테스트기법29
__3.1.1경곗값테스트30
__3.1.2상태전이테스트33

CHAPTER4코드기반단위테스트37
4.1코드기반단위테스트40
4.2명령커버리지(C0)41
4.3조건커버리지(C1)43
4.4자주발생하는단위테스트오류44
4.5코드기반단위테스트작성법45
__4.5.1일반적인테스트방법(TDD)46
4.6커버리지비율:코드기반단위테스트의성패를측정50

CHAPTER5단위테스트효율화:쉬운단위테스트55
5.1코드복잡도60
5.2단위테스트의대상62
__5.2.1단위테스트할범위를선정64
__5.2.2독자적인방법:파일을2개로분리66
__5.2.3명확한장점68

CHAPTER6기능단위별단위테스트75
6.1개발자가확인할단위기능테스트77
__6.1.1정렬기능의단위테스트78
6.2블랙박스테스트와화이트박스테스트83

CHAPTER7리팩터링87
7.1단위테스트가어려운복잡한코드90
7.2파일코드리팩터링92
7.3큰클래스의리팩터링93
__7.3.1CK지표93
7.4복잡도를낮추는리팩터링98
7.5출구는하나100
7.6MVC분리101

CHAPTER8코드리뷰107
8.1코드리뷰란109
8.2페어프로그래밍113

CHAPTER9통합테스트119
9.1통합테스트패턴121
__9.1.1통합테스트중시설계122
9.2API테스트와API버그밀도에관한사고방식124
9.3카오스엔지니어링126
__9.3.1카오스엔지니어링과품질및생산성131

CHAPTER10시스템테스트의자동화135
10.1최악의시스템테스트139
10.2키워드주도자동테스트142
10.3망상적자동화144

CHAPTER11탐색적테스트147

CHAPTER12테스트전체설계153
12.1단위테스트없이피폐해지는조직156

CHAPTER13애자일및시프트-레프트지표159
13.1돌연변이테스트162
__13.1.1돌연변이테스트의사고방식164
__13.1.2변이의내용165
__13.1.3돌연변이테스트의문제점172
__13.1.4돌연변이커버리지비율이라는사고방식174
13.2사용자스토리와신뢰성지표175
__13.2.1운영프로파일176
13.3신뢰도성장곡선지표177

CHAPTER14애자일에서의요구사항사양183
14.1사용자스토리의장점189

CHAPTER15개발자테스트의실제샘플191
15.1단위테스트194
__15.1.1간단한애플리케이션작성195
__15.1.2단위테스트생성197
15.2코드커버리지측정202
__15.2.1코드커버리지도구준비202
__15.2.2가장간단한커버리지(명령커버리지)203
__15.2.3조건커버리지205

에필로그208
참고문헌211
찾아보기218

출판사 서평

소프트웨어품질은조기에결정된다
버그와야근을줄이기위한‘근거있는’효율적테스트기법총정리

개발과정에서테스트를뒤로미루지않고최대한조기에수행하자는‘시프트-레프트’접근법이있다.현실과동떨어진이상론이라고생각하는사람이많겠지만,일본에서소프트웨어테스트분야의일인자로평가받는다카하시주이치는이책을통해시프트-레프트를개발현장에서실천할수있음을보여준다.

저자는품질컨설턴트로서오랜세월축적해온경험을바탕으로테스트기초지식부터경곗값테스트,단위테스트,시스템테스트,리팩터링,정량화를통한애자일개발시의품질보증,테스트효율화및자동화까지오늘날현장에서요구되는테스트의모든것을명료하게정리했다.경험뿐만아니라각종연구결과를근거로제시함으로써객관성도높였다.실제사례를대화형태로재구성해직관적인이해를돕게배려한점도책의미덕이다.

현장에서실천할수있는지식에목말랐던개발자들에게단순히이상론을설파하는게아니라실천할방안을알려준다는점이책의가장큰의의가아닐까싶다.일례로단위테스트만해도못들어본개발자는없겠지만현실적인이유로실천하는개발자는많지않다.저자는단위테스트의‘본질’을설명하고효율화기법을제시함으로써실천력을높여준다.이책으로버그와야근을줄이기위한개발자테스트프랙티스를내것으로만들어보자.

주요내용
■조기품질을향상하는시프트-레프트에대한이해
■경곗값테스트등개발자테스트기법의기초
■단위테스트의본질,그리고효율화를통한실천
■시스템테스트자동화에서의최악과최선의방식
■돌연변이테스트등정량화를통한품질보증