本书与《软件测试 (第2版)》相配套, 内容包括两部分, 第一部分是习题解析, 针对主教材的8章内容, 给出每章的知识点和重点、难点知识, 精心设计和安排了相应的习题解析, 给出了详细的分析和参考答案。第2部分是实验指导, 主要包括黑盒测试、白盒测试以及jUnit、TestDirector等软件工具的使用。
本书对软件测试的习题和实验进行了详细编制,特别适合作为高等院校软件测试教学辅导书,也可作为全国计算机软件测试师考试和软件技术资格与水平考试的培训资料。
本书与《软件测试(第2版)》相配套,在整个编写过程中结合作者多年从事软件工程和软件测试的教学经验,注重基本理论和基本实践的教学。在学习本书之前,需要一些先行课程作为本书的支撑,如计算机导论、程序设计语言、离散数学、软件工程等。
本书的写作目的是让学生在实践中增强动手能力,巩固理论知识,并用理论知识指导实践。本书意在让学生掌握软件测试的基本原理、基本方法、基本技术、基本标准和规范,培养学生的合作意识和团结精神,提高学生软件测试的综合能力。
本书内容包括软件测试习题解析、软件测试实验指导两部分。第1部分是习题解析,针对主教材8章,即软件测试概述、软件测试基本知识、黑盒测试、白盒测试、软件测试流程、性能测试、自动测试技术、软件测试管理,给出每章的知识重点,精心设计了相应的习题,并给出了详细的解析和参考答案。第2部分是软件测试实验指导,包括黑盒测试、白盒测试、单元测试软件JUnit、测试管理软件TestDirector、功能测试软件、性能测试软件LoadRunner、代码分析工具FindBugs、缺陷管理软件Bugzilla、移动测试软件Appium共9个实验,对每个实验都从实验目的及实验环境、实验内容、方案设计、测试数据及运行结果、源代码等方面进行介绍。附录包括实验报告格式、软件测试相关文档模板、软件测试考试与竞赛简介。为便于读者学习,在清华大学出版社网站(http://www.tup.com.cn)本书页面中提供了全国大学生软件测试大赛中使用的大角虫软件安装包。
本书由周元哲主编,其中,西北工业大学郑炜编写了第2部分的实验9。西安邮电大学计算机学院的王曙燕、邓万宇、孟伟君、舒新峰、张昕对本书的编写给予了大力的支持并提出了指导性意见,南京大学陈振宇、上海睿亚训软件技术服务公司王磊、韩伟以及清华大学出版社张玥编辑对本教材的写作大纲、写作风格等提出了很多宝贵的意见。本书在写作过程中参阅了大量中外文专著、教材、论文、报告及网络资料,在此向各位作者表示敬意和衷心的感谢。
本书内容精练,文字简洁,结构合理,综合性强,明确定位于面向初、中级读者,由入门起步,侧重提高,特别适合作为高等院校相关专业软件测试课程的教材或教学参考书,也可供从事计算机应用开发的各类技术人员参考,或用作全国计算机软件测评师考试、软件技术资格与水平考试的培训资料。
由于作者水平有限,时间紧迫,本书难免有不足之处,诚恳期待读者的批评指正,以使本书日臻完善。
作者2017年6月
第1部分习 题 解 析第1章软件测试概述3
1.1本章要求3
1.2本章知识重点3
1.3典型习题解析5
1.3.1选择题5
1.3.2判断题9
1.3.3简答题10第2章软件测试基本知识14
2.1本章要求14
2.2本章知识重点14
2.3典型习题解析18
2.3.1选择题18
2.3.2判断题21
2.3.3简答题22第3章黑盒测试27
3.1本章要求27
3.2本章知识重点27
3.3典型习题解析28
3.3.1选择题28
3.3.2判断题31
3.3.3简答题31
3.3.4设计题33第4章白盒测试47
4.1本章要求47
4.2本章知识重点47
4.3典型习题解析50
4.3.1选择题50
4.3.2简答题52
4.3.3设计题54第5章软件测试流程65
5.1本章要求65
5.2本章知识重点65
5.3典型习题解析66
5.3.1选择题66
5.3.2简答题72第6章性能测试79
6.1本章要求79
6.2本章知识重点79
6.3典型习题解析80
6.3.1选择题80
6.3.2简答题82
6.3.3设计题87第7章自动测试技术90
7.1本章要求90
7.2本章知识重点90
7.3典型习题解析92
7.3.1选择题92
7.3.2简答题94
7.3.3设计题98第8章软件测试管理108
8.1本章要求108
8.2本章知识重点108
8.3典型习题解析109
8.3.1选择题109
8.3.2简答题111
第2部分实 验 指 导
实验1黑盒测试119
1.1等价类划分法119
1.2边界值分析法121
1.3因果图132实验2白盒测试137
2.1逻辑覆盖137
2.2路径分析138实验3单元测试软件JUnit142
3.1JUnit介绍142
3.1.1JUnit特点142
3.1.2JUnit断言143
3.2测试Calculator类143
3.2.1Calculator类143
3.2.2CalculatorTest类144
3.3测试Sorting类149
3.3.1Sorting类149
3.3.2SortingTest类151
3.4测试WordDealUtil类153
3.4.1WordDealUtil类153
3.4.2WordDealUtilTest测试类154
3.5测试Triangle类156
3.5.1Triangle类156
3.5.2TriangleTest类158实验4测试管理软件TestDirector160
4.1TestDirector简介160
4.2TestDirector操作步骤161实验5功能测试软件174
5.1VB 6.0实现GUI捕捉/回放174
5.2UFT177
5.2.1基本功能178
5.2.2安装UFT178
5.2.3实验内容179实验6性能测试软件LoadRunner188
6.1LoadRunner相关术语188
6.2LoadRunner测试流程189
6.3实验步骤189
6.3.1使用VuGen创建脚本190
6.3.2使用Controller设计和运行场景194
6.3.3使用Analysis分析场景结果198实验7代码分析工具FindBugs200
7.1FindBugs简介200
7.2实验内容200
7.2.1安装FindBugs200
7.2.2FindBugs使用方法201实验8缺陷管理软件Bugzilla205
8.1Bugzilla简介205
8.2Bugzilla的缺陷处理流程206
8.3环境搭建206
8.3.1MySQL数据库206
8.3.2ActivePerl207
8.3.3Bugzilla安装包208
8.3.4IIS209
8.4实验内容212实验9移动测试软件Appium217
9.1实验内容217
9.2环境搭建217
9.2.1JDK和Eclipse安装与配置217
9.2.2SDK安装与配置217
9.2.3Appium的安装与配置218
9.2.4相关文件和jar包下载219
9.3实验步骤220
9.3.1测试项目的创建220
9.3.2针对待测软件编写测试脚本222附录A实验报告格式230附录B软件测试相关文档模板232
B.1软件测试计划模板232
B.2软件测试用例设计模板235
B.3软件测试报告模板237附录C软件测试考试与竞赛简介239
C.1全国计算机等级考试四级软件测试工程师239
C.1.1考试说明239
C.1.2考试大纲及考试重点240
C.1.3参考资料245
C.2全国大学生软件测试大赛246
C.2.1大赛简介246
C.2.2大赛内容246参考文献248
第5章软件测试流程
5.1本 章 要 求
了解软件测试生命周期
了解软件测试执行过程
掌握单元测试
理解集成测试、系统测试、验收测试
了解评估测试
5.2本章知识重点
软件测试生命周期具体包括以下4个阶段:
(1) 测试计划。
根据用户需求报告中关于功能要求和性能指标的规格说明书,定义相应的测试需求报告,使得随后所有的测试工作都围绕测试需求进行。同时,适当选择测试内容,合理安排测试人员、测试时间及测试资源等。
(2) 测试设计。
测试设计是指将测试计划阶段制定的测试需求分解、细化为若干个可执行的测试过程,并为每个测试过程选择适当的测试用例,保证测试结果的有效性。
(3) 测试执行。
测试执行阶段建立自动测试过程,并对所发现的缺陷进行跟踪管理。测试执行一般由单元测试、集成测试、系统测试、验收测试以及回归测试等步骤组成。
① 单元测试
目的: 检测程序模块中有无故障存在。
对象: 软件设计的最小单位,与程序设计和编程实现关系密切。
② 集成测试。
目的: 发现与接口有关的模块之间的问题。
方法: 非增式集成测试法和增式集成测试法。
③ 系统测试。
目的: 针对系统中各个组成部分进行的综合性检验,证明系统的性能。④ 验收测试。
目的: 向用户表明所开发的软件系统能够像用户所预期的那样工作
主要任务:
明确规定验收测试通过的标准。
确定验收测试方法。
确定验收测试的组织和可利用的资源。
确定测试结果的分析方法。
制定验收测试计划并进行评审。
设计验收测试的测试用例。
审查验收测试的准备工作。
执行验收测试。
分析测试结果,确定是否通过验收。
(4) 测试评估。
结合量化的测试覆盖域及缺陷跟踪报告,对于应用软件的质量、开发团队的工作进度及工作效率进行综合评价。
5.3典型习题解析〖*2〗5.3.1选择题1. 软件测试是软件质量保证的重要手段,()是软件测试最基础的环节。
A. 功能测试B. 单元测试C. 结构测试D. 确认测试
【答案】B
2. 测试计划的制订必须注重()
A. 测试策略、测试范围B. 测试方法、测试安排
C. 测试风险、测试治理D. 以上都对
【答案】D
3. 软件测试计划的内容应包括()。
A. 测试目的、背景B. 被测软件的功能、输入和输出
C. 测试内容和评价标准D. 以上全对
【答案】D
4. 软件测试计划描述了()。
A. 软件的性质
B. 软件的功能和测试用例
C. 软件的规定动作
D. 对于预定的测试活动将要采取的手段
【答案】D
5. 软件设计阶段的测试主要采取的方式是()。
A. 评审B. 白盒测试C. 黑盒测试D. 动态测试
【答案】A
6. 软件验收测试的合格通过准则是()。
A. 软件需求分析说明书中定义的所有功能已全部实现,性能指标全部达到要求
B. 所有测试项没有残余一级、二级和三级错误
C. 立项审批表、需求分析文档、设计文档和编码实现一致
D. 验收测试工件齐全
【答案】B
7. 软件测试计划评审会需要()参加。
A. 项目经理B. SQA负责人
C. 配置负责人D. 测试组
【答案】A
8. 从测试阶段角度,正确的测试顺序是()。
①单元测试; ②集成测试; ③系统测试; ④验收测试
A. ①②③④B. ②①③④C. ③②①④D. ③①②④
【答案】A
9. 下列能作为设计阶段测试对象的文档是()。
A. 逻辑设计规格说明B. 外部设计规格说明
C. 内部设计规格说明D. 以上全对
【答案】D
10. 一个好的集成测试策略应该具有的特点是()。
A. 能够使模块与接口的划分清晰明了,尽可能减少后续操作难度
B. 能够对被测模块进行比较充分的测试
C. 对整体工作量来说,参加测试的各种资源都得到充分利用
D. 以上全对
【答案】D
11. 下列说法中错误的是()。
A. 模块在进行集成测试前必须已经通过单元测试
B. 软件集成测试应测试软件单元之间的所有调用
C. 软件集成测试一般采用黑盒测试
D. 软件集成测试应由软件提供方组织实施,不得委托第三方进行测试
【答案】D
12. 下列测试中能够与软件开发各个阶段(如需求分析、设计、编码)相对应的是()。
A. 组装测试、确认测试、单元测试B. 单元测试、组装测试、确认测试
C. 单元测试、确认测试、组装测试D. 确认测试、组装测试、单元测试
……