前 言
第一篇 软件测试的原理
第1章 软件及其开发过程
1.1 软件的含义
1.2 软件开发过程的特性
1.2.1 软件开发的基本过程
1.2.2 软件开发过程模型
1.2.3 UML代表着软件建模的发展趋势
1.3 软件测试的重要性
1.3.1 软件所带来的悲剧
1.3.2 其他一些例子
1.3.3 测试是软件开发重要环节之一
第2章 软件测试的基本概念和方法
2.1 软件质量就是客户的满意度
2.1.1 质量的论述
2.1.2 软件质量的内涵
2.2 软件缺陷(Bug)是什么
2.2.1 软件缺陷的定义和种类
2.2.2 软件缺陷的产生
2.2.3 软件缺陷的构成
2.2.4 修复软件缺陷的代价
2.3 软件测试的基本方法
2.3.1 软件测试的原则
2.3.2 白盒测试和黑盒测试
2.3.3 静态的和动态的方法
2.3.4 验证和确认(Verification & Validation)
2.3.5 ALAC测试
2.3.6 自动化测试和随机测试
2.3.7 软件测试的误区
2.4 软件测试的分类和阶段
2.4.1 测试的分类
2.4.2 测试的阶段
2.5 软件测试的工作范畴
2.5.1 测试计划制定
2.5.2设计测试用例
2.5.3执行测试
2.5.4测试结果分析和质量报告
第3章 质量保证与测试策略
3.1软件质量保证
3.1.1 S QA 概述
3.1.2 S QA 活动
3.1.3 SQS与软件测试的关系
3.2测试策略
3.2.1 测试策略的概念
3.2.2 影响测试策略的因素
3.2.3 测试策略的确定
3.3测试计划
3.3.1测试计划内容构成
3.3.2 通用测试计划模板
3.4软件质量的可靠性评估
3.4.1 软件可靠性评估的概述
3.4.2软件可靠性模型
3.4.2 可靠性评估过程
第4章 软件测试依据和规范
4.1 软件质量标准
4.1.1 ISO质量体系标准简介
4.1.2 ISO/GB软件质量体系标准
4.1.3 ISO9000-3介绍
4.2 软件测试相关规范
4.2.1概述
4.2.2软件测试规范
4.3 CMM思想和结构体系
4.3.1 CMM的历史
4.3.2 CMM的五个等级及关键过程域
4.3.3 各个关键过程域的说明
4.3.4 CMM与ISO9001思想与结构体系的关系
4.4 建立软件测试管理和评判体系
4.4.1软件测试的管理和评判体系现状
4.4.2 建立软件测试管理和评判体系
第二篇 软件测试的技术
第5章 单元测试
5.1 什么是单元测试
5.1.1 单元测试的定义
5.1.2 为何要进行单元测试
5.2 单元测试的目标和任务
5.2.1 单元测试的目标
5.2.2 单元测试任务包括
5.3 静态测试技术的运用
5.3.1 编码的标准和规范
5.3.2 走查
5.3.3 审查
5.3.4 评审
5.4 动态测试技术的运用
5.4.1 白盒测试方法
5.4.2 黑盒测试方法
5.5 调试与评估
5.6 单元测试的过程与文档管理
5.7 单元测试的常用工具简介
第6章 集成测试和系统测试
6.1 系统集成的模式与方法
6.1.1集成测试前的准备
6.1.2集成测试的模式
6.1.3自顶向下和自底向上集成方法
6.1.4大棒与三明治集成方法
6.1.5持续集成
6.2 功能测试
6.2.1功能测试的目的和内容
6.2.2功能测试的方法
6.3 系统测试
6.3.1系统测试的内容
6.3.2回归测试
6.4 压力测试、容量测试和性能测试
6.4.1压力测试
6.4.2容量测试
6.4.3性能测试
6.5安全性测试,可靠性和容错性测试
6.5.1安全性测试
6.5.2可靠性测试
6.5.3容错性测试
第7章 验收测试
7.1验收测试的过程和主要内容
7.2产品说明书的验证
7.2.1 产品说明书的审核
7.2.2 产品说明书的验证
7.3用户界面和可用性测试
7.4兼容性测试
7.4.1 软件兼容性测试
7.4.2 数据共享兼容性测试
7.4.3 硬件兼容性测试
7.5可安装性和可恢复性测试
7.6文档测试
7.6.1 文档的种类
7.6.2 文档测试的重要性
7.6.3 怎样进行文档测试
7.7验收测试报告和用户验收测试
第8章 面向对象软件的测试
8.1 面向对象软件的特点
8.2面向对象测试的层次与数据流
8.2.1 类与子类的测试
8.2.2分层与增量
8.2.3面向对象层次结构测试重点
8.3 面向对象的单元测试
8.3.1面向对象软件测试与传统软件的不同
8.3.2 类测试
8.4面向对象的集成测试
8.4.1 对象交互
8.4.2 面向对象集成测试的常用方法
8.4.3.分布式对象测试
第9章 应用服务器的测试
9.1 应用服务器的分类和特征
9.1.1 应用服务器的分类
9.1.2 C/S和B/S结构描述
9.1.3 三层和多层结构
9.2 基于Web服务器应用的测试
9.2.1 常用的Web元素功能测试
9.2.2 Web安全性测试
9.2.3 Web负载测试
9.3 基于数据库应用服务器的测试
9.3.1 数据库服务器性能测试
9.3.2 数据库并发控制
9.4 基于J2EE平台的测试
9.4.1 J2EE概述
9.4.2 基于J2EE应用的单元测试技术
9.4.2.1. 测试原则
9.4.2.2. 测试步骤
9.4.2.3. Junit框架简介
9.4.3 实用对象的单元测试
9.4.4 事务对象的单元测试
9.4.5 Servlet的单元测试
9.4.6 其他单元测试
9.5 其他应用服务器应用的测试
第10章 软件本地化测试 (2.0万字)
10.1什么是软件本地化
10.1.1 软件本地化与国际化
10.1.2软件本地化与翻译
10.1.3 软件本地化基本步骤
10.1.4 软件本地化测试
10.2软件本地化的翻译问题
10.3软件本地化测试的技术问题
10.3.1 字符集问题
10.3.2 数据格式
10.3.3. 页面显示和布局
10.3.4 配置和兼容性问题
10.4本地化测试的重点
10.4.1 翻译所产生的问题
10.4.2 功能的实现
10.4.3 对本地化测试人员的要求
第11章 软件测试自动化 (3.0万字)
11.1测试自动化的内涵
11.1.1 为什么要软件测试自动化
11.1.2自动化测试的引入和应用
11.1.3测试自动化的基本结构
11.1.4 测试自动化的原理和方法
11.1.5 测试自动化普遍存在的问题
11.2 测试工具的分类和选择
11.2.1 测试工具的分类
11.2.2 测试工具的选择
11.3 测试工具的主流产品介绍
11.3.1 面向开发的单元测试工具
11.3.2 负载和性能测试工具
11.3.3 GUI功能测试工具
11.3.4 基于Web应用的测试工具
11.3.5 软件测试管理和其他工具
11.4 IBM-Rational产品的整体解决方案
11.4.1 Rational测试产品结构
11.4.2 Rational 全套测试解决方案的特点
11.5 Mercury Interactive产品的整体解决方案
11.5.1 MI产品结构
11.5.2 MI三个重量级产品的介绍
11.6 Compuware产品的整体解决方案
11.6.1 Compuware产品结构
11.6.2 Compuware分阶段解决方案
第三篇 软件测试的实践
第12章 组建测试队伍
12.l 测试队伍的地位和责任
12.1.1 软件测试团队的任务
12.1.2 测试团队的规模
12.2测试团队的构成
12.2.1 测试团队的基本构成
12.2.2 测试人员的责任
12.2.3 测试团队的组织模型
12.3如何从零开始
12.3.1建立测试团队的正确观念
12.3.2测试人员的招聘
12.3.3测试新人的培训
12.4测试团队的管理和发展
12.4.1树立良好的测试团队意识
12.4.2测试团队的激励方法
12.4.3 从PSP到TSP
12.4.4知识共享和在岗培训
12.5优秀软件测试工程师的必备素质
第13章 测试环境的建立
13.1 测试环境的重要性
13.2 测试环境的各要素
13.2.1 产品的使用环境对测试环境的影响
13.2.2 主测试环境与辅测试环境
13.2.3 测试环境的五要素
13.3 建立测试实验室
13.3.1 建立测试实验室的必要性
13.3.2 选择和规划实验室
13.3.3 集成和配置测试设备
13.4 测试环境的维护和管理
第14章 软件测试用例的设计
14.1 测试用例概述
14.1.1 测试用例的重要性
14.1.2 测试用例的书写标准
14.1.3 测试用例设计考虑因素
14.1.4 测试用例设计的基本原则
14.2 白盒测试用例设计方法
14.2.1 逻辑覆盖法
14.2.2 基本路径测试法
14.3 黑盒测试用例设计方法
14.3.1 等价类划分法
14.3.2 边界值分析法
14.3.3 因果图法
14.3.4 错误推测法
14.3.5 功能图法
14.4 测试用例的组织和跟踪
14.4.1 组织测试用例
14.4.2 跟踪测试用例
14.4.3 维护测试用例
14.4.4 测试用例的覆盖率
第15章 报告所发现的软件缺陷
15.l 软件缺陷的描述
15.1.1软件缺陷的基本描述
15.1.2 软件缺陷属性
15.2 软件缺陷相关的信息
15.2.1 软件缺陷的图片、记录信息
15.2.2 分离和再现软件缺陷
15.3 软件缺陷的处理和跟踪
15.3.1 软件缺陷生命周期
15.3.2 软件缺陷处理技巧
15.3.3 软件缺陷跟踪系统
15.3.4 缺陷跟踪的方法和图表
第16章 测试和软件质量分析报告
16.1软件产品的质量度量
16.1.1 软件度量的内容和分类
16.1.2 软件度量的分工和过程
16.1.3 软件质量模型
16.1.4 软件质量的度量
16.1.5 质量度量的统计方法
16.2评估系统测试的覆盖程度
16.2.1 对软件需求的估算
16.2.2 基于需求的测试覆盖评估
16.2.3 基于代码的测试覆盖评估
16.3软件缺陷分析方法
16.3.1 缺陷分布报告
16.3.2 缺陷趋势报告
16.4 基于缺陷分析的产品质量评估
16.4.1 经典的种子公式
16.4.2 基于缺陷清除率的估算方法
16.4.3 软件产品性能评估
16.4.4 借助工具的方法
16.5 测试报告及其模板
第17章 软件测试项目管理
17.1软件测试项目管理的概述
17.1.1 软件项目管理的共性
17.1.2 软件测试项目管理的特点
17.2 软件测试项目的组织
17.3软件测试项目的过程管理
17.3.1测试计划阶段
17.3.2 软件测试设计和开发
17.3.3 测试执行阶段
17.4软件测试项目的资源管理
17.5 测试项目的进度管理
17.5.1 测试项目的里程碑和关键路径
17.5.2 测试项目进度的特性及外在关系
17.5.3 测试项目进度的管理方法和工具
17.6 测试项目的风险管理
17.7 测试项目的质量管理和配置管理
17.8 软件测试文档的管理
附录A 软件测试中英文术语及中文解释
附录B 质量管理体系——要求 (国家标准GB/T 19001-2000, Idt ISO 9001:2000)
附录C信息技术-软件包 质量要求和测试 (国家标准GB/T 17544-1998,Idt ISO/IEC 12119:1994)
附录D 测试计划模板
附录E C++ Inspection Checklist
附录F Java Code Inspection Checklist