目录 1
编写说明 1
第1章 软件测试概述 1
1.1 软件测试背景 1
1.1.1 软件缺陷与定义 1
1.1.2 软件缺陷产生的原因 5
1.1.3 软件缺陷修复的代价 6
1.2 软件测试的定义、目的和原则 7
1.2.1 软件测试的定义 7
1.2.2 软件测试的对象 8
1.2.3 软件测试的分类 8
1.2.4 软件测试的目的和原则 8
1.2.5 软件测试技术的发展 10
1.3 软件工程与开发过程 11
1.3.1 软件产品的组成 11
1.3.2 软件项目组成员 14
1.3.3 软件开发方法及过程 15
1.4 软件开发与软件测试的关系 20
1.4.1 测试与开发各阶段的关系 20
1.4.2 测试与开发的并行性 20
1.4.3 完整的软件开发流程 21
1.5 软件测试职业与素质 21
1.5.1 软件测试职业和职位 21
1.5.2 软件测试员工作目标与必备素质 22
1.6 软件质量管理与评价 23
1.6.1 软件质量管理简介 23
1.6.2 软件能力成熟度模型(CMM,Capability Maturity Model) 28
1.6.3 ISO 9000标准简介 33
习题与思考 35
第2章 软件测试基础 36
2.1 软件测试的复杂性分析 36
2.1.1 无法对程序进行完全测试 36
2.1.4 杀虫剂现象 37
2.1.3 存在的故障现象与发现的故障数量成正比 37
2.1.2 测试无法显示潜在的软件缺陷和故障 37
2.1.5 并非所有的软件故障都能修复 38
2.1.6 软件测试的风险代价 38
2.2 软件测试方法与策略 38
2.2.1 静态测试与动态测试 38
2.2.2 黑盒测试与白盒测试 40
2.2.3 软件测试过程 43
2.3 单元测试 45
2.3.1 单元测试的主要任务 45
2.3.2 单元测试的执行过程 47
2.4 集成测试 48
2.4.1 非增量式测试 49
2.4.2 增量式测试 50
2.4.3 两种不同集成测试方法的比较 51
2.5.1 确认测试的准则 52
2.5.2 配置审查的内容 52
2.5 确认测试 52
2.6 系统测试 53
2.6.1 恢复测试 53
2.6.2 安全测试 53
2.6.3 强度测试 54
2.6.4 性能测试 54
2.6.5 可靠性测试 54
2.6.6 兼容性测试 54
2.6.7 Web网站测试 56
2.7 验收测试 57
2.7.1 验收测试的内容 57
2.7.2 软件配置和文档资料 58
2.8 测试后的调试 59
2.9 面向对象的软件测试 59
2.9.1 面向对象的基本概念 59
2.9.2 面向对象的软件测试与传统软件测试的差异 61
2.9.4 面向对象的集成测试 63
2.9.3 面向对象的单元测试 63
2.9.5 面向对象的确认测试 64
习题与思考 64
第3章 软件测试用例的设计方法 65
3.1 黑盒测试方法 65
3.1.1 具有代表性的三角形问题与NextDate函数 65
3.1.2 边界值分析法 67
3.1.3 等价类划分法 70
3.1.4 因果图法 77
3.1.5 决策表测试法 80
3.1.6 测试方法的选择 87
3.2 白盒测试方法 87
3.2.1 白盒测试的基本概念 88
3.2.2 逻辑覆盖测试方法 90
3.2.3 路径测试方法 96
3.3.1 客户/服务器体系结构的测试 100
3.3 特定环境及应用的测试 100
3.3.2 GUI的测试 101
3.3.3 实时系统的测试 101
习题与思考 102
第4章 软件自动化测试 103
4.1 软件自动化测试基础 103
4.1.1 自动化测试的产生 103
4.1.2 自动化测试的定义和引入 104
4.1.3 自动化测试工具的作用及优势 105
4.1.4 自动化测试的实例 105
4.2 软件自动化测试生存周期方法学 107
4.2.1 采用自动化测试方法的确认 107
4.2.2 自动化测试工具的获取 107
4.2.3 自动化测试的引入阶段 107
4.2.4 测试计划、设计和开发 107
4.2.6 测试活动评审与评估 108
4.3 自动化测试生存周期方法的应用 108
4.2.5 测试执行与管理 108
4.3.1 建立正确的自动化测试目标 109
4.3.2 测试自动化与测试工具存在的不足 110
4.4 自动化测试工具 111
4.4.1 白盒测试工具 111
4.4.2 黑盒测试工具 112
4.4.3 测试设计与开发工具 112
4.4.4 测试执行和评估工具 113
4.4.5 测试管理工具 113
4.4.6 常用测试工具概要 114
习题与思考 117
第5章 测试计划与测试文档 119
5.1 测试计划 119
5.2 测试文档 120
5.2.1 IEEE/ANSI测试文档概述 120
5.2.2 软件生命周期各阶段的测试任务与需交付的文档 122
5.2.3 测试文档类型 124
5.3 检查单 130
习题与思考 132
第6章 WinRunner的运用 133
6.1 WinRunner介绍 133
6.1.1 WinRunner测试模式 133
6.1.2 WinRunner测试过程 134
6.2.1 启动WinRunner 135
6.2 使用WinRunner 135
6.1.4 使用TestSuite(测试套件) 135
6.1.3 样本软件 135
6.2.2 WinRunner主窗口 136
6.2.3 测试窗口 136
6.2.4 加载WinRunner插件 137
6.3 WinRunner如何识别GUI对象 137
6.3.1 关于识别GUI对象 137
6.3.2 测试中如何识别GUI对象 138
6.3.3 物理描述(Physical Description) 138
6.3.5 GUI Map 139
6.3.4 逻辑名(Logic Names) 139
6.3.6 设定窗体环境(Window Context) 140
6.4 理解GUI Map 140
6.4.1 关于GUI Map 140
6.4.2 查看GUI对象属性 141
6.4.3 教WinRunner学习被测软件的GUI 144
6.4.4 在GUI Map中找到对象或窗体 144
6.4.5 GUI Map File使用概要 144
6.4.6 GUI Map File模式的选取 144
6.5 Global GUI Map File模式的使用 145
6.5.1 关于Global GUI Map File模式 145
6.5.2 测试中共享GUI Map File 146
6.5.3 让WinRunner学习GUI 146
6.5.4 保存GUI Map 150
6.5.5 加载GUI Map文件 152
6.6.1 关于GUI Map File Per Test模式 154
6.6 GUI Map File Per Test模式的使用 154
6.6.2 GUI Map File Per Test模式下工作 155
6.6.3 GUI Map File Per Test模式要点 155
6.7 编辑GUI Map 155
6.7.1 关于编辑GUI Map 155
6.7.2 运行指南(Run Wizard) 155
6.7.3 GUI Map编辑器 157
6.7.4 修改逻辑名和物理描述 158
6.7.5 WinRunner处理可变的窗体卷标 159
6.7.6 在物理描述中使用常规表达式 160
6.7.7 在文件间复制和移动对象 161
6.7.8 在GUI Map File里找到对象 162
6.7.9 在多个GUI Map File里找到对象 162
6.7.10 在GUI Map File里手工添加对象 162
6.7.11 从GUI Map File里删除对象 163
6.7.12 清除GUI Map File 163
6.7.14 保存GUI Map的变更 164
6.7.13 筛选显示对象 164
6.8 合并GUI Map File 165
6.8.1 关于合并GUI Map File 165
6.8.2 合并GUI Map File的准备 165
6.8.3 解决自动合并GUI Map文件的冲突 166
6.8.4 手工合并GUI Map文件 168
6.9 配置GUI Map 169
6.9.1 关于配置GUI Map 169
6.8.5 改变到Global GUI Map File模式 169
6.9.2 理解GUI Map的默认配置 170
6.9.3 把自定义对象映射到标准的类 170
6.9.4 配置标准或自定义的类 172
6.10 为类创建永久的GUI Map配置 175
6.10.1 删除自定义的类 176
6.10.2 类属性 176
6.10.3 所有属性 177
6.10.4 默认学习属性 178
6.11 关于学习虚拟对象 179
6.10.5 Visual Basic对象的属性 179
6.10.6 PowerBuilder对象的属性 179
6.11.1 定义一个虚拟对象 180
6.11.2 理解虚拟对象的物理描述 182
6.12 创建测试 182
6.12.1 关于创建测试 182
6.12.2 解决常见的环境感应录制问题 183
6.12.3 模拟录制 183
6.12.4 检查点 184
6.12.5 数据驱动测试 184
6.12.6 同步点 184
6.12.7 计划一个测试 184
6.12.8 测试信息文档化 185
6.12.9 测试相关插件 186
6.12.10 录制测试 186
6.12.11 用热键激活测试创建命令 187
6.12.13 编辑测试 188
6.12.12 测试编程 188
6.13 检查GUI对象 189
6.13.1 关于检查GUI对象 189
6.13.2 检查单个属性的值 189
6.13.3 检查单个对象 190
6.13.4 检查一个窗体中的多个对象 191
6.13.5 检查一个窗体中的所有对象 192
6.13.6 理解GUI检查点语句 193
6.13.7 修改GUI检查清单 195
6 13.8 理解GUI检查点对话框 195
6.13.9 属性检查和默认检查 196
6.13.10 为属性检查指定变量 199
6.13.11 常规表达式属性检查 200
6.13.12 时间格式属性检查 200
6.13.13 关闭GUI检查点对话框 200
6.1 3.14 编辑属性期望值 200
6.13.15 修改GUI检查点的期望结果 201
习题与思考 202
第7章 Rational白盒测试工具的运用 203
7.1 Rational测试组件概述 203
7.2 Rational Suite Enterprise的安装 203
7 3 Rational Purify 204
7.3.1 Rational Purify功能简介 204
7.3.2 Rational Purify工具特性 206
7.3.3 Rational purify实用举例 215
7.4 Rational PureCoverage 216
7.4.1 Rational PureCoverage功能 217
7.4.2 Rational PureCoverage 218
工具特性 218
7.4.3 Rational PureCoverage实用举例 221
7.5 Rational Quantify 223
7.5.1 Rational Quantify功能简介 223
7.5.2 Rational Quantify工具特性 224
7.5.3 Rational Quantify实用举例 227
习题与思考 231
第8章 Web服务器负载测试软件的运用 232
8.1 Web服务器负载测试软件介绍 232
8.1.1 Web Application Stress Tool简介 232
8.1.2 Web Application Stress Tool系统安装 233
8.2 Web Application Stress Tool的设置及其操作 233
8.2.1 主界面窗口 233
8.2.2 制作生成脚本 233
8.3 负载参数设置 236
8.3.1 目录树(Content Tree) 236
8.3.2 负载选项的设置(Setting) 236
8.3.3 性能计数器(Perf Counters) 238
8.3.4 页面组(Page Groups) 240
8.3.5 用户(Users) 240
8.3.6 客户(Clients) 241
8.3.7 Cookies 241
8.5.1 页面摘要 242
8.5 测试结果 242
8.4 运行测试脚本 242
8.5.2 结果代码(Result Codes) 244
8.5.3 性能统计 244
8.5.4 脚本设置(Script Settings) 244
8.5.5 测试客户机(Test Clients) 245
8.5.6 页面概要(Page Summary) 245
8.5.7 页面组结果 245
8.5.8 页面数据(Page Data) 246
8.6 其他方式编写测试脚本 246
8.6.1 手动编写测试脚本 246
8.6.2 导入IIS日志 247
8.6.3 导入网站内容文件 248
8.7 设计测试方案时的一些注意点 249
8.8 使用WAS的优势和不足 250
习题与思考 251
参考文献 252