《软件测试技术基础》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:武剑洁,陈传波,肖来元编著
  • 出 版 社:武汉:华中科技大学出版社
  • 出版年份:2008
  • ISBN:9787560949017
  • 页数:378 页
图书介绍:本书从软件测试基础知识入手,内容涵盖软件测试的理论知识和实践环节。

第一部分 软件测试概述 3

第1章 软件测试的基本概念 3

1.1引子:4W1H问题 3

1.2软件与软件测试 3

1.2.1软件的定义 3

1.2.2软件的特点 4

1.2.3软件的分类 5

1.2.4软件测试的定义 6

1.2.5软件测试的重要性 9

1.3软件缺陷 10

1.3.1典型案例 10

1.3.2软件缺陷的定义 13

1.3.3案例实践一:NextDate的第一次测试 14

1.3.4软件缺陷的来源 15

1.3.5软件缺陷的修复成本 17

1.4测试用例 17

1.4.1测试用例的定义 17

1.4.2测试用例的重要性 17

1.4.3测试用例的评价标准 19

1.4.4测试用例设计的基本原则 19

1.4.5案例实践二:NextDate的第二次测试 20

1.4.6测试用例设计的注意事项 20

1.4.7测试需求 21

1.5测试环境 22

1.5.1测试环境的定义 22

1.5.2测试环境的重要性 22

1.5.3良好测试环境的要素 23

1.5.4测试环境的规划 23

1.5.5测试环境的维护和管理 24

1.6本章小结 25

课外阅读材料(见本书光盘) 25

思考题 25

参考文献 26

第2章 软件测试原理 27

2.1测试原则 27

2.1.1软件测试应追溯到用户需求 27

2.1.2应尽早和不断地测试 28

2.1.3穷尽测试是不可能的 28

2.1.4具有良好的测试态度 29

2.1.5对待缺陷的基本原则 30

2.1.6测试结果的处理原则 31

2.2软件测试的分类 31

2.2.1按是否需查看代码分类 31

2.2.2按是否需要执行被测软件分类 34

2.2.3按测试阶段分类 36

2.2.4按测试执行时是否需人工干预分类 39

2.2.5其他测试类型 40

2.3软件测试的过程模型 40

2.3.1V模型 41

2.3.2W模型 42

2.3.3H模型 43

2.3.4X模型 44

2.3.5测试成熟度模型 44

2.3.6测试过程模型的使用策略 46

2.4软件测试的发展概况 47

2.4.1第一阶段 47

2.4.2第二阶段 48

2.4.3第三阶段 49

2.4.4第四阶段 50

2.5国内外软件测试的现状 51

2.5.1国外现状 51

2.5.2国内现状 51

2.6软件测试职业的现状 55

2.6.1人才需求大 55

2.6.2职业具有明显优势 55

2.6.3职业瓶颈 57

2.7软件测试工程师的素质要求 58

2.7.1两项意识 58

2.7.2三颗“心” 58

2.7.3四种能力 59

2.7.4五个特性 61

2.8本章小结 62

课外阅读材料(见本书光盘) 63

思考题 63

参考文献 63

第二部分 软件测试方法 67

第3章 黑盒测试技术 67

3.1通过测试与失败测试 67

3.2边界值测试 68

3.2.1起因 68

3.2.2考虑的问题 68

3.2.3边界点确定的基本原则 68

3.2.4基本边界值分析 69

3.2.5健壮性测试 71

3.2.6案例实践一:NextDate的第三次测试 71

3.2.7针对输出域的边界值分析 71

3.2.8案例实践二:Commission的第一次测试 71

3.2.9边界值测试小结 71

3.3等价类测试 72

3.3.1起因 72

3.3.2考虑的问题 73

3.3.3有效等价类和无效等价类 74

3.3.4等价类划分的基本原则 74

3.3.5测试用例设计的一般原则 74

3.3.6弱组合形式的等价类测试 75

3.3.7强组合形式的等价类测试 76

3.3.8案例实践三:NextDate的第四次测试 77

3.3.9针对输出域的等价类测试 77

3.3.10案例实践四:Commission的第二次测试 77

3.3.11基于等价类的边界值测试 77

3.3.12等价类测试小结 78

3.4因果图 78

3.4.1起因 78

3.4.2考虑的问题 79

3.4.3基本思想 79

3.4.4案例实践五:自动饮料机 80

3.4.5案例实践六:NextDate的第五次测试 80

3.4.6因果图测试小结 80

3.5决策表 81

3.5.1起因 81

3.5.2考虑的问题 81

3.5.3决策表的构成 81

3.5.4决策表的化简 81

3.5.5一般步骤 82

3.5.6案例实践七:NextDate的第六次测试 82

3.5.7决策表测试小结 82

3.6错误推测法 83

3.7场景法 83

3.7.1起因 83

3.7.2考虑的问题 83

3.7.3一般步骤 84

3.7.4测试过程 84

3.7.5案例实践八:自动柜员机的第一次测试 85

3.7.6场景法测试小结 85

3.8功能图法 86

3.8.1起因 86

3.8.2定义 86

3.8.3测试用例的设计 86

3.8.4案例实践九:自动柜员机的第二次测试 86

3.8.5功能图法小结 86

3.9正交试验法 87

3.9.1起因 87

3.9.2案例的相关说明 87

3.9.3基本原理 87

3.9.4试验结果分析 89

3.9.5优点 90

3.9.6一般步骤 93

3.9.7案例实践十:NextDate的第七次测试 94

3.9.8正交试验法小结 94

3.10综合案例 95

3.10.1黑盒测试总结 95

3.10.2案例实践十一:保险金问题 95

3.11本章小结 96

思考题 96

参考文献 97

第4章 白盒测试技术 98

4.1概述 98

4.1.1控制流分析技术 98

4.1.2数据流分析 101

4.1.3静态白盒测试 101

4.2逻辑覆盖 102

4.2.1案例代码的基本描述 102

4.2.2语句覆盖 103

4.2.3判定覆盖 105

4.2.4条件覆盖 106

4.2.5判定/条件覆盖 107

4.2.6条件组合覆盖 109

4.2.7修正的判定/条件覆盖 109

4.2.8案例实践一:闰年判断的代码测试 113

4.2.9虚假的安全感 113

4.2.10更多讨论 114

4.2.11逻辑覆盖小结 114

4.3基路径测试 115

4.3.1案例代码的基本描述 115

4.3.2相关概念 115

4.3.3起因 118

4.3.4方法特点 119

4.3.5一般步骤 119

4.3.6案例实践二:Trgl问题的第一次测试 122

4.3.7案例实践三:ATM机的功能图法测试 122

4.3.8基路径测试小结 122

4.4对循环的测试 123

4.4.1循环的分类 123

4.4.2考虑的问题 124

4.4.3针对循环次数的测试 124

4.4.4针对循环过程的测试 125

4.4.5针对不同循环组合 125

4.4.6案例实践四:冒泡法排序(从小到大排列) 126

4.4.7循环的测试小结 126

4.5数据流测试 127

4.5.1起因 127

4.5.2案例代码的基本描述 128

4.5.3基本策略 128

4.5.4案例实践五:Commission问题的数据流测试 130

4.5.5测试覆盖指标 130

4.5.6数据流测试小结 131

4.6静态白盒测试 132

4.6.1静态测试的重要性 132

4.6.2执行静态测试的时机 132

4.6.3代码检查 132

4.6.4静态结构分析 137

4.6.5代码质量度量 140

4.6.6内存泄漏测试 143

4.6.7静态白盒测试小结 144

4.7动态白盒测试技术 145

4.7.1程序插桩 145

4.7.2案例实践六:最大公约数的程序插桩 147

4.7.3程序插桩小结 147

4.8白盒指标对黑盒测试的评估 148

4.9综合案例 148

4.9.1白盒测试总结 148

4.9.2案例实践七:保险金问题 149

4.10本章小结 149

课外阅读材料(见本书光盘) 149

思考题 149

参考文献 151

第5章 面向对象软件的测试 153

5.1概述 153

5.1.1对象 153

5.1.2类 154

5.1.3封装 155

5.1.4继承 155

5.1.5多态 155

5.1.6消息 155

5.1.7接口 156

5.2面向对象的软件测试模型 156

5.3面向对象的单元测试 156

5.3.1与传统单元测试的区别 156

5.3.2基本步骤 158

5.3.3类的优先级 159

5.3.4测试用例的设计 161

5.3.5测试驱动的实现方式 168

5.3.6测试代码的组织 172

5.3.7测试驱动框架 173

5.3.8案例实践一:类MyPoint的第一次测试尝试 175

5.3.9类的质量度量 175

5.3.10测试覆盖 176

5.4JUnit测试 177

5.4.1面临的问题 177

5.4.2JUnit的概念 178

5.4.3JUnit的特性及优点 179

5.4.4JUnit下载与安装 180

5.4.5JUnit3.8.x测试思想 181

5.4.6案例实践二:类MyPoint的第二次测试尝试 182

5.4.7JUnit使用经验 183

5.4.8特殊类的测试 184

5.4.9案例实践三:MyPoint系列的测试 190

5.4.10JUnit4的新特性 191

5.5面向对象的集成测试和系统测试 197

5.6本章小结 199

思考题 199

参考文献 199

第三部分 软件测试阶段 203

第6章 单元测试 203

6.1单元测试的概念 203

6.1.1单元测试的定义 203

6.1.2单元测试的重要性 204

6.2单元测试的误区 204

6.3单元测试的现状 207

6.4单元测试的目标及内容 208

6.4.1模块接口测试 208

6.4.2模块局部数据结构测试 209

6.4.3模块边界条件测试 209

6.4.4模块中所有独立的执行路径测试 209

6.4.5模块的所有错误处理路径测试 209

6.5单元测试涉及的测试方法 210

6.5.1静态测试技术 210

6.5.2动态测试技术 210

6.6单元测试环境 210

6.6.1驱动模块和桩模块的定义 211

6.6.2驱动模块和桩模块的使用条件 211

6.6.3驱动模块和桩模块的设计 212

6.6.4测试驱动程序的定义 212

6.6.5案例实践一:对账单优惠计算问题的单元测试尝试 213

6.7单元测试的策略 213

6.7.1自顶向下 213

6.7.2自底向上 213

6.7.3独立测试 214

6.8单元测试的过程 214

6.8.1计划阶段 214

6.8.2设计实现阶段 218

6.8.3执行评估阶段 220

6.9案例实践二:NextDate问题的单元测试 220

6.10本章小结 220

思考题 221

参考文献 221

第7章 集成测试 222

7.1集成测试的概念 222

7.1.1集成测试的定义 222

7.1.2集成测试与单元测试和系统测试的区别 222

7.1.3集成测试的内容 223

7.1.4集成测试的开发 223

7.1.5集成测试的环境 223

7.2集成测试的评价 224

7.3集成测试策略 224

7.3.1案例说明 224

7.3.2成对集成 224

7.3.3邻居集成 225

7.3.4大爆炸集成 226

7.3.5自顶向下的集成 227

7.3.6自底向上的集成 230

7.3.7三明治集成 232

7.3.8成对集成和邻居集成 235

7.3.9几种集成策略的比较 236

7.4其他集成测试策略 236

7.4.1基于功能分解的集成 236

7.4.2基于风险的集成 237

7.5集成测试的过程 237

7.5.1计划阶段 237

7.5.2设计实现阶段 237

7.5.3执行评估阶段 238

7.6本章小结 238

思考题 238

参考文献 238

第8章 系统测试 239

8.1系统测试的定义 239

8.2功能测试 239

8.2.1功能测试的内容 239

8.2.2功能测试的策略 240

8.2.3功能测试自动化 242

8.3系统测试的内容 242

8.3.1性能测试 242

8.3.2安全性测试 245

8.3.3兼容性测试 246

8.3.4可恢复性测试 248

8.3.5用户界面测试 249

8.3.6文档测试 253

8.3.7可安装性测试 254

8.4本章小结 257

思考题 257

参考文献 257

第四部分 软件测试实践 261

第9章 测试用例的组织和管理 261

9.1测试用例管理的重要性 261

9.2测试用例报告 262

9.2.1测试用例的构成 262

9.2.2测试用例模板 264

9.2.3测试用例优先级的快速划分 269

9.3编写有效的测试用例 269

9.3.1面临的困难 269

9.3.2解决的措施 270

9.4测试用例的组织和跟踪 270

9.4.1整理模块需求 270

9.4.2撰写测试计划 271

9.4.3设计测试思路 271

9.4.4编写测试用例 271

9.4.5评审测试用例 271

9.4.6修改更新测试用例 273

9.4.7执行测试用例 274

9.4.8分析评估测试用例质量 275

9.5测试用例的理解误区 275

9.6本章小结 276

课外阅读材料(见本书光盘) 276

思考题 276

参考文献 276

第10章 缺陷管理 277

10.1缺陷的特点 277

10.2缺陷的属性 278

10.2.1可重现性 278

10.2.2严重性 279

10.2.3优先级 280

10.2.4可修复性 281

10.3缺陷的跟踪和管理 282

10.3.1缺陷的状态 282

10.3.2缺陷的处理方式 283

10.3.3缺陷的处理流程 285

10.4缺陷管理系统 287

10.4.1缺陷管理系统的重要性 287

10.4.2缺陷管理的目标 287

10.4.3缺陷报告 287

10.4.4有效报告缺陷 292

10.4.5缺陷跟踪的使用者和权限 293

10.4.6缺陷提交的注意事项 294

10.4.7缺陷分析 294

10.5缺陷管理工具 297

10.5.1缺陷管理系统的需求 297

10.5.2常见工具 298

10.5.3BugFree使用指南 298

10.6本章小结 312

课外阅读材料(见本书光盘) 312

思考题 313

参考文献 313

第五部分 自动化测试 317

第11章 自动化测试 317

11.1自动化测试概述 317

11.1.1定义 317

11.1.2优势和局限性 318

11.2认识的误区 319

11.3自动化测试的实施 320

11.3.1自动化测试需解决的问题 320

11.3.2自动化测试的过程 321

11.3.3提高自动化测试的水平 323

11.4测试工具 324

11.4.1测试工具分类 324

11.4.2主流的测试工具 325

11.4.3测试工具的选择 327

11.5WinRunner的使用 327

11.5.1功能简介 327

11.5.2WinRunner的测试流程 328

11.5.3WinRunner的执行 329

11.5.4WinRunner界面简介 330

11.5.5WinRunner范例程序 331

11.5.6GUI对象的识别 331

11.5.7测试脚本的录制和回放 336

11.5.8对象检查点 344

11.5.9函数的使用 350

11.5.10数据驱动的测试 354

11.6本章小结 358

课外阅读材料(见本书光盘) 358

思考题 358

参考文献 359

附录A常见软件测试术语 360

附录B软件测试的国内外网络链接 377