图书目录

目录

第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