PART 01 <B><FONT color ... #0000 CHAPTER 01 소프트웨어의 품질과 테스팅 1.1 개요 ... 20 1.2 소프트웨어의 품질 요소 ... 25 1) 운영상 적합성 여부를 나타내는 품질 요소 ... 26 2) 변경하기 쉬운지를 나타내는 품질 요소 ... 27 3) 활용도를 높이기 쉬운지를 나타내는 품질 요소 ... 28 1.3 소프트웨어 결함의 예방 ... 31 1.4 테스팅이 어려운 이유 ... 35 1) 소프트웨어의 복잡도 ... 35 2) 불완전한 명세의 문제 ... 36 3) 테스트를 위한 작동 환경 구축의 어려움 ... 37 4) 소프트웨어 고유의 특성에 따른 문제 ... 38 5) 테스트 마인드의 부재 ... 39 CHAPTER 02 <B><FONT color ... #0000 2.1 개요 ... 42 2.2 소프트웨어 에러, 결함과 고장 ... 43 2.3 테스팅의 유형 ... 45 1) 테스팅의 목적에 따른 분류 ... 45 2) 테스트 기반에 따른 분류 ... 46 3) 테스트 설계 기법에 따른 분류 ... 47 4) 테스트 수준에 따른 분류 ... 47 2.4 체계적 테스트의 예 ... 48 1) 기능적 테스트의 실행 과정 ... 49 2) 구조적 테스트의 실행 과정 ... 50 2.5 테스팅의 한계 ... 53 CHAPTER 03 소프트웨어 테스트 프로세스 3.1 개요 ... 58 3.2 테스트의 절차 ... 60 1) 테스트의 설계 ... 60 2) 테스트의 실행 ... 61 3) 테스트의 결과 평가 ... 62 3.3 테스트 케이스의 설계 ... 63 3.4 테스트 오라클 ... 65 3.5 테스트 기준 ... 68 3.6 테스트 프로세스의 자동화 ... 72 1) 개발 초기 단계에 사용되는 테스트 도구 ... 74 2) 개발 중간 단계에서 사용되는 테스트 도구 ... 74 3) 개발 후기 단계에서 사용되는 테스트 도구 ... 75 4) 모든 개발 단계에서 사용되는 테스트 관리 도구 ... 76 5) 테스트 유틸리티 ... 76 3.7 테스트 프로세스의 개선 ... 77 CHAPTER 04 소프트웨어 정적 분석 기법 4.1 정적 분석 ... 82 4.2 소프트웨어 에러 유형 ... 83 4.3 검토 기법 ... 85 1) 개별 검토(Self Review) ... 85 2) 동료 검토(Peer Review) ... 86 3) 워크스루(Walkthrough) ... 86 4.4 공식 검토회 ... 88 4.5 사열과 감리 ... 90 4.6 기호 실행 기법 ... 91 4.7 프로그램의 정확성 증명법 ... 95 PART 02 명세서 기반 테스트 설계 기법 CHAPTER 05 분할 테스트 5.1 개요 ... 109 5.2 분할 테스트 ... 113 5.3 분할 테스트 설계의 예 ... 116 5.4 경계치 테스트 ... 120 5.5 경계치 테스트 설계의 예 ... 121 5.6 테스트 데이터의 조합 방법 ... 124 CHAPTER 06 기타 명세 기반 테스팅 기법 6.1 개요 ... 130 6.2 결정표 테스팅 ... 130 6.3 결정표 테스트의 예 ... 136 6.4 원인 결과 그래프 ... 138 6.5 랜덤(Random) 테스트 ... 140 6.6 상태에 기반을 둔 테스팅 ... 142 6.7 문법에 기반을 둔 테스트 ... 146 PART 03 코드 기반 테스트 설계 기법 CHAPTER 07 문장 테스트와 분기 테스트 7.1 개요 ... 150 7.2 제어 흐름 그래프 ... 152 7.3 문장 테스트 ... 157 7.4 문장 테스트 설계의 예 ... 159 7.5 분기 테스트 ... 162 7.6 분기 테스트 설계의 예 ... 164 7.7 조건 테스트 ... 166 1) 조건 테스트 ... 167 2) 조건-결정 테스트 ... 167 3) 다중 조건 테스트 ... 167 4) 개선된 조건-결정 테스트 ... 168 7.8 조건 테스트 설계의 예 ... 169 CHAPTER 08 경로 테스트 8.1 개요 ... 172 8.2 독립적 경로 ... 173 8.3 루프 테스트 ... 177 1) 조건부 반복 구조의 테스트 ... 177 2) 일반적인 반복 구조의 테스팅 ... 177 8.4 경로 테스트 설계의 예 ... 179 8.5 데이터 흐름 테스트 ... 181 8.6 테스트 커버리지 ... 184 1) 테스트 수행 수준 평가 ... 184 2) Assertion 기법 ... 184 3) 테스트 케이스의 설계 ... 188 4) 테스트 케이스의 보완 ... 188 5) 테스트 케이스와 테스트 프로세스의 평가 ... 188 6) 테스트 종결 기준 ... 189 7) 테스트 케이스 관리 ... 189 PART 04 소프트웨어 테스트의 수행 CHAPTER 09 단위 테스트와 통합 테스트 9.1 개요 ... 198 9.2 단위 테스트 ... 200 9.3 단위 테스트의 진행 ... 202 9.4 단위 테스트 드라이버 ... 205 9.5 다른 형태의 단위 테스트 ... 206 9.6 테스트 주도형 소프트웨어 개발 ... 208 9.7 통합 테스트 ... 214 1) 해석상의 에러 ... 216 2) 인터페이스 에러 ... 217 CHAPTER 10 시스템 차원의 테스트 10.1 개요 ... 220 10.2 기능 테스트 ... 222 10.3 시스템 테스트의 유형 ... 224 1) 시스템이 운영 목적에 적합한지 여부 ... 226 2) 시스템을 수정하기 쉬운지 여부 ... 228 3) 시스템의 상호운용 가능성 ... 229 4) 시스템의 운영 지원 용이성 ... 230 5) 기타 시스템 테스트 항목 ... 232 10.4 신뢰성 테스트 ... 232 1) 구현상의 결함으로 인한 고장 ... 233 2) 허용되지 않은 입력에 의한 고장 ... 233 3) 비정상적인 작동 조건으로 인한 고장 ... 235 4) 가용 메모리 부족 또는 메모리 훼손에 의한 고장 ... 236 10.5 인도 직전의 테스트 ... 237 10.6 인도 이후의 테스트 ... 238 CHAPTER 11 회귀 테스트 11.1 개요 ... 240 11.2 회귀 테스트 전략 ... 241 11.3 회귀 테스트 절차 ... 242 11.4 회귀 테스트 케이스 선별 방법 ... 243 1) 슬라이싱 기법 ... 243 2) 데이터 흐름 기법 ... 243 3) 클러스터 식별 기법 ... 244 4) System Dependence Graph 기법 ... 244 5) Firewall 기법 ... 244 11.5 회귀 테스트 시스템 ... 244 CHAPTER 12 소프트웨어 테스트 관리와 품질 보증 12.1 개요 ... 248 12.2 소프트웨어 결함 관리 ... 249 12.3 테스트 인력 관리 ... 255 12.4 소프트웨어 테스트 계획 수립 ... 257 12.5 독립적 테스팅 ... 261 12.6 소프트웨어 품질 보증 ... 263 12.7 검증과 확인 ... 265 PART 05 <B><FONT color ... #0000 CHAPTER 13 결함 기반 테스팅 13.1 개요 ... 270 13.2 변종 분석법 ... 271 13.3 변종 분석의 비용 절감 기법 ... 275 13.4 변종 분석 시스템 ... 277 CHAPTER 14 객체지향 <B><FONT color ... #0000 14.1 개요 ... 280 14.2 객체 지향 시스템의 테스팅 차원 ... 281 14.3 클래스 테스팅 ... 282 14.4 상속 관계의 테스팅 ... 285 14.5 컴포넌트 <B><FONT color ... #0000 CHAPTER 15 실시간 임베디드 <B><FONT color ... #0000 15.1 개요 ... 290 15.2 실시간 시스템 테스팅 ... 292 15.3 임베디드 <B><FONT color ... #0000 연습문제 ... 295 참고문헌 ... 307 찾아보기 ... 317