Part 1 큰 그림 ... 25 1장 소프트웨어 테스트의 배경지식 ... 27 불명예스러운 소프트웨어 오류 사례에 대한 연구 ... 27 디즈니의 라이온 킹, 1994-1995년 ... 28 인텔 펜티엄 부동 소수점 나눗셈 버그, 1994년 ... 28 NASA 화성 극지 착륙선, 1999년 ... 29 패트리어트 미사일 방어 시스템, 1991년 ... 30 Y2K((2000년) 버그, 1974년 경 ... 30 위험한 미리 보기, 2004년 ... 31 버그란 무엇인가? ... 32 소프트웨어 오류에 대한 용어 ... 32 소프트웨어 버그: 형식적인 정의 ... 33 왜 버그가 발생하는가? ... 35 버그의 비용 ... 37 소프트웨어 테스터의 역할 ... 38 좋은 소프트웨어 테스터의 자질 ... 39 요약 ... 41 퀴즈 ... 41 2장 소프트웨어 개발 절차 ... 42 제품 구성요소 ... 42 소프트웨어 제품에는 어떤 노력이 들어가는가? ... 43 소프트웨어 제품의 구성요소 ... 47 소프트웨어 프로젝트 팀 구성원 ... 48 소프트웨어 개발 생명주기 모델 ... 49 빅뱅 모델 ... 50 짜보고 고치기 모델 ... 51 폭포수 모델 ... 52 나선형 모델 ... 54 요약 ... 56 퀴즈 ... 56 3장 소프트웨어 테스트의 현실 ... 58 테스트의 원리(Testing Axioms) ... 58 프로그램을 완벽하게 테스트하는 것은 불가능하다 ... 59 소프트웨어 테스트는 위험을 수반하는 행위이다 ... 60 테스트로 버그가 존재하지 않는다는 것을 증명할 수는 없다 ... 61 찾은 버그가 많을수록, 존재하는 버그도 많다 ... 62 살충제 내성(Pesticide Paradox) ... 62 발견한 모든 버그들이 수정되지는 않는다 ... 63 버그라고 하기 힘든 버그 ... 64 제품 명세서는 결코 최종본이 아니다 ... 65 소프트웨어 테스터가 프로젝트 팀의 환영받는 구성원은 아니다 ... 66 소프트웨어 테스트는 훈련이 필요한 전문적인 일이다 ... 66 소프트웨어 테스트의 용어와 정의 ... 67 정밀도(Precision)와 정확성(Accuracy) ... 67 검증(Verification)과 유효성(Validation) 확인 ... 69 품질(Quality)과 신뢰성(Reliability) ... 70 테스트와 품질 보증(QA, Quality Assurance) ... 70 요약 ... 71 퀴즈 ... 71 Part 2 테스트의 기본 ... 73 4장 명세 검토 ... 75 시작하면서 ... 75 블랙박스(Black-Box) 테스트와 화이트박스(White-Box) 테스트 ... 77 정적 테스트(Static Test)와 동적 테스트(Dynamic Test) ... 78 정적 블랙박스 테스트: 명세서 테스트 ... 78 명세서에 대한 상위 수준 검토 수행 ... 79 고객의 입장에 서라 ... 79 기존 표준들과 지침(Guideline)에 대한 조사 ... 80 유사 소프트웨어 검토 및 테스트 ... 81 명세서 세부 테스트 기법 ... 82 명세서 속성 체크리스트 ... 82 명세서 용어 체크리스트 ... 83 요약 ... 84 퀴즈 ... 85 5장 블라인드 테스트 ... 86 동적 블랙박스 테스트: 눈 가리고 소프트웨어 테스트하기 ... 87 성공 테스트와 실패 테스트 ... 89 동등 분할(Equivalence Partitioning) ... 90 데이터 테스트 ... 93 경계 조건(Boundary Conditions) ... 94 경계 가장자리 테스트 ... 96 하위 경계 조건 ... 98 기본(Default), 비어 있음(Empty), 공백(Blank), 널(Null), 제로(O), 없음(None) ... 101 유효하지 않은(Invalid), 틀린(Wrong, Incorrect), 쓰레기(Garbage) 데이터 ... 102 상태 테스트 ... 103 소프트웨어 논리 흐름 테스트 ... 104 실패를 위한 상태 테스트 ... 108 다른 블랙박스 테스트 기법들 ... 111 멍청한 사용자가 되어 보라 ... 111 버그가 발견된 곳을 다시 살펴라 ... 112 해커처럼 생각하라 ... 112 경험, 직감 그리고 예감을 따르라 ... 113 요약 ... 113 퀴즈 ... 114 6장 코드 검토 ... 116 정적 화이트박스 테스트: 설계 및 코드 검토 ... 116 공식 검토 ... 117 동료 검토(Peer Reviews) ... 119 워크스루(Walkthroughs) ... 119 검사(Inspections) ... 120 코딩 표준 및 지침 ... 121 프로그래밍 표준과 지침에 대한 예제 ... 121 표준 구하기 ... 124 일반적인 코드 검토 체크리스트 ... 124 데이터 참조 오류 ... 125 데이터 선언 오류 ... 125 연산 오류 ... 126 비교 오류 ... 126 제어 흐름 오류 ... 126 서브루틴 파라미터 오류 ... 127 입출력 오류 ... 127 기타 검사 ... 128 요약 ... 128 퀴즈 ... 129 7장 X-Ray 렌즈를 사용한 소프트웨어 테스트 ... 130 동적 화이트박스 테스트 ... 131 동적 화이트박스 테스트 vs. 디버깅 ... 132 부분 테스트 ... 133 단위 테스트와 통합 테스트 ... 134 모듈 테스트의 예 ... 136 데이터 적용 범위 ... 139 데이터 흐름 ... 139 하위 경계(sub-boundary) ... 140 수식들 ... 141 에러 만들기 ... 141 코드 커버리지 ... 142 프로그램 명령과 라인 범위 ... 144 분기 커버리지 ... 145 조건 커버리지 ... 146 요약 ... 147 퀴즈 ... 148 Part 3 테스트 기법 적용 ... 149 8장 구성(Configuration) 테스트 ... 151 구성 테스트의 개요 ... 152 구성 버그를 찾아내기 ... 155 작업량 결정하기 ... 157 작업에 접근하기 ... 159 어떤 종류의 하드웨어가 필요한지 결정 ... 159 사용 가능한 하드웨어 제조사, 모델, 장치 드라이버 결정 ... 160 가능한 하드웨어 기능, 모드, 옵션 결정 ... 160 관리 가능하도록 하드웨어 구성 줄이기 ... 161 하드웨어 구성과 연관된 소프트웨어 고유의 기능 확인 ... 162 각각의 구성에서 실행할 테스트 절차를 설계 ... 163 각각의 구성에 대해 테스트 실시 ... 164 만족할 만한 결과가 나올 때까지 테스트를 반복 ... 164 하드웨어 구하기 ... 165 하드웨어 표준 확인 ... 166 그 밖의 하드웨어에 대한 구성 테스트 ... 166 요약 ... 167 퀴즈 ... 167 9장 호환성 테스트 ... 169 호환성 테스트의 개요 ... 170 플랫폼과 프로그램의 버전 ... 171 하위 호환성과 상위 호환성 ... 172 다양한 버전을 테스트할 때 생기는 파급 효과 ... 173 표준과 지침 ... 174 고수준 표준과 지침 ... 175 저수준 표준과 지침 ... 176 데이터 공유 호환성 ... 177 요약 ... 179 퀴즈 ... 180 10장 외국어 테스트 ... 181 글과 그림을 이해할 수 있게 만들기 ... 182 번역 문제 ... 182 텍스트가 길어지는 현상 ... 183 ASCII, DBCS 그리고 유니코드 ... 184 핫키와 단축키 ... 185 확장 문자 ... 186 문자들에 대한 계산 ... 186 왼쪽에서 오른쪽 vs. 오른쪽에서 왼쪽 읽기 ... 187 그림에 포함된 텍스트 ... 188 텍스트와 코드의 분리 ... 188 지역화 문제 ... 189 내용 ... 190 데이터 형태 ... 191 구성 문제와 호환성 문제 ... 193 다른 국가용 플랫폼 구성 ... 193 데이터 호환성 ... 195 얼마나 많이 테스트해야 하는가? ... 196 요약 ... 197 퀴즈 ... 198 11장 사용성(Usability) 테스트 ... 199 사용자 인터페이스(UI) 테스트 ... 200 훌륭한 GUI 조건 ... 201 표준과 지침을 준수 ... 202 직관성(intuitive) ... 203 일관성(consistent) ... 204 유연성(flexible) ... 205 편리성(comfortable) ... 207 정확성(correct) ... 207 유용성(useful) ... 209 장애인을 위한 테스트: 접근성 테스트(accessibility testing) ... 209 법적 요구 ... 210 소프트웨어의 접근성 기능 ... 211 요약 ... 213 퀴즈 ... 213 12장 문서 테스트 ... 215 소프트웨어 문서의 종류 ... 215 문서 테스트의 중요성 ... 218 문서 검토시 고려할 사항 ... 219 문서 테스트의 실제 ... 221 요약 ... 221 퀴즈 ... 222 13장 소프트웨어 보안 테스트 ... 224 영화 "War Game" ... 224 동기 이해하기 ... 225 위협 모델링 ... 228 소프트웨어 보안은 기능인가? 보안 허점은 버그인가? ... 231 버퍼 오버런에 대한 이해 ... 232 안전한 문자열 함수 사용하기 ... 233 컴퓨터 법의학(Forensic) ... 236 요약 ... 239 퀴즈 ... 240 14장 웹사이트 테스트 ... 241 웹 페이지의 기본 ... 242 블랙박스 테스트 ... 243 텍스트 ... 245 하이퍼링크 ... 246 그림 ... 247 폼(form) ... 247 개체와 기라 기능들 ... 248 그레이박스 테스트 ... 249 화이트박스 테스트 ... 251 구성 테스트와 호환성 테스트 ... 252 사용성 테스트 ... 254 자동화 입문 ... 257 요약 ... 257 퀴즈 ... 258 Part 4 테스트 도구 ... 259 15장 테스트 자동화 및 테스트 도구 ... 261 자동화 및 도구 사용의 장점 ... 261 테스트 도구(Test Tools) ... 263 뷰어 및 모니터 ... 264 드라이버 ... 265 스텁(Stubs) ... 267 스트레스(Stress) 및 부하 도구(Load Tools) ... 268 간섭 인젝터(Inteference Injectors)와 노이즈 발생기(Noise Generators) ... 269 분석 도구 ... 270 소프트웨어 테스트 자동화 ... 271 매크로(Macro) 기록 및 재생 ... 271 매크로 프로그래밍 ... 273 완전한 프로그래밍이 가능한 테스트 자동화 도구 ... 275 무작위 테스트: 원숭이와 고릴라 ... 277 우둔한 원숭이(Dumb Monkeys) ... 278 보통 원숭이(Semi-Smart Monkeys) ... 280 똑똑한 원숭이(Smart Monkeys) ... 280 테스트 도구와 자동화 사용의 현실 ... 282 요약 ... 283 퀴즈 ... 284 16장 버그 배시 및 베타 테스트 ... 285 다른 사람에 의한 소프트웨어 테스트 ... 285 테스트 공유 ... 287 베타 테스트 ... 288 테스트 아웃소싱(Outsourcing) ... 290 요약 ... 291 퀴즈 ... 292 Part 5 테스트 문서 다루기 ... 293 17장 테스트 작업 계획 ... 295 테스트 계획의 목표 ... 296 테스트 계획의 주제들 ... 297 상위 수준 목표 ... 298 사람, 장소 그리고 기타 ... 299 정의 ... 299 그룹간의 책임 ... 301 테스트할 것과 하지 말아야 할 것 ... 303 테스트 단계 ... 303 테스트 전략 ... 304 자원 요구 사항 ... 304 테스터에게 작업 할당 ... 305 테스트 일정 ... 305 테스트 케이스 ... 307 버그 보고 ... 308 평가 기준과 통계 ... 308 위험과 이슈 ... 308 요약 ... 309 퀴즈 ... 309 18장 테스트 케이스 작성 및 추적 ... 311 테스트 케이스 계획의 목표 ... 311 테스트 케이스 계획 개요 ... 313 테스트 설계 ... 315 테스트 케이스 ... 317 테스트 절차 ... 319 테스트 케이스 구성과 추적 ... 322 요약 ... 324 퀴즈 ... 324 19장 테스트 결과 보고 ... 325 버그 수정하기 ... 326 버그들을 격리(Isolating)하고 재현하기(Reproducing) ... 330 생성된 모든 버그들은 동등하지 않다 ... 332 버그의 생명주기(Life Cycle) ... 334 버그 추적 시스템(Bug-Tracking Systems) ... 338 표준: 테스트 사건 보고서(Test Incident Report) ... 338 수동 버그 보고 및 추적 ... 339 자동화된 버그 보고와 추적 ... 340 요약 ... 345 퀴즈 ... 346 20장 테스트 결과 측정 ... 347 버그 추적 데이터베이스에서 정보 사용하기 ... 347 일일 테스트(Daily Testing)에서 사용할 측정 기준 ... 349 일반적인 프로젝트 수준의 측정 기준 ... 355 요약 ... 361 퀴즈 ... 361 Part 6 미래 ... 363 21장 소프트웨어 품질 보증 ... 365 품질은 공짜다(Quality is free) ... 365 일터에서의 테스트와 품질 보증 ... 367 소프트웨어 테스트 ... 367 품질 보증 ... 369 소프트웨어 테스트 그룹들의 다른 이름들 ... 370 테스트 관리와 조직 구조 ... 371 역량 성숙도 모델(CMM, Capability Maturity Model) ... 374 ISO 9000 ... 376 요약 ... 379 퀴즈 ... 379 22장 소프트웨어 테스터로서의 경력 개발 ... 380 소프트웨어 테스터로서 직업 ... 381 소프트웨어 테스트 직업 찾기 ... 382 실무 경험 얻기 ... 383 정규 훈련 기회 ... 385 웹사이트 ... 386 소프트웨어 또는 소프트웨어 품질을 위한 전문 조직 ... 387 더 읽을거리 ... 387 요약 ... 389 퀴즈 ... 390 부록 A 퀴즈 정답 ... 391 1장 ... 391 2장 ... 392 3장 ... 393 4장 ... 394 5장 ... 395 6장 ... 398 7장 ... 399 8장 ... 400 9장 ... 402 10장 ... 402 11장 ... 404 12장 ... 405 13장 ... 406 14장 ... 407 15장 ... 408 16장 ... 409 17장 ... 410 18장 ... 411 19장 ... 412 20장 ... 413 21장 ... 414 22장 ... 415 Part 1 큰 그림 ... 25 1장 소프트웨어 테스트의 배경지식 ... 27 불명예스러운 소프트웨어 오류 사례에 대한 연구 ... 27 디즈니의 라이온 킹, 1994-1995년 ... 28 인텔 펜티엄 부동 소수점 나눗셈 버그, 1994년 ... 28 NASA 화성 극지 착륙선, 1999년 ... 29 패트리어트 미사일 방어 시스템, 1991년 ... 30 Y2K((2000년) 버그, 1974년 경 ... 30 위험한 미리 보기, 2004년 ... 31 버그란 무엇인가? ... 32 소프트웨어 오류에 대한 용어 ... 32 소프트웨어 버그: 형식적인 정의 ... 33 왜 버그가 발생하는가? ... 35 버그의 비용 ... 37 소프트웨어 테스터의 역할 ... 38 좋은 소프트웨어 테스터의 자질 ... 39 요약 ... 41 퀴즈 ... 41 2장 소프트웨어 개발 절차 ... 42 제품 구성요소 ... 42 소프트웨어 제품에는 어떤 노력이 들어가는가? ... 43 소프트웨어 제품의 구성요소 ... 47 소프트웨어 프로젝트 팀 구성원 ... 48 소프트웨어 개발 생명주기 모델 ... 49 빅뱅 모델 ... 50 짜보고 고치기 모델 ... 51 폭포수 모델 ... 52 나선형 모델 ... 54 요약 ... 56 퀴즈 ... 56 3장 소프트웨어 테스트의 현실 ... 58 테스트의 원리(Testing Axioms) ... 58 프로그램을 완벽하게 테스트하는 것은 불가능하다 ... 59 소프트웨어 테스트는 위험을 수반하는 행위이다 ... 60 테스트로 버그가 존재하지 않는다는 것을 증명할 수는 없다 ... 61 찾은 버그가 많을수록, 존재하는 버그도 많다 ... 62 살충제 내성(Pesticide Paradox) ... 62 발견한 모든 버그들이 수정되지는 않는다 ... 63 버그라고 하기 힘든 버그 ... 64 제품 명세서는 결코 최종본이 아니다 ... 65 소프트웨어 테스터가 프로젝트 팀의 환영받는 구성원은 아니다 ... 66 소프트웨어 테스트는 훈련이 필요한 전문적인 일이다 ... 66 소프트웨어 테스트의 용어와 정의 ... 67 정밀도(Precision)와 정확성(Accuracy) ... 67 검증(Verification)과 유효성(Validation) 확인 ... 69 품질(Quality)과 신뢰성(Reliability) ... 70 테스트와 품질 보증(QA, Quality Assurance) ... 70 요약 ... 71 퀴즈 ... 71 Part 2 테스트의 기본 ... 73 4장 명세 검토 ... 75 시작하면서 ... 75 블랙박스(Black-Box) 테스트와 화이트박스(White-Box) 테스트 ... 77 정적 테스트(Static Test)와 동적 테스트(Dynamic Test) ... 78 정적 블랙박스 테스트: 명세서 테스트 ... 78 명세서에 대한 상위 수준 검토 수행 ... 79 고객의 입장에 서라 ... 79 기존 표준들과 지침(Guideline)에 대한 조사 ... 80 유사 소프트웨어 검토 및 테스트 ... 81 명세서 세부 테스트 기법 ... 82 명세서 속성 체크리스트 ... 82 명세서 용어 체크리스트 ... 83 요약 ... 84 퀴즈 ... 85 5장 블라인드 테스트 ... 86 동적 블랙박스 테스트: 눈 가리고 소프트웨어 테스트하기 ... 87 성공 테스트와 실패 테스트 ... 89 동등 분할(Equivalence Partitioning) ... 90 데이터 테스트 ... 93 경계 조건(Boundary Conditions) ... 94 경계 가장자리 테스트 ... 96 하위 경계 조건 ... 98 기본(Default), 비어 있음(Empty), 공백(Blank), 널(Null), 제로(O), 없음(None) ... 101 유효하지 않은(Invalid), 틀린(Wrong, Incorrect), 쓰레기(Garbage) 데이터 ... 102 상태 테스트 ... 103 소프트웨어 논리 흐름 테스트 ... 104 실패를 위한 상태 테스트 ... 108 다른 블랙박스 테스트 기법들 ... 111 멍청한 사용자가 되어 보라 ... 111 버그가 발견된 곳을 다시 살펴라 ... 112 해커처럼 생각하라 ... 112 경험, 직감 그리고 예감을 따르라 ... 113 요약 ... 113 퀴즈 ... 114 6장 코드 검토 ... 116 정적 화이트박스 테스트: 설계 및 코드 검토 ... 116 공식 검토 ... 117 동료 검토(Peer Reviews) ... 119 워크스루(Walkthroughs) ... 119 검사(Inspections) ... 120 코딩 표준 및 지침 ... 121 프로그래밍 표준과 지침에 대한 예제 ... 121 표준 구하기 ... 124 일반적인 코드 검토 체크리스트 ... 124 데이터 참조 오류 ... 125 데이터 선언 오류 ... 125 연산 오류 ... 126 비교 오류 ... 126 제어 흐름 오류 ... 126 서브루틴 파라미터 오류 ... 127 입출력 오류 ... 127 기타 검사 ... 128 요약 ... 128 퀴즈 ... 129 7장 X-Ray 렌즈를 사용한 소프트웨어 테스트 ... 130 동적 화이트박스 테스트 ... 131 동적 화이트박스 테스트 vs. 디버깅 ... 132 부분 테스트 ... 133 단위 테스트와 통합 테스트 ... 134 모듈 테스트의 예 ... 136 데이터 적용 범위 ... 139 데이터 흐름 ... 139 하위 경계(sub-boundary) ... 140 수식들 ... 141 에러 만들기 ... 141 코드 커버리지 ... 142 프로그램 명령과 라인 범위 ... 144 분기 커버리지 ... 145 조건 커버리지 ... 146 요약 ... 147 퀴즈 ... 148 Part 3 테스트 기법 적용 ... 149 8장 구성(Configuration) 테스트 ... 151 구성 테스트의 개요 ... 152 구성 버그를 찾아내기 ... 155 작업량 결정하기 ... 157 작업에 접근하기 ... 159 어떤 종류의 하드웨어가 필요한지 결정 ... 159 사용 가능한 하드웨어 제조사, 모델, 장치 드라이버 결정 ... 160 가능한 하드웨어 기능, 모드, 옵션 결정 ... 160 관리 가능하도록 하드웨어 구성 줄이기 ... 161 하드웨어 구성과 연관된 소프트웨어 고유의 기능 확인 ... 162 각각의 구성에서 실행할 테스트 절차를 설계 ... 163 각각의 구성에 대해 테스트 실시 ... 164 만족할 만한 결과가 나올 때까지 테스트를 반복 ... 164 하드웨어 구하기 ... 165 하드웨어 표준 확인 ... 166 그 밖의 하드웨어에 대한 구성 테스트 ... 166 요약 ... 167 퀴즈 ... 167 9장 호환성 테스트 ... 169 호환성 테스트의 개요 ... 170 플랫폼과 프로그램의 버전 ... 171 하위 호환성과 상위 호환성 ... 172 다양한 버전을 테스트할 때 생기는 파급 효과 ... 173 표준과 지침 ... 174 고수준 표준과 지침 ... 175 저수준 표준과 지침 ... 176 데이터 공유 호환성 ... 177 요약 ... 179 퀴즈 ... 180 10장 외국어 테스트 ... 181 글과 그림을 이해할 수 있게 만들기 ... 182 번역 문제 ... 182 텍스트가 길어지는 현상 ... 183 ASCII, DBCS 그리고 유니코드 ... 184 핫키와 단축키 ... 185 확장 문자 ... 186 문자들에 대한 계산 ... 186 왼쪽에서 오른쪽 vs. 오른쪽에서 왼쪽 읽기 ... 187 그림에 포함된 텍스트 ... 188 텍스트와 코드의 분리 ... 188 지역화 문제 ... 189 내용 ... 190 데이터 형태 ... 191 구성 문제와 호환성 문제 ... 193 다른 국가용 플랫폼 구성 ... 193 데이터 호환성 ... 195 얼마나 많이 테스트해야 하는가? ... 196 요약 ... 197 퀴즈 ... 198 11장 사용성(Usability) 테스트 ... 199 사용자 인터페이스(UI) 테스트 ... 200 훌륭한 GUI 조건 ... 201 표준과 지침을 준수 ... 202 직관성(intuitive) ... 203 일관성(consistent) ... 204 유연성(flexible) ... 205 편리성(comfortable) ... 207 정확성(correct) ... 207 유용성(useful) ... 209 장애인을 위한 테스트: 접근성 테스트(accessibility testing) ... 209 법적 요구 ... 210 소프트웨어의 접근성 기능 ... 211 요약 ... 213 퀴즈 ... 213 12장 문서 테스트 ... 215 소프트웨어 문서의 종류 ... 215 문서 테스트의 중요성 ... 218 문서 검토시 고려할 사항 ... 219 문서 테스트의 실제 ... 221 요약 ... 221 퀴즈 ... 222 13장 소프트웨어 보안 테스트 ... 224 영화 "War Game" ... 224 동기 이해하기 ... 225 위협 모델링 ... 228 소프트웨어 보안은 기능인가? 보안 허점은 버그인가? ... 231 버퍼 오버런에 대한 이해 ... 232 안전한 문자열 함수 사용하기 ... 233 컴퓨터 법의학(Forensic) ... 236 요약 ... 239 퀴즈 ... 240 14장 웹사이트 테스트 ... 241 웹 페이지의 기본 ... 242 블랙박스 테스트 ... 243 텍스트 ... 245 하이퍼링크 ... 246 그림 ... 247 폼(form) ... 247 개체와 기라 기능들 ... 248 그레이박스 테스트 ... 249 화이트박스 테스트 ... 251 구성 테스트와 호환성 테스트 ... 252 사용성 테스트 ... 254 자동화 입문 ... 257 요약 ... 257 퀴즈 ... 258 Part 4 테스트 도구 ... 259 15장 테스트 자동화 및 테스트 도구 ... 261 자동화 및 도구 사용의 장점 ... 261 테스트 도구(Test Tools) ... 263 뷰어 및 모니터 ... 264 드라이버 ... 265 스텁(Stubs) ... 267 스트레스(Stress) 및 부하 도구(Load Tools) ... 268 간섭 인젝터(Inteference Injectors)와 노이즈 발생기(Noise Generators) ... 269 분석 도구 ... 270 소프트웨어 테스트 자동화 ... 271 매크로(Macro) 기록 및 재생 ... 271 매크로 프로그래밍 ... 273 완전한 프로그래밍이 가능한 테스트 자동화 도구 ... 275 무작위 테스트: 원숭이와 고릴라 ... 277 우둔한 원숭이(Dumb Monkeys) ... 278 보통 원숭이(Semi-Smart Monkeys) ... 280 똑똑한 원숭이(Smart Monkeys) ... 280 테스트 도구와 자동화 사용의 현실 ... 282 요약 ... 283 퀴즈 ... 284 16장 버그 배시 및 베타 테스트 ... 285 다른 사람에 의한 소프트웨어 테스트 ... 285 테스트 공유 ... 287 베타 테스트 ... 288 테스트 아웃소싱(Outsourcing) ... 290 요약 ... 291 퀴즈 ... 292 Part 5 테스트 문서 다루기 ... 293 17장 테스트 작업 계획 ... 295 테스트 계획의 목표 ... 296 테스트 계획의 주제들 ... 297 상위 수준 목표 ... 298 사람, 장소 그리고 기타 ... 299 정의 ... 299 그룹간의 책임 ... 301 테스트할 것과 하지 말아야 할 것 ... 303 테스트 단계 ... 303 테스트 전략 ... 304 자원 요구 사항 ... 304 테스터에게 작업 할당 ... 305 테스트 일정 ... 305 테스트 케이스 ... 307 버그 보고 ... 308 평가 기준과 통계 ... 308 위험과 이슈 ... 308 요약 ... 309 퀴즈 ... 309 18장 테스트 케이스 작성 및 추적 ... 311 테스트 케이스 계획의 목표 ... 311 테스트 케이스 계획 개요 ... 313 테스트 설계 ... 315 테스트 케이스 ... 317 테스트 절차 ... 319 테스트 케이스 구성과 추적 ... 322 요약 ... 324 퀴즈 ... 324 19장 테스트 결과 보고 ... 325 버그 수정하기 ... 326 버그들을 격리(Isolating)하고 재현하기(Reproducing) ... 330 생성된 모든 버그들은 동등하지 않다 ... 332 버그의 생명주기(Life Cycle) ... 334 버그 추적 시스템(Bug-Tracking Systems) ... 338 표준: 테스트 사건 보고서(Test Incident Report) ... 338 수동 버그 보고 및 추적 ... 339 자동화된 버그 보고와 추적 ... 340 요약 ... 345 퀴즈 ... 346 20장 테스트 결과 측정 ... 347 버그 추적 데이터베이스에서 정보 사용하기 ... 347 일일 테스트(Daily Testing)에서 사용할 측정 기준 ... 349 일반적인 프로젝트 수준의 측정 기준 ... 355 요약 ... 361 퀴즈 ... 361 Part 6 미래 ... 363 21장 소프트웨어 품질 보증 ... 365 품질은 공짜다(Quality is free) ... 365 일터에서의 테스트와 품질 보증 ... 367 소프트웨어 테스트 ... 367 품질 보증 ... 369 소프트웨어 테스트 그룹들의 다른 이름들 ... 370 테스트 관리와 조직 구조 ... 371 역량 성숙도 모델(CMM, Capability Maturity Model) ... 374 ISO 9000 ... 376 요약 ... 379 퀴즈 ... 379 22장 소프트웨어 테스터로서의 경력 개발 ... 380 소프트웨어 테스터로서 직업 ... 381 소프트웨어 테스트 직업 찾기 ... 382 실무 경험 얻기 ... 383 정규 훈련 기회 ... 385 웹사이트 ... 386 소프트웨어 또는 소프트웨어 품질을 위한 전문 조직 ... 387 더 읽을거리 ... 387 요약 ... 389 퀴즈 ... 390 부록 A 퀴즈 정답 ... 391 1장 ... 391 2장 ... 392 3장 ... 393 4장 ... 394 5장 ... 395 6장 ... 398 7장 ... 399 8장 ... 400 9장 ... 402 10장 ... 402 11장 ... 404 12장 ... 405 13장 ... 406 14장 ... 407 15장 ... 408 16장 ... 409 17장 ... 410 18장 ... 411 19장 ... 412 20장 ... 413 21장 ... 414 22장 ... 415