서브메뉴

본문

소프트웨어 테스팅
소프트웨어 테스팅
저자 : Ron Patton
출판사 : 정보문화사
출판년 : 2006
정가 : 20000, ISBN : 8956743150

책소개


소프트웨어 테스트에 대한 권위 있는 가이드!

『소프트웨어 테스팅 제2판』은 소프트웨어 개발 프로세스의 중요한 분야에 관해 새로이 테스터가 되고자 하는 사람이나 이 분야에 관해 더 많이 배우고자 하는 소프트웨어 테스터들을 위한 책이다.

오늘날의 소프트웨어는 복잡성과 크기로 인해 고도로 숙련된 프로그래머조차도 안전하고 버그 없는 코드를 만들기가 매우 어렵다. 거의 모든 산업에서 매일 수행하는 작업과 버그의 편재성에 대해 소프트웨어 신뢰성을 높이는 것을 결부시켜 생각해 본다면 보안 위반이나 소프트웨어 버그는 재앙을 의미한다.

목차


Part 1 큰 그림

1장 소프트웨어 테스트의 배경지식
불명예스러운 소프트웨어 오류 사례에 대한 연구
디즈니의 라이온 킹, 1994-1995년
인텔 펜티엄 부동 소수점 나눗셈 버그, 1994년
NASA 화성 극지 착륙선, 1999년
패트리어트 미사일 방어 시스템, 1991년
Y2K(2000년) 버그, 1974년 경
위험한 미리 보기, 2004년
버그란 무엇인가?
소프트웨어 오류에 대한 용어
소프트웨어 버그: 형식적인 정의
왜 버그가 발생하는가?
버그의 비용
소프트웨어 테스터의 역할
좋은 소프트웨어 테스터의 자질
요약
퀴즈

2장 소프트웨어 개발 절차
제품 구성요소
소프트웨어 제품에는 어떤 노력이 들어가는가?
소프트웨어 제품의 구성요소
소프트웨어 프로젝트 팀 구성원
소프트웨어 개발 생명주기 모델
빅뱅 모델
짜보고 고치기 모델
폭포수 모델
나선형 모델
요약
퀴즈

3장 소프트웨어 테스트의 현실
테스트의 원리(Testing Axioms)
프로그램을 완벽하게 테스트하는 것은 불가능하다
소프트웨어 테스트는 위험을 수반하는 행위이다
테스트로 버그가 존재하지 않는다는 것을 증명할 수는 없다
찾은 버그가 많을수록, 존재하는 버그도 많다
살충제 내성(Pesticide Paradox)
발견한 모든 버그들이 수정되지는 않는다
버그라고 하기 힘든 버그
제품 명세서는 결코 최종본이 아니다
소프트웨어 테스터가 프로젝트 팀의 환영받는 구성원은 아니다
소프트웨어 테스트는 훈련이 필요한 전문적인 일이다
소프트웨어 테스트의 용어와 정의
정밀도(Precision)와 정확성(Accuracy)
검증(Verification)과 유효성(Validation) 확인
품질(Quality)과 신뢰성(Reliability)
테스트와 품질 보증(QA, Quality Assurance)
요약
퀴즈


Part 2 테스트의 기본

4장 명세 검토
시작하면서
블랙박스(Black-Box) 테스트와 화이트박스(White-Box) 테스트
정적 테스트(Static Test)와 동적 테스트(Dynamic Test)
정적 블랙박스 테스트: 명세서 테스트
명세서에 대한 상위 수준 검토 수행
고객의 입장에 서라
기존 표준들과 지침(Guideline)에 대한 조사
유사 소프트웨어 검토 및 테스트
명세서 세부 테스트 기법
명세서 속성 체크리스트
명세서 용어 체크리스트
요약
퀴즈

5장 블라인드 테스트
동적 블랙박스 테스트: 눈 가리고 소프트웨어 테스트하기
성공 테스트와 실패 테스트
동등 분할(Equivalence Partitioning)
데이터 테스트
경계 조건(Boundary Conditions)
경계 가장자리 테스트
하위 경계 조건
기본(Default), 비어 있음(Empty), 공백(Blank), 널(Null), 제로(0), 없음(None)
유효하지 않은(Invalid), 틀린(Wrong, Incorrect), 쓰레기(Garbage) 데이터
상태 테스트
소프트웨어 논리 흐름 테스트
실패를 위한 상태 테스트
다른 블랙박스 테스트 기법들
멍청한 사용자가 되어 보라
버그가 발견된 곳을 다시 살펴라
해커처럼 생각하라
경험, 직감 그리고 예감을 따르라
요약
퀴즈

6장 코드 검토
정적 화이트박스 테스트: 설계 및 코드 검토
공식 검토
동료 검토(Peer Reviews)
워크스루(Walkthroughs)
검사(Inspections)
코딩 표준 및 지침
프로그래밍 표준과 지침에 대한 예제
표준 구하기
일반적인 코드 검토 체크리스트
데이터 참조 오류
데이터 선언 오류
연산 오류
비교 오류
제어 흐름 오류
서브루틴 파라미터 오류
입출력 오류
기타 검사
요약
퀴즈

7장 X-Ray 렌즈를 사용한 소프트웨어 테스트
동적 화이트박스 테스트
동적 화이트박스 테스트 vs. 디버깅
부분 테스트
단위 테스트와 통합 테스트
모듈 테스트의 예
데이터 적용 범위
데이터 흐름
하위 경계(sub-boundary)
수식들
에러 만들기
코드 커버리지
프로그램 명령과 라인 범위
분기 커버리지
조건 커버리지
요약
퀴즈


Part 3 테스트 기법 적용

8장 구성(Configuration) 테스트
구성 테스트의 개요
구성 버그를 찾아내기
작업량 결정하기
작업에 접근하기
어떤 종류의 하드웨어가 필요한지 결정
사용 가능한 하드웨어 제조사, 모델, 장치 드라이버 결정
가능한 하드웨어 기능, 모드, 옵션 결정
관리 가능하도록 하드웨어 구성 줄이기
하드웨어 구성과 연관된 소프트웨어 고유의 기능 확인
각각의 구성에서 실행할 테스트 절차를 설계
각각의 구성에 대해 테스트 실시
만족할 만한 결과가 나올 때까지 테스트를 반복
하드웨어 구하기
하드웨어 표준 확인
그 밖의 하드웨어에 대한 구성 테스트
요약
퀴즈

9장 호환성 테스트
호환성 테스트의 개요
플랫폼과 프로그램의 버전
하위 호환성과 상위 호환성
다양한 버전을 테스트할 때 생기는 파급 효과
표준과 지침
고수준 표준과 지침
저수준 표준과 지침
데이터 공유 호환성
요약
퀴즈

10장 외국어 테스트
글과 그림을 이해할 수 있게 만들기
번역 문제
텍스트가 길어지는 현상
ASCII, DBCS 그리고 유니코드
핫키와 단축키
확장 문자
문자들에 대한 계산
왼쪽에서 오른쪽 vs. 오른쪽에서 왼쪽 읽기
그림에 포함된 텍스트
텍스트와 코드의 분리
지역화 문제
내용
데이터 형태
구성 문제와 호환성 문제
다른 국가용 플랫폼 구성
데이터 호환성
얼마나 많이 테스트해야 하는가?
요약
퀴즈

11장 사용성(Usability) 테스트
사용자 인터페이스(UI) 테스트
훌륭한 GUI의 조건
표준과 지침을 준수
직관성(intuitive)
일관성(consistent)
유연성(flexible)
편리성(comfortable)
정확성(correct)
유용성(useful)
장애인을 위한 테스트: 접근성 테스트(accessibility testing)
법적 요구
소프트웨어의 접근성 기능
요약
퀴즈

12장 문서 테스트
소프트웨어 문서의 종류
문서 테스트의 중요성
문서 검토시 고려할 사항
문서 테스트의 실제
요약
퀴즈

13장 소프트웨어 보안 테스트
영화 "War Game"
동기 이해하기
위협 모델링
소프트웨어 보안은 기능인가? 보안 허점은 버그인가?
버퍼 오버런에 대한 이해
안전한 문자열 함수 사용하기
컴퓨터 법의학(Forensic)
요약
퀴즈

14장 웹사이트 테스트
웹 페이지의 기본
블랙박스 테스트
텍스트
하이퍼링크
그림
폼(form)
개체와 기타 기능들
그레이박스 테스트
화이트박스 테스트
구성 테스트와 호환성 테스트
사용성 테스트
자동화 입문
요약
퀴즈


Part 4 테스트 도구

15장 테스트 자동화 및 테스트 도구
자동화 및 도구 사용의 장점
테스트 도구(Test Tools)
뷰어 및 모니터
드라이버
스텁(Stubs)
스트레스(Stress) 및 부하 도구(Load Tools)
간섭 인젝터(Interference Injectors)와 노이즈 발생기(Noise Generators)
분석 도구
소프트웨어 테스트 자동화
매크로(Macro) 기록 및 재생
매크로 프로그래밍
완전한 프로그래밍이 가능한 테스트 자동화 도구
무작위 테스트: 원숭이와 고릴라
우둔한 원숭이(Dumb Monkeys)
보통 원숭이(Semi-Smart Monkeys)
똑똑한 원숭이(Smart Monkeys)
테스트 도구와 자동화 사용의 현실
요약
퀴즈

16장 버그 배시 및 베타 테스트
다른 사람에 의한 소프트웨어 테스트
테스트 공유
베타 테스트
테스트 아웃소싱(Outsourcing)
요약
퀴즈


Part 5 테스트 문서 다루기

17장 테스트 작업 계획
테스트 계획의 목표
테스트 계획의 주제들
상위 수준 목표
사람, 장소 그리고 기타
정의
그룹간의 책임
테스트할 것과 하지 말아야 할 것
테스트 단계
테스트 전략
자원 요구 사항
테스터에게 작업 할당
테스트 일정
테스트 케이스
버그 보고
평가 기준과 통계
위험과 이슈
요약
퀴즈

18장 테스트 케이스 작성 및 추적
테스트 케이스 계획의 목표
테스트 케이스 계획 개요
테스트 설계
테스트 케이스
테스트 절차
테스트 케이스 구성과 추적
요약
퀴즈

19장 테스트 결과 보고
버그 수정하기
버그들을 격리(Isolating)하고 재현하기(Reproducing)
생성된 모든 버그들은 동등하지 않다
버그의 생명주기(Life Cycle)
버그 추적 시스템(Bug-Tracking Systems)
표준: 테스트 사건 보고서(Test Incident Report)
수동 버그 보고 및 추적
자동화된 버그 보고와 추적
요약
퀴즈

20장 테스트 결과 측정
버그 추적 데이터베이스에서 정보 사용하기
일일 테스트(Daily Testing)에서 사용할 측정 기준
일반적인 프로젝트 수준의 측정 기준
요약
퀴즈


Part 6 미래

21장 소프트웨어 품질 보증
품질은 공짜다(Quality is free)
일터에서의 테스트와 품질 보증
소프트웨어 테스트
품질 보증
소프트웨어 테스트 그룹들의 다른 이름들
테스트 관리와 조직 구조
역량 성숙도 모델(CMM, Capability Maturity Model)
ISO 9000
요약
퀴즈

22장 소프트웨어 테스터로서의 경력 개발
소프트웨어 테스터로서 직업
소프트웨어 테스트 직업 찾기
실무 경험 얻기
정규 훈련 기회
웹사이트
소프트웨어 또는 소프트웨어 품질을 위한 전문 조직
더 읽을거리
요약
퀴즈

부록 A 퀴즈 정답