图书介绍

软件测试 一个软件工艺师的方法 原书第4版PDF|Epub|txt|kindle电子书版本网盘下载

软件测试 一个软件工艺师的方法 原书第4版
  • (美)保罗·C.乔根森著 著
  • 出版社: 北京:机械工业出版社
  • ISBN:9787111581314
  • 出版时间:2017
  • 标注页数:324页
  • 文件大小:49MB
  • 文件页数:338页
  • 主题词:软件工具-测试-教材

PDF下载


点此进入-本书在线PDF格式电子书下载【推荐-云解压-方便快捷】直接下载PDF格式图书。移动端-PC端通用
种子下载[BT下载速度快]温馨提示:(请使用BT下载软件FDM进行下载)软件下载地址页直链下载[便捷但速度慢]  [在线试读本书]   [在线获取解压码]

下载说明

软件测试 一个软件工艺师的方法 原书第4版PDF格式电子书版下载

下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。

建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!

(文件页数 要大于 标注页数,上中下等多册电子书除外)

注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具

图书目录

第一部分 数学基础2

第1章 测试概述2

1.1 基本概念2

1.2 测试用例3

1.3 利用维恩图来理解软件测试3

1.4 构造测试用例4

1.4.1 基于规格说明的测试5

1.4.2 基于代码的测试5

1.4.3 两种测试方法的对比6

1.5 故障的分类7

1.6 测试的层次8

1.7 习题8

1.8 参考文献8

第2章 程序示例9

2.1 通用伪代码9

2.2 角形问题10

2.2.1 问题描述10

2.2.2 三角形问题的讨论11

2.2.3 三角形问题的经典实现11

2.2.4 三角形问题的结构化实现14

2.3 NextDate日期函数15

2.3.1 问题描述15

2.3.2 NextDate函数的讨论16

2.3.3 NextDate函数的实现16

2.4 佣金问题18

2.4.1 问题描述18

2.4.2 佣金问题的讨论19

2.4.3 佣金问题的实现19

2.5 SATM系统20

2.5.1 问题描述20

2.5.2 SATM系统的讨论21

2.6 货币兑换计算器22

2.7 雨刷控制器22

2.8 车库门遥控开关22

2.9 习题23

2.10 参考文献24

第3章 面向测试人员的离散数学25

3.1 集合论25

3.1.1 集合的成员关系25

3.1.2 集合的定义方法25

3.1.3 空集26

3.1.4 集合的维恩图26

3.1.5 集合运算27

3.1.6 集合关系28

3.1.7 集合划分29

3.1.8 集合恒等29

3.2 函数30

3.2.1 定义域与值域30

3.2.2 函数类型30

3.2.3 函数复合31

3.3 关系32

3.3.1 集合之间的关系32

3.3.2 单个集合上的关系33

3.4 命题逻辑34

3.4.1 逻辑运算符34

3.4.2 逻辑表达式35

3.4.3 逻辑等价35

3.5 概率论36

3.6 习题37

3.7 参考文献37

第4章 面向测试人员的图论38

4.1 图38

4.1.1 节点的度38

4.1.2 关联矩阵39

4.1.3 邻接矩阵39

4.1.4 路径40

4.1.5 连通性40

4.1.6 压缩图41

4.1.7 圈数41

4.2 有向图41

4.2.1 入度与出度42

4.2.2 节点类型42

4.2.3 有向图的邻接矩阵43

4.2.4 路径与半路径43

4.2.5 可达矩阵44

4.2.6 n连通性44

4.2.7 强分图44

4.3 软件测试中常用的图45

4.3.1 程序图45

4.3.2 有限状态机46

4.3.3 Petri网47

4.3.4 事件驱动Petri网49

4.3.5 状态图50

4.4 习题52

4.5 参考文献52

第二部分 单元测试54

第5章 边界值测试54

5.1 边界值分析54

5.1.1 边界值分析的拓展55

5.1.2 边界值分析的局限性56

5.2 健壮性测试56

5.3 最坏情况测试57

5.4 特殊值测试57

5.5 示例58

5.5.1 三角形问题的测试用例58

5.5.2 NextDate函数的测试用例59

5.5.3 佣金问题的测试用例60

5.6 随机测试62

5.7 边界值测试的原则63

5.8 习题65

第6章 等价类测试66

6.1 等价类66

6.2 传统的等价类测试66

6.3 改进的等价类测试67

6.3.1 弱一般等价类测试68

6.3.2 强一般等价类测试68

6.3.3 弱健壮等价类测试68

6.3.4 强健壮等价类测试69

6.4 三角形问题的等价类测试用例69

6.5 NextDate函数的等价类测试用例71

6.6 佣金问题的等价类测试用例73

6.7 边缘测试75

6.8 原则与注意事项75

6.9 习题76

6.10 参考文献76

第7章 基于决策表的测试77

7.1 决策表77

7.2 决策表使用技巧77

7.3 三角形问题的测试用例80

7.4 Next Date函数的测试用例81

7.4.1 第一轮尝试81

7.4.2 第二轮尝试82

7.4.3 第三轮尝试83

7.5 佣金问题的测试用例85

7.6 因果关系图85

7.7 原则与注意事项86

7.8 习题87

7.9 参考文献87

第8章 路径测试88

8.1 程序图88

8.2 DD路径90

8.3 测试覆盖指标92

8.3.1 基于程序图的覆盖度量方法92

8.3.2 E.F.Miller的覆盖度量方法92

8.3.3 复合条件下的闭合路径95

8.3.4 示例96

8.3.5 测试覆盖分析器99

8.4 基路径测试99

8.4.1 McCabe的基路径方法100

8.4.2 McCabe基路径方法的考虑102

8.4.3 McCabe方法的基本复杂度103

8.5 原则与注意事项105

8.6 习题105

8.7 参考文献106

第9章 数据流测试107

9.1 定义/使用测试107

9.1.1 举例108

9.1.2 stocks的定义使用路径110

9.1.3 locks的定义使用路径110

9.1.4 totalLocks的定义使用路径113

9.1.5 sales的定义使用路径113

9.1.6 commission的定义使用路径115

9.1.7 定义使用路径的测试覆盖指标115

9.1.8 面向对象编码的定义/使用测试116

9.2 基于程序切片的测试116

9.2.1 举例118

9.2.2 风格与技术122

9.2.3 切片拼接123

9.3 程序切片工具124

9.4 习题125

9.5 参考文献125

第10章 单元测试回顾126

10.1 测试方法的摇摆126

10.2 测试方法摇摆问题探索128

10.3 用于评估测试方法的指标131

10.4 重新修订的案例研究133

10.4.1 基于规格说明的测试133

10.4.2 基于代码的测试136

10.5 指导方针138

10.6 习题139

10.7 参考文献139

第三部分 超越单元测试142

第11章 基于生命周期的测试142

11.1 传统瀑布模型测试142

11.1.1 瀑布模型测试143

11.1.2 瀑布模型的优缺点143

11.2 在迭代生命周期中测试144

11.2.1 瀑布模型的变体144

11.2.2 基于规格说明的生命周期模型146

11.3 敏捷测试147

11.3.1 极限编程148

11.3.2 测试驱动开发148

11.3.3 Scrum149

11.4 敏捷模型驱动开发150

11.4.1 敏捷模型驱动开发概述150

11.4.2 模型驱动的敏捷开发151

11.5 参考文献151

第12章 基于模型的测试152

12.1 基于模型测试152

12.2 恰当的系统模型152

12.2.1 Peterson构架153

12.2.2 主流模型的表达能力154

12.2.3 建模问题154

12.2.4 选择恰当的模型156

12.3 支持基于模型的测试的商用工具156

12.4 参考文献156

第13章 集成测试157

13.1 基于功能分解的集成157

13.1.1 自顶向下的集成160

13.1.2 自底向上的集成161

13.1.3 三明治集成161

13.1.4 优点和缺点162

13.2 基于调用图的集成162

13.2.1 成对集成163

13.2.2 相邻集成164

13.2.3 优点和缺点166

13.3 基于路径的集成166

13.3.1 新概念与扩展概念167

13.3.2 MM路径的复杂度168

13.3.3 优点和缺点168

13.4 示例:集成版NextDate169

13.4.1 基于分解的集成169

13.4.2 基于调用图的集成170

13.4.3 基于MM路径的集成172

13.5 结论和建议174

13.6 习题174

13.7 参考文献175

第14章 系统测试176

14.1 线索176

14.1.1 线索存在的可能性177

14.1.2 线索定义177

14.2 需求说明的基本概念178

14.2.1 数据178

14.2.2 操作179

14.2.3 设备179

14.2.4 事件180

14.2.5 线索181

14.2.6 基本概念之间的关系181

14.3 基于模型的线索181

14.4 基于用例的线索184

14.4.1 用例的层次184

14.4.2 一个实用的测试执行系统186

14.4.3 系统级的测试用例187

14.4.4 用事件驱动Petri网来表述用例188

14.4.5 用事件驱动Petri网来表述有限状态机190

14.4.6 哪种视角最适用于系统测试190

14.5 长用例与短用例190

14.6 到底需要多少用例193

14.6.1 关联到输入事件193

14.6.2 关联到输出事件194

14.6.3 关联到全部端口事件194

14.6.4 关联到类194

14.7 系统测试的覆盖性指标194

14.7.1 基于模型系统测试的覆盖性195

14.7.2 基于规格说明系统测试的覆盖性195

14.8 系统测试的其他方法196

14.8.1 性能分析197

14.8.2 基于风险的测试199

14.9 非功能性系统测试200

14.9.1 压力测试的策略200

14.9.2 利用数学的方法201

14.10 原子系统功能测试示例202

14.10.1 找出输入事件和输出事件204

14.10.2 找出原子系统功能205

14.10.3 修正原子系统功能205

14.11 习题206

14.12 参考文献207

第15章 面向对象测试208

15.1 面向对象测试的相关问题208

15.1.1 面向对象测试的单元208

15.1.2 合成与封装的含义208

15.1.3 继承的含义210

15.1.4 多态性的含义211

15.1.5 面向对象测试的层次211

15.1.6 面向对象软件的数据流测试211

15.2 面向对象NextDate示例211

15.2.1 CalendarUnit类213

15.2.2 testIt类213

15.2.3 Date类213

15.2.4 Day类214

15.2.5 Month类214

15.2.6 Year类215

15.3 面向对象的单元测试216

15.3.1 以方法为单元的测试216

15.3.2 以类为单元的测试216

15.4 面向对象的集成测试221

15.4.1 UML对集成测试的支持221

15.4.2 面向对象软件的MM路径223

15.4.3 面向对象数据流集成测试的框架227

15.5 面向对象的系统测试229

15.5.1 货币兑换计算器的UML描述229

15.5.2 基于UML的系统测试233

15.5.3 基于状态图的系统测试235

15.6 习题235

15.7 参考文献235

第16章 软件复杂度236

16.1 单元级复杂度236

16.1.1 圈复杂度236

16.1.2 计算复杂度239

16.2 集成级复杂度240

16.2.1 集成级圈复杂度241

16.2.2 消息流量复杂度242

16.3 软件复杂度案例242

16.3.1 单元级圈复杂度243

16.3.2 消息集成级圈复杂度243

16.4 面向对象复杂度244

16.4.1 WMC——每个类的加权方法245

16.4.2 DIT——继承树的深度245

16.4.3 NOC——子类数量246

16.4.4 CBO——类之间的耦合性度量246

16.4.5 RFC——对类的响应246

16.4.6 LCOM——方法内聚缺乏度246

16.5 系统级复杂度246

16.6 习题246

16.7 参考文献248

第17章 基于模型的综合系统测试249

17.1 综合系统的特征249

17.2 综合系统的实例250

17.2.1 车库门控制器(受控)250

17.2.2 空中交通管理系统(告知式)251

17.2.3 GVSU雪灾应急系统(协作式)251

17.2.4 磐石联邦信贷联盟(虚拟式)252

17.3 用于综合系统的软件工程252

17.3.1 需求引出252

17.3.2 用UML方言SysML描述方案253

17.3.3 测试255

17.4 综合系统的基本通信单元256

17.4.1 Petri网表示ESML提示符256

17.4.2 泳道Petri网中的新提示符258

17.5 综合系统等级对提示符的影响260

17.5.1 受控式和应答式综合系统260

17.5.2 协作式和虚拟式综合系统260

17.6 习题260

17.7 参考文献260

第18章 探索式测试261

18.1 探究探索式测试261

18.2 探索一个常见示例263

18.3 观察与结论264

18.4 习题265

18.5 参考文献265

第19章 测试驱动开发266

19.1 “测试然后编码”的软件开发周期266

19.2 自动化测试执行(测试框架)273

19.3 Java和JUnit示例274

19.3.1 Java源代码274

19.3.2 JUnit测试代码276

19.4 其他待解决的问题277

19.4.1 基于规格说明还是基于代码277

19.4.2 需要配置管理吗277

19.4.3 粒度应该多大277

19.5 测试驱动开发的优缺点及其他相关问题278

19.6 模型驱动开发与测试驱动开发对比279

第20章 全对测试详述282

20.1 全对测试技术282

20.1.1 程序输入283

20.1.2 独立变量284

20.1.3 输入的顺序286

20.1.4 完全由输入所引发的失效288

20.2 对NIST研究成果的进一步分析288

20.3 全对测试的适用范围289

20.4 对全对测试的建议290

20.5 习题290

20.6 参考文献290

第21章 测试用例的评估291

21.1 变异测试291

21.1.1 程序变异的规范化表达291

21.1.2 突变算子292

21.2 随机扰动法296

21.3 鱼篓统计法和故障注入297

21.4 习题297

21.5 参考文献297

第22章 软件技术评审298

22.1 软件技术评审的经济价值298

22.2 技术评审中的各种角色299

22.2.1 产品开发人员300

22.2.2 评审组组长300

22.2.3 记录员300

22.2.4 评审专家300

22.2.5 角色的多重性301

22.3 技术评审的分类301

22.3.1 演练301

22.3.2 技术检验301

22.3.3 审计302

22.3.4 各类评审的比较302

22.4 一个检查包的内容302

22.4.1 工作成果需求302

22.4.2 冻结工作成果302

22.4.3 标准和清单303

22.4.4 评审问题电子表格303

22.4.5 评审报告表格304

22.4.6 错误的严重等级304

22.4.7 评审报告大纲305

22.5 一个工业强度的检查过程305

22.5.1 提交计划306

22.5.2 由评审员进行介绍306

22.5.3 准备306

22.5.4 评审会议307

22.5.5 报告的准备307

22.5.6 部署307

22.6 有效评审文化307

22.6.1 规矩308

22.6.2 管理层参与评审会议308

22.6.3 两个评审的故事308

22.7 检查案例分析309

22.8 参考文献310

第23章 尾声:软件测试精益求精311

23.1 软件测试是一种技艺311

23.2 软件测试的最佳实践312

23.3 让软件测试更出色的10项最佳实践313

23.3.1 模型驱动的敏捷开发313

23.3.2 慎重地定义与划分测试的层次313

23.3.3 基于模型的系统级测试313

23.3.4 系统测试的扩展313

23.3.5 利用关联矩阵指导回归测试314

23.3.6 利用MM路径实现集成测试314

23.3.7 把基于规格说明的测试和基于代码的单元级测试有机地结合起来314

23.3.8 基于单个单元特性的代码覆盖指标314

23.3.9 维护阶段的探索式测试314

23.3.10 测试驱动开发314

23.4 针对不同项目实现最佳实践314

23.4.1 任务关键型项目315

23.4.2 时间关键型项目315

23.4.3 对遗留代码的纠错维护315

23.5 参考文献315

附录 完整的技术评审文档集316

热门推荐