웹 애플리케이션을 테스트하는 것은 프런트엔드 개발자에게 결코 쉬운 일이 아니다. 다만, 테스트 자동화 프레임워크의 기능을 적극 활용한다면 그 수고를 최소한으로 줄일 수 있다. 다행히도 웹 애플리케이션이 복잡해지면서 테스트 자동화도 함께 발전하고 있다. 이 책은 셀레늄, 사이프러스, 퍼피티어, 플레이라이트 같은 강력한 프레임워크를 소개하고, 해당 프레임워크의 테스트 커버리지 기능을 활용하기 위한 가이드 역할을 한다. 현재 시장을 주도하고 있는 4개 주요 오픈소스 테스트 자동화 프레임워크의 고유한 기능과 그 장단점을 살펴보고, 앱의 변경에도 중단되지 않는 테스트를 생성하도록 각 프레임워크를 설정하는 방법을 알아보자.
Contents
지은이·옮긴이 소개 xi
기술 감수자 소개 xii
옮긴이 머리말 xiii
베타리더 후기 xiv
추천사 xvi
이 책에 대하여 xvii
PART I 프런트엔드 웹 테스트 소개
CHAPTER 1 특정 브라우저에 종속되지 않는 테스트 방법론 3
1.1 웹 개발 환경 3
1.2 웹 애플리케이션의 유형 이해하기 5
__1.2.1 전통적 웹 애플리케이션 5
__1.2.2 반응형 웹 애플리케이션 6
__1.2.3 프로그레시브 웹 애플리케이션 8
1.3 웹 애플리케이션을 위한 테스트 유형 10
__1.3.1 웹 애플리케이션의 기능성 테스트 10
__1.3.2 웹 애플리케이션의 비기능성 테스트 11
1.4 앱 개발과 테스트를 위한 헤드 및 헤드리스 브라우저 이해하기 13
__1.4.1 헤드 브라우저와 헤드리스 브라우저 선택하기 13
__1.4.2 헤드리스 브라우저 테스트 프레임워크 16
1.5 요약 19
CHAPTER 2 프런트엔드 웹 개발자가 직면하는 도전 과제 21
2.1 웹 개발 시 직면하는 도전 과제 22
__2.1.1 품질 vs 속도 23
2.2 웹 개발자들의 대상 플랫폼 선택 문제 24
2.3 웹 애플리케이션 개발 시 비기능성 문제 29
__2.3.1 성능 문제 29
__2.3.2 접근성 문제 30
2.4 웹 애플리케이션의 규정 문제 31
2.5 요약 34
CHAPTER 3 대표적인 테스트 자동화 프레임워크 35
3.1 웹 테스트 시장의 개요 36
3.2 셀레늄 프레임워크 시작하기 38
__3.2.1 셀레늄 웹드라이브 설치하기 39
__3.2.2 셀레늄 그리드 실행하기 42
3.3 사이프러스 프레임워크 시작하기 45
__3.3.1 사이프러스의 주요 기능 47
3.4 구글 퍼피티어 프레임워크 시작하기 50
3.5 마이크로소프트 플레이라이트 프레임워크 시작하기 53
3.6 요약 55
CHAPTER 4 테스트 담당자와 유형별 테스트 자동화 프레임워크의 선택 57
4.1 필요한 환경 및 코드 58
4.2 웹 테스트 담당자의 개요 58
4.3 테스트 자동화 프레임워크 선택 시 고려해야 할 요소 및 사례 60
__4.3.1 커뮤니티 기반 60
__4.3.2 테스트 확장성 61
__4.3.3 툴 스택 연동 및 플러그인 61
__4.3.4 사용 및 도입의 용이성 61
__4.3.5 재사용성 및 유지관리 62
__4.3.6 보고서, 테스트 분석, 지능형 62
4.4 테스트 자동화 평가 매트릭스 63
4.5 요약 66
CHAPTER 5 주요 프런트엔드 웹 개발 프레임워크의 소개 67
5.1 필요한 환경 및 코드 68
5.2 주요 웹 개발 프레임워크의 소개 68
5.3 웹 개발 프레임워크의 선택 가이드라인 69
__5.3.1 리액트 70
__5.3.2 AngularJS 74
__5.3.3 Vue.js 76
__5.3.4 Ember.js 78
__5.3.5 스벨트 80
5.4 요약 81
PART II 웹 애플리케이션 개발자를 위한 지속적인 테스트 전략
CHAPTER 6 웹 애플리케이션을 위한 개발 테스트 전략과 핵심 고려사항 85
6.1 웹 애플리케이션 테스트 계획과 전략 시 핵심 고려사항 85
__6.1.1 대상 사용자 알기 87
__6.1.2 테스트 계획 수립하기 87
__6.1.3 툴 스택 및 환경 준비하기 88
__6.1.4 품질 기준 및 목표 정하기 88
__6.1.5 일정 88
__6.1.6 실행, 감시, 측정, 문서화 88
6.2 지속적인 테스트 전략의 성공 여부 측정 89
6.3 사례: 실제 웹 애플리케이션의 테스트 전략 91
6.4 요약 93
CHAPTER 7 주요 자바스크립트 기반 테스트 자동화 프레임워크의 핵심 기능 95
7.1 테스트 자동화 프레임워크의 기능 비교 95
__7.1.1 시각적 테스트 96
__7.1.2 API 테스트 99
__7.1.3 지원하는 개발 언어 101
__7.1.4 모바일 장치 테스트 102
__7.1.5 성능 테스트 104
__7.1.6 접근성 테스트 107
__7.1.7 네트워크 제어 테스트와 목 서비스 109
__7.1.8 웹 요소 처리 111
__7.1.9 CI/CD 통합 116
7.2 테스트 자동화 프레임워크의 재평가 116
7.3 요약 117
CHAPTER 8 웹 애플리케이션의 테스트 커버리지 측정 119
8.1 코드 커버리지 및 테스트 커버리지 소개 119
__8.1.1 테스트 커버리지 120
__8.1.2 코드 커버리지 121
8.2 웹 애플리케이션 개발자를 위한 자바스크립트 코드 커버리지 툴 122
__8.2.1 이스탄불과 사이프러스를 사용한 자바스크립트 코드 커버리지 측정 123
8.3 테스트 커버리지를 사용한 코드 커버리지 보완 127
8.4 요약 127
PART III 프 런트엔드 자바스크립트 테스트 자동화 프레임워크 가이드
CHAPTER 9 셀레늄 프레임워크 사용하기 131
9.1 필요한 환경 및 코드 132
9.2 셀레늄 프레임워크와 개별 컴포넌트 이해하기 132
__9.2.1 셀레늄 웹드라이버 132
__9.2.2 셀레늄 그리드 133
__9.2.3 셀레늄의 고급 기능 135
__9.2.4 셀레늄의 다양한 테스트 방법 140
9.3 셀레늄 프레임워크의 미래 145
9.4 요약 146
CHAPTER 10 사이프러스 프레임워크 사용하기 147
10.1 필요한 환경 및 코드 148
10.2 사이프러스 시작하기 148
__10.2.1 사이프러스 GUI 148
__10.2.2 사이프러스 IDE와 명령줄 실행 150
10.3 사이프러스 고급 테스트 자동화 기능 153
__10.3.1 사이프러스 테스트 재시도 154
__10.3.2 사이프러스의 스텁, 스파이, 클록 사용하기 155
__10.3.3 사이프러스와 CI 연동하기 157
__10.3.4 컴포넌트 테스트 158
__10.3.5 사이프러스 스튜디오 159
__10.3.6 사이프러스 플러그인 162
__10.3.7 사이프러스 API 테스트 164
10.4 사이프러스 프레임워크의 미래 165
10.5 요약 166
CHAPTER 11 플레이라이트 프레임워크 사용하기 169
11.1 필요한 환경 및 코드 170
11.2 플레이라이트 시작하기 170
11.3 플레이라이트 고급 테스트 자동화 기능 173
__11.3.1 플레이라이트 검사기 174
__11.3.2 모바일 장치 에뮬레이션하기 175
__11.3.3 플레이라이트 테스트 애너테이션 177
__11.3.4 플레이라이트 API 테스트 178
__11.3.5 플레이라이트 어서션 179
__11.3.6 플레이라이트 네트워크 모크 180
__11.3.7 플레이라이트 POM 181
__11.3.8 플레이라이트 테스트 보고서 181
__11.3.9 플레이라이트 테스트 실행기 182
__11.3.10 플레이라이트 추적 뷰어 183
__11.3.11 플레이라이트 고급 설정 184
__11.3.12 플레이라이트와 CI 연동 187
11.4 플레이라이트 프레임워크의 미래 188
11.5 요약 190
CHAPTER 12 퍼피티어 프레임워크 사용하기 191
12.1 필요한 환경 및 코드 192
12.2 퍼피티어 시작하기 192
12.3 퍼피티어의 고급 테스트 자동화 기능 196
__12.3.1 퍼피티어 네임스페이스 196
__12.3.2 퍼피티어의 웹 요소 사용하기 197
__12.3.3 퍼피티어 부하 테스트 200
__12.3.4 퍼피티어와 큐컴버 BDD 201
__12.3.5 퍼피티어 접근성 테스트 202
__12.3.6 퍼피티어 웹 애플리케이션 추적 204
__12.3.7 퍼피티어 API 테스트 204
__12.3.8 퍼피티어 구글 개발자 도구 205
__12.3.9 퍼피티어와 CodeceptJS 연동 206
__12.3.10 퍼피티어 테스트와 CI 연동 208
12.4 퍼피티어 프레임워크의 미래 209
12.5 요약 211
CHAPTER 13 로코드 테스트 자동화로 코드 기반 테스트 보완하기 213
13.1 로코드/코드리스 테스트 툴의 핵심적인 기능 214
13.2 오픈소스 코드리스 툴의 개요 216
__13.2.1 오픈소스 코드리스 툴의 종류 217
13.3 웹 애플리케이션용 주요 코드리스 테스트 툴 224
__13.3.1 퍼펙토 스크립트리스 웹의 개요 224
__13.3.2 테스팀 코드리스 웹 툴의 개요 227
__13.3.3 메이블 코드리스 웹 애플리케이션 툴 개요 232
13.4 요약 237
CHAPTER 14 마치며 239
14.1 이 책을 통해 얻을 수 있는 것 240
14.2 유용한 참고문서 및 북마크 241
__14.2.1 사이프러스 프레임워크 관련 241
__14.2.2 플레이라이트 프레임워크 관련 242
__14.2.3 셀레늄 프레임워크 관련 242
__14.2.4 퍼피티어 프레임워크 관련 242
찾아보기 244
Author
에란 킨스브루너,김완섭
퍼포스 소프트웨어의 수석 디렉터. DevOps.com이 선정한 2021년 데브옵스 에반젤리스트 중 한 명이기도 하다. 썬 마이크로시스템즈, 뉴스타, 텍사스 인스트루먼트, 제너럴 일렉트릭 등에서 수년간 개발 및 테스트 업무를 담당했으며, 소프트웨어 개발 및 테스트 커뮤니티에도 활발하게 참여하고 있다. 저서로는 《The Digital Quality Handbook(디지털 품질 핸드북)》, 《Continuous Testing for DevOps Professionals(DevOps 전문가를 위한 지속적 테스트)》, 《Accelerating Software Quality(소프트웨어 품질 가속화)》가 있다.
퍼포스 소프트웨어의 수석 디렉터. DevOps.com이 선정한 2021년 데브옵스 에반젤리스트 중 한 명이기도 하다. 썬 마이크로시스템즈, 뉴스타, 텍사스 인스트루먼트, 제너럴 일렉트릭 등에서 수년간 개발 및 테스트 업무를 담당했으며, 소프트웨어 개발 및 테스트 커뮤니티에도 활발하게 참여하고 있다. 저서로는 《The Digital Quality Handbook(디지털 품질 핸드북)》, 《Continuous Testing for DevOps Professionals(DevOps 전문가를 위한 지속적 테스트)》, 《Accelerating Software Quality(소프트웨어 품질 가속화)》가 있다.