本书浓墨重彩地描述信息软件系统的基本概念、开发技术、测试技术和测试工具,详细介绍测试管理工具HP ALM、功能自动化测试工具HP UFT、性能测试工具HP Loadrunner和安全测试工具IBM AppScan的基本操作方法并列举实际应用案例。
全书分为基础、测试管理、功能测试、性能测试和安全测试等5个部分。第I部分系统介绍信息软件系统的基本概念、开发技术和测试技术;第II部分主要介绍软件测试管理的基本概念及内容、测试管理工具HP ALM的工作流程及常见操作;第III部分主要介绍功能测试以及自动化测试的基本概念和原理、测试工具HP UFT的常用操作和关键技术以及使用HP UFT实施功能自动化测试的过程;第IV部分主要介绍性能测试的基本概念和原理、测试工具HP Loadrunner的常用操作和关键技术以及使用HP Loadrunner实施性能测试的过程;第V部分主要介绍安全测试的基本概念和原理、测试工具IBM AppScan的常用操作以及使用IBM AppScan实施安全测试的过程。
本书可作为高等院校软件工程及计算机相关专业的教材和参考书籍,可作为软件测试应用型人才的培训教材,也可供软件测试、质量保证及项目管理从业人员参考。
21世纪是社会信息化高速发展的时代,信息系统改变着人们的生活、工作和学习方式。随着信息系统应用领域的扩大以及软件规模和复杂程度的增加,信息软件系统产生错误的概率大大增加,这给信息软件系统质量的保障工作带来了挑战。软件测试是保障软件质量的重要手段,也是发现与排除缺陷最有效的手段之一,可以说,通过软件测试发现软件中的缺陷并进行修复是提升软件产品质量的重要途径。
《信息软件系统测试与实践》是一本综合性实践教材。它以信息软件系统为测试对象,较系统地介绍了软件测试的基本概念、测试方法、策略、测试管理技术、功能自动化测试技术、性能测试技术和安全测试技术等内容。其中,测试管理、自动化测试、性能测试和安全测试是软件测试工程师职业进阶必备的专业技能。本书设计了大量案例和习题,适于实践性教学和读者自学。
随着软件测试地位的逐步提高,测试的重要性逐步显现,测试工具的应用已经成为普遍趋势。本书选取主流的测试工具——测试管理工具HPALM、功能自动化测试工具HPUFT、性能测试工具HPLoadrunner和安全测试工具IBMAppScan,详细介绍了它们的基本操作和关键技术,并以规范的软件测试流程为基础,完整呈现测试过程管理、功能测试、性能测试和安全测试的整个过程。
本书特色
(1)首次全面系统地介绍信息软件系统的测试技术,重点介绍信息软件测试中较重要的功能测试、性能测试和安全测试的基本概念、原理、技术以及测试工具的使用。其中,测试工具选取的是当前主流的、较新版本的测试工具,这使读者将来可以更好地理解和迅速融入企业的软件测试项目中。
(2)在测试实施过程中,以较规范的测试流程为主线,涵盖了分析测试需求、制订测试计划、设计并编写测试用例、开发测试脚本、执行测试、管理软件缺陷、分析测试结果等软件测试活动的各个环节。通过本书的学习,读者可以切身体会到测试知识在实际项目中的应用,实现从学校到企业的平滑过渡。
(3)将自动化测试工具与测试管理工具完美融合到测试案例中,使得整个测试过程更规范,便于测试资源、测试脚本以及测试文档的集中管理,促进项目成员间更好地协同工作,提升了测试活动的效率和智能化程度。其中,HPALM对测试的管理贯穿于软件测试生命周期的始终,从测试周期的发布、测试需求树的创建、自动化测试用例的创建与管理、测试脚本的创建与管理,到自动化测试的执行、测试缺陷的管理以及测试报表的分析,使得整个测试活动成为一个有机整体。
(4)重视分析过程,倡导“what-how-why”的学习三部曲。从分析实际问题入手,寻找合理的解决方案,并探究其背后的原因,而不是仅简单地讲述测试工具的使用。本书引入了基于HPUFT和HPALM的功能自动化测试框架,阐述测试思想,并用其指导自动化测试脚本的开发、执行和维护,提升脚本的可读性、可重用性和可维护性。
(5)采取行之有效的设计方法来编写测试用例。在测试用例的设计过程中,不仅要结合等价类划分法、边界值分析法、错误推测法等常用测试方法,还要考虑测试覆盖率、测试优先级、测试充分性等因素。
本书可作为软件测试方向应用型人才培养的指定教材,也可作为计算机相关专业的选修教材,建议96学时。
本书的作者均具有企业一线工作经验,在航天软件测评中心、航天中认软件测评科技(北京)有限责任公司、中国软件测评中心等单位从事软件测试工作多年,参与过多项重大项目的测试和开发工作。蔡建平教授担任本书的主审工作,提出了很多宝贵建议;我的学生王大川、丰淑成、张涛、张恒铭参与了本书的审稿工作;同时,航天中认公司的多位工程师在本书编写过程中给予了大量技术支持,在此一并表示感谢。
本书很多内容来自实际项目的经验总结,由于笔者水平有限,难免存在错误和不足之处,希望能与广大同行和读者共同讨论研究。谢谢关注本书的所有读者。
张伟
第Ⅰ部分 信息软件简介及技术要点分析
第1章 信息软件概述 3
1.1 信息系统基础知识 3
1.1.1 信息系统组成 3
1.1.2 信息系统分类 4
1.2 信息软件开发 4
1.2.1 软件的生命周期 5
1.2.2 软件开发过程模型 6
1.2.3 敏捷开发 9
1.3 信息软件主流架构及技术 12
1.3.1 客户端/服务器架构 12
1.3.2 浏览器/服务器架构 14
1.3.3 现代互联网技术 16
1.4 本章小结 19
第2章 软件测试概述 20
2.1 软件测试概念 20
2.1.1 软件测试的定义和对象 20
2.1.2 软件测试的目的 21
2.2 软件测试分类 22
2.2.1 按照开发阶段分类 22
2.2.2 按测试策略分类 24
2.2.3 按照测试手段分类 25
2.2.4 按照测试执行方式分类 25
2.2.5 基于特定目标的测试分类 25
2.3 信息软件测试典型应用 28
2.3.1 基于Web应用软件的测试 28
2.3.2 基于手机应用软件的测试 32
2.3.3 基于云应用软件的测试 36
2.4 信息软件测试策略 38
2.4.1 测试过程的实施策略 38
2.4.2 测试用例的设计策略 40
2.4.3 回归测试策略 41
2.5 本章小结 42
第Ⅱ部分 软件测试管理技术
第3章 软件测试管理概述 45
3.1 软件测试管理的主要内容 45
3.1.1 测试计划管理 47
3.1.2 测试组织和人员管理 49
3.1.3 测试文档管理 51
3.1.4 测试缺陷管理 52
3.2 软件测试管理工具 55
3.2.1 HP ALM概述 56
3.2.2 TestLink 56
3.3 本章小结 57
第4章 HP ALM工具的使用及关键技术 58
4.1 HP ALM简介 58
4.1.1 HP ALM组织架构 59
4.1.2 HP ALM流程 59
4.2 HP ALM初始化设置 60
4.2.1 启动站点管理 60
4.2.2 创建域和项目 62
4.2.3 用户和组的管理 65
4.2.4 缺陷和用例配置 70
4.2.5 用例配置 74
4.3 创建发布树 76
4.3.1 定义发布树 76
4.3.2 创建发布 77
4.3.3 创建周期 78
4.4 创建测试需求 78
4.4.1 制订测试需求树规范 79
4.4.2 创建功能测试需求树 80
4.4.3 将需求分配到发布和周期 83
4.4.4 测试需求转换为测试计划 84
4.5 管理测试计划 86
4.5.1 创建测试用例 88
4.5.2 关联需求与测试用例 90
4.6 执行测试 92
4.6.1 创建测试集 92
4.6.2 执行测试集 94
4.7 缺陷管理 97
4.7.1 创建并提交缺陷 97
4.7.2 关联缺陷和测试用例 98
4.8 报表生成与分析 99
4.8.1 分析测试执行报表 100
4.8.2 分析缺陷报表 101
4.9 本章小结 103
第Ⅲ部分 信息软件系统功能测试
第5章 信息软件系统功能测试概述 107
5.1 功能测试基础知识 107
5.1.1 功能测试常见的错误类型 107
5.1.2 功能测试用例的设计准则 108
5.2 功能测试自动化 109
5.2.1 功能测试自动化优缺点 109
5.2.2 功能自动化测试的主要技术 111
5.3 典型功能测试工具介绍 113
5.3.1 HP UFT 113
5.3.2 Selenium 114
5.3.3 两种自动化测试工具对比 114
5.4 本章小结 115
第6章 HP UFT工具的使用及关键
技术 116
6.1 HP UFT工具简介 116
6.1.1 HP UFT基本配置 116
6.1.2 HP UFT的视图 117
6.2 HP UFT的工作流程 118
6.2.1 UFT测试步骤 118
6.2.2 一个简单的测试项目 119
6.2.3 HP UFT的相关原理 122
6.3 测试对象管理 123
6.3.1 对象识别 123
6.3.2 对象属性及侦测 125
6.3.3 HP UFT对象库 126
6.3.4 对象库管理 128
6.4 录制模式 130
6.4.1 模拟录制模式 130
6.4.2 低级录制模式 131
6.4.3 洞察录制模式 131
6.5 操作调用 132
6.6 检查点技术 134
6.6.1 检查点简介 134
6.6.2 标准检查点 135
6.6.3 文本检查点 137
6.7 参数化技术 138
6.7.1 参数化测试步骤 139
6.7.2 使用外部数据源实现
参数化 142
6.8 描述性编程技术 146
6.8.1 描述性编程概述 146
6.8.2 描述性编程的测试实例 147
6.9 正则表达式 150
6.9.1 正则表达式介绍 150
6.9.2 正则表达式应用 152
6.10 测试场景恢复技术 153
6.10.1 创建场景恢复文件 154
6.10.2 添加场景恢复文件 157
6.11 函数库管理 158
6.11.1 函数与子过程 158
6.11.2 创建函数库 159
6.11.3 关联函数库并调用函数 160
6.12 VBScript脚本语言 162
6.12.1 选择和循环操作 163
6.12.2 比较操作 164
6.12.3 算术操作 164
6.12.4 逻辑操作 165
6.12.5 常用函数 166
6.13 脚本的调试与运行 168
6.13.1 脚本调试技术 168
6.13.2 使用ALM运行测试脚本 169
6.13.3 使用Test Batch Runner
运行测试脚本 175
6.13.4 使用QuickTest.Application
对象运行测试脚本 175
6.14 查看测试结果 176
6.14.1 设置结果的存储位置 176
6.14.2 查看测试运行结果 177
6.15 本章小结 178
第7章 HP UFT功能自动化实践 180
7.1 测试需求分析 180
7.2 自动化测试框架 180
7.2.1 自动化测试框架简介 180
7.2.2 自动化测试框架考虑的
要素 181
7.3 设计测试用例 183
7.3.1 登录业务测试用例 183
7.3.2 订票业务测试用例 184
7.3.3 传真订单业务测试用例 186
7.3.4 退出业务测试用例 187
7.4 开发登录业务脚本 187
7.4.1 登录脚本录制 188
7.4.2 设置Action属性 188
7.4.3 参数化用户信息 189
7.4.4 登录脚本回放 193
7.5 开发订票脚本 194
7.5.1 录制订票脚本 194
7.5.2 登录操作调用 195
7.5.3 参数化航班日期 196
7.5.4 订票脚本回放 197
7.6 开发传真订单脚本 198
7.6.1 录制传真订单脚本 198
7.6.2 完善传真订单脚本 200
7.6.3 回放传真订单脚本 202
7.7 退出脚本开发 203
7.8 测试资源管理 203
7.8.1 管理对象库 203
7.8.2 使用HP ALM管理测试
资源 204
7.9 脚本的运行 207
7.10 本章小结 209
第Ⅳ部分 信息软件系统性能测试
第8章 信息软件系统性能测试概述 213
8.1 性能测试基础知识 213
8.1.1 性能测试的概念 214
8.1.2 性能测试指标 215
8.1.3 性能测试方法 217
8.1.4 性能测试策略 219
8.2 典型性能测试工具介绍 222
8.3 本章小结 224
第9章 HP Loadrunner基础 225
9.1 Loadrunner简介 225
9.2 Loadrunner的功能结构及
工作原理 227
9.2.1 Loadrunner功能结构 227
9.2.2 Loadrunner工作过程 229
9.3 Loadrunner的测试步骤 230
9.4 本章小结 232
第10章 HP Loadrunner脚本
录制与开发 233
10.1 虚拟用户生成器简介 233
10.2 脚本录制 234
10.2.1 选择协议 234
10.2.2 开始录制脚本 237
10.2.3 设置录制选项 240
10.3 运行时设置 246
10.4 脚本开发 250
10.4.1 通用VuGen函数 251
10.4.2 脚本调试 253
10.4.3 脚本注释 254
10.5 事务技术 254
10.6 集合点技术 256
10.7 检查点技术 257
10.8 块技术 260
10.9 参数化技术 262
10.9.1 创建参数 262
10.9.2 不同类型的参数 264
10.9.3 File类型参数属性设置 265
10.10 关联技术 270
10.10.1 如何创建关联 271
10.10.2 关联函数介绍 278
10.10.3 关联与参数化的区别 281
10.11 本章小结 281
第11章 HP Loadrunner测试
场景的设计与执行 282
11.1 控制器简介 282
11.1.1 测试场景类型 283
11.1.2 Controller工作视图 285
11.2 场景设计 287
11.2.1 配置脚本和运行时设置 287
11.2.2 手动场景计划配置 288
11.2.3 面向目标场景计划配置 291
11.2.4 配置负载生成器 294
11.2.5 服务水平协议设置 296
11.2.6 集合点运行设置 299
11.2.7 IP欺骗技术 300
11.3 场景执行 304
11.4 场景监控 307
11.4.1 Vuser运行状态 308
11.4.2 场景运行的概况 308
11.4.3 错误输出消息 310
11.4.4 数据分析图 311
11.4.5 资源计数器 313
11.5 本章小结 317
第12章 HP Loadrunner测试
结果分析 318
12.1 分析器简介 318
12.2 常用设置选项 319
12.3 摘要报告 324
12.4 常见数据分析图 327
12.5 数据图分析技术 330
12.5.1 分析图合并 330
12.5.2 分析图关联 332
12.5.3 页面诊断 334
12.6 Analysis报告 337
12.6.1 HTML报告 337
12.6.2 事务分析报告 337
12.6.3 自定义报告 340
12.6.4 使用报告模板定义报告 342
12.7 本章小结 343
第13章 HP Loadrunner性能测试
实践 344
13.1 测试需求分析 344
13.1.1 性能指标分析 344
13.1.2 确定业务流程 346
13.2 制订测试计划 346
13.2.1 编制测试计划 346
13.2.2 创建测试场景模型 350
13.3 设计测试用例 350
13.4 执行测试 351
13.4.1 准备测试数据 351
13.4.2 测试脚本开发 353
13.4.3 场景方案设计 355
13.4.4 执行和监控测试场景 356
13.5 结果分析和测试结论 358
13.6 本章小结 366
第Ⅴ部分 信息软件系统安全测试
第14章 Web应用安全基础 371
14.1 软件安全简介 371
14.1.1 软件安全要素 371
14.1.2 软件安全范畴 372
14.1.3 软件安全开发技术 372
14.2 Web应用技术基础 373
14.2.1 HTTP简介 373
14.2.2 HTTPS简介 374
14.2.3 URI/URL/URN 375
14.2.4 HTTP方法 376
14.2.5 HTTP状态码 378
14.2.6 HTTP Cookie 378
14.2.7 HTTP Session 379
14.3 Web应用程序安全 379
14.4 两大Web应用安全研究
组织 380
14.4.1 WASC 380
14.4.2 OWASP 381
14.5 OWASP十大应用安全攻击 381
14.5.1 注入 382
14.5.2 被破坏的验证和会话
管理 385
14.5.3 跨站脚本攻击 386
14.5.4 不安全的直接对象引用 388
14.5.5 安全配置错误 388
14.5.6 暴露敏感数据 389
14.5.7 功能级访问控制缺失 390
14.5.8 跨站点请求伪造 390
14.5.9 使用含有已知漏洞的
组件 392
14.5.10 未验证的重定向和转发 392
14.6 本章小结 393
第15章 Web应用安全测试 394
15.1 Web应用安全测试方法与
技术 394
15.1.1 软件安全测试 394
15.1.2 渗透测试 396
15.1.3 软件安全测试过程 398
15.1.4 软件安全测试组织 399
15.1.5 安全测试主要关注的
问题 400
15.1.6 如何做好Web应用
安全测试 401
15.2 Web安全性测试工具IBM
Rational AppScan简介 401
15.2.1 IBM Rational AppScan最低
配置要求 402
15.2.2 IBM Rational AppScan
工作过程 402
15.3 IBM Rational AppScan窗口 404
15.4 IBM Rational AppScan
辅助工具 405
15.5 本章小结 407
第16章 Web安全测试实践 408
16.1 Altoro Mutual安全性需求 408
16.2 启动IBM Rational AppScan 408
16.3 新建扫描 409
16.4 配置扫描 409
16.5 启动扫描 413
16.5.1 结果视图 414
16.5.2 严重等级 415
16.6 结果专家 415
16.7 本章小结 416
附录 HTTP状态码简明释义表 418
参考文献 420