出版社:清华大学出版社
年代:2016
定价:30.0
本书涵盖了软件测试的基础理论,涵盖了边界值、等价类、因果图;基于控制流的软件测试语句覆盖、分支覆盖、路径覆盖;基于组合分析的测试方法,如单因素覆盖、基本选择覆盖、成对测试;基于形式化规格说明书的测试方法:有限状态机、Petri网、Uml图;以及变异测试和蜕变测试等。
第1章绪论/1
1.1 软件测试的历史和发展/1
1.1.1软件测试的起源/1
1.1.2软件质量问题/2
1.1.3软件测试的发展/3
1.2软件测试术语/5
1.3软件缺陷管理/9
1.3.1缺陷生存周期/9
1.3.2缺陷的描述及属性/10
1.4软件质量模型的发展/12
1.4.1GB/T 16260—1996软件质量模型/12
1.4.2GB/T 16260—2006软件质量模型/12
1.4.3ISO/IEC 25010—2014软件质量
模型/14
1.4.4基于质量模型的软件测试标准/16
1.5软件测试模型/17
1.5.1V模型/17
1.5.2W模型/18
1.5.3X模型/19
1.5.4H模型/19
1.6软件测试的局限性/20
1.6.1软件测试的覆盖问题/20
1.6.2穷举测试的局限性/22
1.6.3缺陷的隐蔽性/23
1.6.4软件测试的杀虫剂效应/25
1.7软件测试的分类/27
1.7.1软件功能测试分类/27
1.7.2根据测试阶段分类/28第2章传统的黑盒测试/33
2.1边界值分析/33
2.1.1边界值分析概念/33
2.1.2边界值分析原则/34
2.1.3边界值确定和分析法/35
2.1.4边界值测试举例/44
2.2等价类/47
2.2.1等价类的概念/48
2.2.2等价类的划分及依据/49
2.2.3等价类测试举例/51
2.3决策表/54
2.3.1决策表的概念/54
2.3.2决策表的建立/54
2.3.3决策表的简化/55
2.3.4决策表规则数统计/57
2.3.5决策表特性/59
2.3.6决策表测试用例设计/60
2.4因果图/62
2.4.1因果图的概念/62
2.4.2因果图设计/63
2.4.3利用因果图设计测试用例/63第3章基于控制流的测试/67
3.1概述/67
3.2图论基础/72
3.3流程图结构以及表示/74
3.4Python中的条件和判定/76
3.4.1条件与布尔值认定/76
3.4.2判定与短路计算/79
3.5语句覆盖/80
3.5.1语句覆盖定义及其测试/81
3.5.2语句覆盖的优缺点/84
3.5.3语句覆盖与死代码/86
3.6判定覆盖/88
3.6.1判定覆盖简介/88
3.6.2两路分支覆盖/89
3.6.3多路分支覆盖/89
3.6.4不可达分支/91
3.6.5异常处理多分支覆盖/92
3.6.6复合判定覆盖/96
3.7条件覆盖/99
3.7.1简单条件覆盖/99
3.7.2条件判定覆盖/102
3.7.3条件组合覆盖/106
3.8修正条件判定覆盖/107
3.8.1修正条件判定覆盖的定义/107
3.8.2唯一原因法生成MC/DC测试
用例/109
3.8.3屏蔽法生成MC/DC测试用例/111
3.8.4二叉树法生成MC/DC测试用例/112
3.8.5MC/DC的进一步讨论/115
3.9路径覆盖/117
3.9.1程序和控制流图表示/117
3.9.2独立路径和圈复杂度/121
3.9.3基本路径覆盖/126第4章组合测试/130
4.1多参数的故障模型/130
4.2利用正交表实现测试/132
4.2.1拉丁方阵/132
4.2.2正交表/135
4.2.3正交表的性质/138
4.2.4正交表测试/139
4.3组合测试的数学基础和定义/143
4.4成对组合测试用例的生成策略/146
4.4.1CATS算法/147
4.4.2AETG法/150
4.4.3IPO法/151
4.4.4GA法/155
4.5可变强度和具有约束的组合测试/157
4.5.1混合强度的组合测试/158
4.5.2参数值之间的约束/160
4.5.3种子组合和负面测试/162第5章基于有限状态机的测试/167
5.1有限状态机的定义/167
5.1.1有限状态机/167
5.1.2确定有限状态机和非确定有限
状态机/170
5.1.3确定有限状态机和非确定有限
状态机的转换/172
5.1.4带状态输出的有限自动机/175
5.2基于有限状态机测试的假设和特性/180
5.3有限状态机的故障模型/181
5.4基于有限状态机的测试/183
5.4.1概述/183
5.4.2状态覆盖测试/184
5.4.3迁移覆盖测试/186
5.4.4周游法(T方法)/187
5.4.5区分序列法(D方法)/189
5.4.6特征序列法(W方法)/193
5.4.7唯一输入/输出序列(U方法)/202第6章面向对象结构的软件测试/209
6.1Python面向对象/209
6.2Python面向对象编程基础/210
6.3基于类属性和对象属性的测试/213
6.4基于对象创建和销毁的测试/220
6.4.1基于类创建和继承测试/220
6.4.2基于多重继承初始化方法的测试/223
6.4.3多重继承方法解释顺序的测试/228
6.4.4基于对象销毁的测试/229
6.5基于装饰器的测试/233
6.6基于多态的测试/240第7章基于UML的软件测试/246
7.1UML概念和建模/246
7.2基于用例的软件测试/248
7.2.1用例图的概念/248
7.2.2用例图的覆盖准则/250
7.2.3用例图的测试用例设计/255
7.3基于类图的软件测试/260
7.3.1类图的概念/260
7.3.2类图的覆盖准则/264
7.3.3类图的测试用例设计/265
7.4基于活动图的软件测试/268
7.4.1活动图的概念/268
7.4.2活动图的覆盖准则/270
7.4.3活动图的测试用例设计/274
7.5基于序列图的软件测试/282
7.5.1序列图的概念/282
7.5.2序列图的覆盖准则/285
7.5.3序列图的测试用例设计/290
7.6基于状态图的软件测试方法/296
7.6.1状态图的概念/296
7.6.2状态图的覆盖准则/299
7.6.3状态图的测试用例设计/301第8章其他测试技术/309
8.1基于Petri网的测试用例生成/309
8.1.1Petri网的定义/309
8.1.2着色Petri网/311
8.1.3几种常见的系统结构模型/314
8.1.4Petri网的行为性质/316
8.1.5基于Petri网的测试/318
8.2蜕变测试/327
8.2.1蜕变测试的出发点/327
8.2.2蜕变测试的基本理论/328
8.2.3蜕变测试的过程/329
8.2.4蜕变测试的例子/330
8.3基于变异的软件测试方法/337
8.3.1变异测试的概念/337
8.3.2变异算子/338
8.3.3变异测试的过程/345
8.4基于故障树的软件测试方法/350
8.4.1故障树的概念/351
8.4.2故障树的建立和分析/351
8.4.3基于故障树的测试用例设计/354附录/358
附录A软件测试大事记/358
附录B常见正交测试表/360
附录CPICT工具指南/363
附录Dpytest测试简介/364
附录E最长公共子序列示例/371
参考文献/373
本书系统地介绍了软件测试的主要技术和方法,全书共分为8章。在讨论黑盒测试时介绍了边界值、等价类、决策表、因果图等方法,而基于控制流的测试则介绍了语句覆盖、判定、条件覆盖、修正判定覆盖和基本路径覆盖;在组合测试方面包括拉丁方阵、正交表等方法,重点讨论了成对组合测试方法;基于有限自动机的测试涵盖了T方法、D方法、W方法、U方法;面向对象语言测试方面包括类属性、对象属性测试,基于对象创建和销毁、装饰器、多态的软件测试;基于UML的软件测试介绍了基于用例图、类图、活动图、序列图、状态图等的测试方法;最后,本书讨论基于Petri网的软件测试、蜕变测试、基于变异的软件测试以及基于故障树的软件测试。本书结合当前技术发展的特点和工程实践的需求而编写,内容新颖,实操性强,既适合于软件测试和软件质量保障相关的技术人员在从事软件测试时参考,也适合作为软件工程专业的本科生、研究生学习软件测试课程的教科书。
覆盖等价类、边界值、决策表、因果图以及各种基于控制流的覆盖方法。
涵盖多重继承、异常、多态、装饰器等面向对象测试的高级话题。
详细阐述了当前组合测试的各种技术,介绍各种经典的成对组合测试策略,如CATS、AETG、IPO、GA等。
全面涵盖有限状态机FSM的测试方法,如T方法、D方法、W方法、U方法等。
所有的源码相关例子都给出完整的可运行的Python代码,方便读者学习。
详细介绍基于UML、CPN等模型的测试方法。
其他高级主题包括:蜕变测试、基于变异测试、故障树测试。