도서 소개

프런트엔드 개발을 위한 테스트 입문

제이펍 2024. 6. 18. 14:22

 

 

지금이라도 알아두면 쓸데 있는 테스트 자동화 전략

 

최신 웹 애플리케이션에서는 품질과 유지보수성을 위해 테스트 자동화가 중요하지만, 테스트 코드를 작성해본 경험이 없어 테스트 코드 작성을 어려워하는 개발자가 많다. 이 책은 테스트 코드를 처음 작성하는 프런트엔드 개발자를 대상으로, 기본적인 테스트 코드 작성법은 물론 상황별 테스트 코드 작성법, 다양한 도구 사용법까지 풍부한 예제와 함께 설명한다. 특히 타입스크립트, Next.js로 만든 예제를 포함하고 있어 최신 실무 지식과 노하우를 익힐 수 있다. 한국어판 부록으로 깃허브 액션에서의 UI 컴포넌트 테스트와 E2E 테스트를 추가 수록해 완성도를 더욱 높였다.

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

 교보문고 / 구글북스 / 리디북스 / 알라딘 / 예스이십사

 

출판사 제이펍
저작권사 翔泳社
원서명 フロントエンド開発のためのテスト入門 (9784798178189)
도서명 프런트엔드 개발을 위한 테스트 입문
부제 프런트엔드 테스트 기초 지식부터 UI 컴포넌트 테스트, E2E 테스트 등 상황에 맞는 테스트 전략까지
지은이 요시이 다케후미
옮긴이 원밀리언라인즈코딩(배언수)
감수자 (없음)
시리즈 (없음)
출판일 2024. 06. 21
페이지 332쪽
판 형 46배판변형(188*245*16.3(15.8+0.5))
제 본 무선(soft cover)
정 가 28,000원
ISBN 979-11-93926-26-0 (93000)
키워드 테스트, 자동화, 테스트코드, 타입스크립트, Next.js, 깃허브액션, 제스트, 리액트, 단위테스트, 스토리북
분 야 소프트웨어 공학 / 테스트

 

관련 사이트
아마존 도서 페이지
저작권사 도서 페이지

 

관련 시리즈

■ (없음)

 

관련 포스트

■ 2024.06.10 - [출간 전 책 소식] - 프런트엔드 테스트? 그런 건 도시전설이지~

 

관련 도서

프런트엔드 개발을 위한 보안 입문

프런트엔드 개발자를 위한 테스트 가이드

 

관련 파일 다운로드

https://github.com/frontend-testing-book-kr

 

강의 보조 자료(교재로 채택하신 분들은 메일(textbook@jpub.kr)을 보내주시면 다음 자료를 보내드립니다.)
■ 본문의 그림과 표

 

미리보기(목차, 옮긴이 머리말, 베타리더 후기, 시작하며, 이 책에 대하여, 본문 일부)

 

정오표 페이지
https://jpub.tistory.com/468757

 

도서구매 사이트(가나다순)

  [교보문고]  [도서11번가]  [알라딘]  [예스이십사]  [인터파크]  [쿠팡

 

전자책 구매 사이트(가나다순)

 교보문고 / 구글북스 / 리디북스 / 알라딘 / 예스이십사

 

도서 소개

수많은 테스트 방법 중에 나에게 맞는 테스트 방법을 찾아 업무 효율을 높이자

최근 몇 년간 강력한 라이브러리와 프레임워크의 등장으로 프런트엔드 개발에서는 많은 변화가 있었다. 싱글 페이지 애플리케이션을 필두로 한 모던 프런트엔드 기술들은 이미 많은 제품에 적용되어 사실상 표준으로 자리잡았다. 개발 환경의 변화와는 대조적으로 테스트 코드 작성을 어려워하는 개발자가 많다. 게다가 프런트엔드 테스트는 UI 컴포넌트 테스트, 시각적 회귀 테스트, 스토리북, E2E 테스트 등 테스트 방법이 너무 많아서 언제, 어떤 테스트가 필요한지 판단하는 것이 쉽지 않다.

 

어떤 상황에서나 정답인 은빛 총알은 없다. 각자의 상황에 맞는 도구를 선택해서 테스트해야 한다. 프런트엔드에는 테스트 방법이 많은 만큼 최적의 방법을 고를 수 있다. 이 책은 가장 주목받는 프레임워크인 Next.js와 타입스크립트를 통해 최신 개발 환경을 살펴보고 어떤 상황에서 어떤 테스트를 해야 하는지 살펴본다. 1~4장에서는 테스트 코드를 처음 작성하는 개발자가 대상이다. 1장에서는 테스트를 작성해야 하는 이유를, 2장에서는 테스트 범위와 목적을 다뤄 프런트엔드 테스트의 전체적인 흐름을 이해할 수 있도록 돕는다. 3장과 4장은 본격적으로 실습에 들어가기 앞서 단위 테스트와 목 객체를 활용한 테스트를 심도 깊게 다룬다.

 

5~10장에서는 리액트와 Next.js 예제를 활용한 모던 프런트엔드 기술을 사용한다. 5장에서는 UI 컴포넌트를 테스트할 때 중점을 둬야 하는 부분을 살펴보며, 6장에서는 구현 코드가 얼마나 테스트됐는지 측정하는 커버리지 리포트를 작성해본다. 7장에서는 본격적으로 Next.js로 만든 애플리케이션 예제를 통해 실무에 가까운 테스트를 한다. 8장에서는 협업 시 능률이 높아질 수 있도록 UI 컴포넌트 공유를 돕는 UI 컴포넌트 탐색기인 스토리북에 대해 살펴본다. 9장에서는 UI 컴포넌트에 시각적 회귀 테스트를 실시하면서 시각적 회귀 테스트의 중요성을, 10장에서는 실제 애플리케이션에 가까운 테스트가 가능한 E2E 테스트를 알아본다. 마지막으로 한국 독자를 위해 깃허브 액션에서 UI 컴포넌트 테스트 및 E2E 테스트하는 방법을 부록으로 수록했다.

 

테스트 코드는 비용을 절약할 수 있는 것은 물론 버그를 사전에 발견해 코드 품질을 높일 수 있고, 새로 들어온 팀원에게 보여줄 사양서로 활용할 수도 있으며, 리팩터링 시 초보적인 실수를 줄이는 용도로 사용할 수도 있다. 테스트 코드 작성을 하면서 얻을 수 있는 많은 장점에도 테스트 코드를 미루고 있거나 어렵게 느껴진다면 이 책이 프런트엔드 테스트의 좋은 지침서가 될 것이다. 이 책을 통해 자신감 있게 테스트 코드를 작성할 수 있게 되기를 바란다.

 

주요 내용

  • 테스트의 필요성과 프런트엔드 테스트의 흐름
  • E2E 테스트, 단위 테스트, UI 컴포넌트 테스트 등 적재적소의 테스트 방법
  • 제스트, 리액트, reg-suit 등 다양한 라이브러리와 도구
  • 목 객체를 활용한 실패 재현 테스트
  • UI 컴포넌트를 위한 스토리북 사용법
  • 깃허브 액션에서의 UI 컴포넌트 테스트와 E2E 테스트

지은이 소개

요시이 다케후미(吉井 健文)

프런트엔드 엔지니어. 프런트엔드 개발 현장의 실무 노하우를 웹사이트(https://zenn.dev/takepepe)에 올리고 있으며, 잡지 《WEB+DB PRESS》에 글을 기고하기도 한다. 저서로 《実践TypeScript(실전 타입스크립트)》, 《実践Next.js(실전 Next.js)》가 있다.

 

옮긴이 소개

원밀리언라인즈코딩(배언수)

국내외 최고의 부트캠프와 온라인 교육 플랫폼에서 신입 개발자들을 양성해왔다. 네이버 부스트캠프, 현대자동차그룹 소프티어 부트캠프, 우아한테크캠프, 원티드 프리온보딩 등에서 교육 및 멘토링 활동을 활발하게 하면서 자료구조 및 알고리즘, 모바일 앱 개발, 데이터 사이언스, 프롬프트 엔지니어링 등의 분야에서 깊이 있는 지식을 공유해왔다. 인프런과 유데미에서 온라인 강의를 하고 있으며, 다양한 기업의 내부 교육을 진행하면서 현업 개발자들의 역량 강화에도 기여하고 있다.

 

차례

옮긴이 머리말 xiii

베타리더 후기 xv

시작하며 xvi

이 책에 대하여 xvii

 

CHAPTER 1 테스트 목적과 장애물 1

1.1 이 책의 구성 1

1.2 테스트를 작성해야 하는 이유 4

1.3 테스트 작성의 장벽 9

 

CHAPTER 2 테스트 방법과 테스트 전략 13

2.1 테스트 범위와 목적 13

2.2 프런트엔드 테스트의 범위 15

2.3 프런트엔드 테스트의 목적 18

2.4 테스트 전략 모델 21

2.5 테스트 전략 계획 23

 

CHAPTER 3 처음 시작하는 단위 테스트 27

3.1 환경 설정 27

더보기

3.2 테스트 구성 요소 28

3.3 테스트 실행 방법 31

3.4 조건 분기 35

3.5 에지 케이스와 예외 처리 37

3.6 용도별 매처 43

3.7 비동기 처리 테스트 48

 

CHAPTER 4 목 객체 53

4.1 목 객체를 사용하는 이유 53

4.2 목 모듈을 활용한 스텁 55

4.3 웹 API 목 객체 기초 59

4.4 웹 API 목 객체 생성 함수 64

4.5 목 함수를 사용하는 스파이 68

4.6 웹 API 목 객체의 세부 사항 72

4.7 현재 시각에 의존하는 테스트 75

 

CHAPTER 5 UI 컴포넌트 테스트 79

5.1 UI 컴포넌트 테스트 기초 지식 79

5.2 라이브러리 설치 82

5.3 처음 시작하는 UI 컴포넌트 테스트 84

5.4 아이템 목록 UI 컴포넌트 테스트 89

5.5 인터랙티브 UI 컴포넌트 테스트 94

5.6 유틸리티 함수를 활용한 테스트 101

5.7 비동기 처리가 포함된 UI 컴포넌트 테스트 108

5.8 UI 컴포넌트 스냅숏 테스트 114

5.9 암묵적 역할과 접근 가능한 이름 118

 

CHAPTER 6 커버리지 리포트 읽기 125

6.1 커버리지 리포트 개요 125

6.2 커버리지 리포트 읽기 127

6.3 커스텀 리포터 132

 

CHAPTER 7 웹 애플리케이션 통합 테스트 135

7.1 Next.js 애플리케이션 개발과 통합 테스트 135

7.2 React Context와 통합 테스트 137

7.3 Next.js 라우터와 렌더링 통합 테스트 141

7.4 Next.js 라우터와 입력 통합 테스트 145

7.5 React Hook Form으로 폼 쉽게 다루기 149

7.6 폼 유효성 검사 테스트 151

7.7 웹 API 응답을 목 객체화하는 MSW 159

7.8 웹 API 통합 테스트 161

7.9 이미지 업로드 통합 테스트 167

 

CHAPTER 8 UI 컴포넌트 탐색기 175

8.1 스토리북 기초 175

8.2 스토리북 필수 애드온 180

8.3 Context API에 의존하는 스토리 등록 185

8.4 웹 API에 의존하는 스토리 등록 188

8.5 Next.js Router에 의존하는 스토리 등록 192

8.6 play function을 활용한 인터랙션 테스트 193

8.7 addon-a11y를 활용한 접근성 테스트 198

8.8 스토리북 테스트 러너 202

8.9 스토리를 통합 테스트에 재사용하기 207

 

CHAPTER 9 시각적 회귀 테스트 211

9.1 시각적 회귀 테스트의 필요성 211

9.2 reg-cli로 이미지 비교하기 214

9.3 스토리캡 도입 218

9.4 reg-suit 도입하기 222

9.5 외부 스토리지 서비스 설정 228

9.6 깃허브 액션에 reg-suit 연동하기 232

9.7 시각적 회귀 테스트를 활용한 적극적 리팩터링 236

 

CHAPTER 10 E2E 테스트 239

10.1 E2E 테스트란 239

10.2 플레이라이트 설치 및 기초 242

10.3 테스트할 애플리케이션 246

10.4 개발 환경에서 E2E 테스트 실행하기 250

10.5 프리즈마를 활용한 테스트 254

10.6 로그인 기능 E2E 테스트 259

10.7 프로필 기능 E2E 테스트 263

10.8 Like 기능 E2E 테스트 266

10.9 신규 작성 페이지 E2E 테스트 269

10.10 기사 편집 페이지 E2E 테스트 272

10.11 게재된 기사 목록 페이지 E2E 테스트 275

10.12 불안정한 테스트 대처 방법 278

 

APPENDIX A 한국어판 부록: 깃허브 액션에서 UI 컴포넌트 테스트 실행하기 281

A.1 깃허브 액션 핸즈온 281

A.2 워크플로 파일 작성법 288

A.3 작업을 병렬처리해서 워크플로 최적화하기 291

 

APPENDIX B 한국어판 부록: 깃허브 액션에서 E2E 테스트 실행하기 299

B.1 깃허브 액션에서 E2E 테스트 실행하기 299

B.2 도커파일 작성법 301

B.3 도커 컴포즈 파일 작성법 304

 

찾아보기 310