软件测试技术是一门实践性很强的应用技术,本书基于实际应用系统的测试过程,全面介绍软件测试技术及其应用,是学习软件测试的基础实践教材。全书共12章,第1章概括介绍软件测试的基本概念,第2章介绍功能测试,第3章介绍界面测试,第4章介绍性能测试,第5章介绍安全测试,第6章介绍如何了解项目需求,第7章介绍如何制订测试计划,第8章介绍测试的设计,第9章介绍测试的执行,第10章介绍测试的分析总结,第11章介绍配置管理,第12章介绍测试过程管理。另外,附录A给出了常用的软件测试文档模板;附录B中给出了两个测试实训项目,供实训使用。
《软件测试实践教程》结合实际应用系统的具体测试过程,对软件测试的理论、方法、技术和工具进行介绍,实践性和应用性强,既可作为高等院校计算机软件相关专业软件测试课程的教材,也可作为软件测试人员和软件开发人员的参考用书。
软件测试是保证软件质量的重要手段,随着软件产业的规模化和规范化,许多软件公司都设立了专门的软件测试部门,还有专门的软件测试公司,对软件测试技术人员的需求日益增大。为满足社会对软件测试人员的需求,各高校计算机软件相关专业都开设了软件测试课程。
软件测试课程涉及软件测试的理论、方法、技术和工具,是一门实践性和技巧性很强的课程。本书结合实际软件系统的具体测试过程,对软件测试的理论、方法、技术和工具进行介绍,实践性和应用性强,体现了“学中做,做中学”的应用型人才培养理念。本书可作为高等院校计算机软件相关专业软件测试课程的教材,也可作为软件测试人员和软件开发人员的参考用书。
全书共12章、两个附录,可分为以下四部分。
第一部分: 第1~5章,介绍软件测试的基本概念与几个重要测试类型的测试过程,其中第1章简要介绍软件测试的基本概念;第2~5章结合实际案例,分别详细介绍了功能测试、界面测试、性能测试和安全测试的方法、工具和技巧。
第二部分: 第6~10章,基于“中工运动网”应用系统的实际测试工作,从开始了解系统需求直到测试的分析总结,详细介绍了一个实际项目的测试全过程,其中第6章介绍在测试开始前如何了解项目需求,第7章介绍制订测试计划,第8章介绍测试的设计,第9章介绍测试的执行,第10章介绍测试的分析总结。本部分基于真实案例讲解,真实感和实践性强,可快速提高测试实践能力。
第三部分: 第11~12章,主要介绍测试的管理,其中第11章介绍配置管理,第12章介绍测试过程管理。
第四部分: 附录A和附录B,附录A提供了常用的软件测试文档模板;附录B中给出了两个测试实训项目,供实训使用。
为便于教学和学习,每章提供了课后习题和实训练习。
本书由买志玉、韩玉民主编,参加编写的人员有张文宁、郭丽、刘安战、崔岩,其中第1章由韩玉民编写,第2章由买志玉编写,第3章由刘安战编写,第4章由买志玉和韩玉民编写,第5章由郭丽编写,第6章由郭丽和买志〖1〗软件测试实践教程前言[3]〖3〗玉编写,第7章由买志玉和崔岩编写,第8、9章由张文宁和买志玉编写,第10章由买志玉和崔岩编写,第11章的11.1~11.4节由崔岩编写,11.5节由刘安战编写,第12章由崔岩编写,附录A由买志玉编写,附录B由买志玉和刘安战编写。书中的“中工运动网”系统由郭丽设计开发。全书由买志玉、韩玉民负责框架设计和统稿,由中原工学院车战斌教授担任主审。
本书的出版得到了中原工学院教材建设基金资助,在此表示衷心的感谢!另外在编写过程中,编者参阅了许多文献资料,在此对这些资料的作者也一并表示感谢!
虽然我们力求完美,但由于水平有限,书中难免有疏漏和错误之处,敬请读者不吝赐教。
编者
2015年2月
第1章软件测试的基本概念/1
1.1软件测试的概念1
1.2软件测试的分类2
1.2.1按测试方式分类2
1.2.2按测试方法分类2
1.2.3按测试阶段分类3
1.2.4按测试类型分类3
1.3软件测试模型4
1.3.1V模型5
1.3.2W模型5
1.3.3H模型6
1.4软件测试流程7
1.5软件开发各个阶段的测试任务7
1.5.1需求分析阶段8
1.5.2设计阶段8
1.5.3实现阶段8
1.5.4测试阶段8
1.5.5运行维护阶段8
本章小结9
习题9
第2章功能测试/10
2.1功能测试的依据10
2.2功能测试的步骤11
2.3功能测试实例: 图书管理系统的借书功能11
2.3.1借书功能的需求描述11
2.3.2测试借书单一功能14
2.3.3测试借书功能相关联功能16
2.3.4测试借书功能的系统业务流程17
本章小结18〖1〗软件测试实践教程目录[3]〖3〗实训18
习题18
第3章界面测试/19
3.1界面测试的基本原则19
3.1.1易用性19
3.1.2规范性20
3.1.3合理性20
3.1.4一致性21
3.1.5美观协调性21
3.2界面测试要点21
3.3界面测试实例22
3.4常用的界面测试工具23
3.4.1HttpUnit24
3.4.2Selenium28
3.4.3Xenu31
本章小结33
实训33
习题33
第4章性能测试/34
4.1性能测试的基本概念34
4.1.1什么是性能测试34
4.1.2性能测试常见术语36
4.1.3性能测试的内容39
4.2性能测试的需求43
4.2.1确定性能测试点44
4.2.2确定性能指标44
4.2.3“ACM在线评判系统”性能测试的需求46
4.3性能测试的设计47
4.3.1性能测试模型47
4.3.2“ACM在线评判系统”性能测试设计49
4.4性能测试的执行58
4.4.1LoadRunner简介58
4.4.2测试脚本的录制58
4.4.3测试脚本的优化68
4.4.4测试脚本的回放88
4.4.5测试场景的设计92
4.4.6测试场景的执行103
4.5性能测试的分析105
4.5.1测试结果的收集105
4.5.2测试结果的分析105
本章小结115
实训116
习题116
第5章安全测试/117
5.1Web安全概述117
5.2注入漏洞118
5.2.1SQL注入概述119
5.2.2SQL注入检测121
5.2.3绕过登录122
5.2.4注入不同的语句类型123
5.2.5UNION操作符124
5.2.6SQL注入攻击防范125
5.3跨站脚本漏洞131
5.3.1XSS概述131
5.3.2XSS检测134
5.3.3使用XSS窃取Cookie136
5.3.4使用XSS产生HTTP请求137
5.3.5以交互方式尝试基于DOM的XSS138
5.3.6绕过字段长度限制139
5.3.7修改Host头139
5.3.8XSS攻击防范140
5.4其他常见攻击手段143
5.5常用安全测试工具145
5.5.1Firebug145
5.5.2WebScarab148
5.5.3Burp Suite153
5.5.4SQL Inject Me154
本章小结156
实训156
习题156
第6章了解项目需求/157
6.1中工运动网需求说明书157
6.1.1系统概述157
6.1.2系统功能157
6.1.3系统用户159
6.1.4系统运行环境159
6.1.5功能描述159
6.1.6系统非功能需求191
6.2需求说明书的评审191
6.2.1软件测试活动的基本形式192
6.2.2验证的三种方式193
6.2.3评审检查表194
6.2.4需求说明书的评审195
本章小结197
实训198
习题198
第7章制订测试计划/199
7.1确定测试需求199
7.2制订测试策略200
7.3确定测试资源201
7.4创建进度表201
7.5评估风险202
7.6生成测试计划文档203
7.7中工运动网测试计划206
7.7.1文档介绍206
7.7.2测试策略206
7.7.3角色和职责207
7.7.4进度安排208
7.7.5风险说明209
7.7.6测试环境209
7.7.7辅助管理209
7.7.8测试结束时提交的工作产品209
7.8测试计划的评审210
本章小结210
实训210
习题210
第8章测试的设计/212
8.1测试设计的内容212
8.1.1测试用例212
8.1.2测试数据214
8.1.3测试脚本215
8.2中工运动网功能测试用例的设计216
8.3中工运动网界面测试的设计243
8.4中工运动网性能测试用例的设计243
8.5中工运动网安全测试用例的设计245
8.6中工运动网测试数据的设计251
8.7测试用例、测试数据、测试脚本的评审253
8.8对测试用例的理解误区255
本章小结259
实训259
习题259
第9章测试的执行/261
9.1搭建测试环境261
9.2执行冒烟测试263
9.3测试的执行和记录265
9.4中工运动网测试的执行和记录266
9.4.1执行功能测试266
9.4.2执行界面测试273
9.4.3执行性能测试273
9.4.4执行安全测试297
9.5缺陷的记录298
9.6中工运动网缺陷的记录301
9.6.1功能缺陷301
9.6.2界面缺陷312
9.6.3安全缺陷313
9.7缺陷的管理流程317
9.8缺陷跟踪工具320
9.9回归测试320
9.10中工运动网第一次回归测试321
9.10.1搭建测试环境321
9.10.2功能回归测试322
9.10.3界面回归测试324
9.11中工运动网第二次回归测试325
9.11.1功能回归测试325
9.11.2界面回归测试327
9.11.3性能回归测试327
本章小结329
实训329
习题329
第10章测试的分析总结/331
10.1软件质量的度量分析331
10.2测试过程的度量分析334
10.3测试总结报告336
10.4中工运动网测试总结报告337
10.4.1文档介绍337
10.4.2测试环境338
10.4.3测试执行过程339
10.4.4软件质量的度量分析340
10.4.5测试活动的度量分析343
10.5测试总结报告的评审345
10.6测试结束时提交的工作产品345
本章小结345
实训345
习题346
第11章配置管理/347
11.1引入配置管理347
11.2配置管理的基本概念348
11.3配置管理的主要活动349
11.4配置管理工具介绍352
11.5SVN配置管理工具的使用353
11.5.1SVN相关软件准备353
11.5.2SVN服务器安装与配置353
11.5.3SVN客户端的安装与使用357
本章小结362
实训362
习题362
第12章测试过程管理/363
12.1测试的跟踪与监督363
12.2测试团队的管理364
12.2.1测试团队的组织形式364
12.2.2测试团队的沟通交流365
12.2.3测试团队的风险管理365
12.3测试人员的管理365
12.3.1测试人员的基本素质365
12.3.2测试人员的培训366
本章小结367
习题368
附录A软件测试常用文档模板/369
A.1测试计划369
A.2测试用例369
A.3缺陷报告370
A.4缺陷跟踪文档370
A.5测试总结报告371
附录B测试项目实训/372
B.1实训一372
B.1.1实训内容及要求372
B.1.2实训指导373
B.2实训二380
B.2.1实训内容及要求380
B.2.2实训指导381
参考文献/397