《软件测试方法和技术 第3版》PDF下载

  • 购买积分:13 如何计算积分?
  • 作  者:朱少民编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2014
  • ISBN:9787302370314
  • 页数:361 页
图书介绍:本书系统地介绍了软件测试的概念,从不同的视角来探讨软件测试的本质及其内涵,重点讲解了软件测试的各种方法和技术,并将它们应用于不同的测试阶段,满足不同的应用系统测试的需求。

第1篇 软件测试的原理与方法 3

第1章 引论 3

1.1 软件测试的必要性 3

1.1.1 迪士尼并不总是带来笑声 3

1.1.2 一个缺陷造成了数亿美元损失 4

1.1.3 火星探测飞船坠毁 4

1.1.4 更多的悲剧 5

1.2 为什么要进行软件测试 6

1.3 什么是软件测试 7

1.3.1 软件测试学科的形成 7

1.3.2 正反两方面的争辩 7

1.3.3 软件测试的定义 8

1.3.4 软件测试的其他观点 9

1.4 测试和开发的关系 10

1.5 测试和质量保证的关系 11

1.6 测试驱动开发的思想 12

小结 13

思考题 13

第2章 软件测试的基本概念 14

2.1 软件缺陷 14

2.1.1 软件质量的内涵 15

2.1.2 软件缺陷的定义 18

2.1.3 软件缺陷的产生 19

2.1.4 软件缺陷的构成 19

2.1.5 修复软件缺陷的代价 20

2.2 软件测试的分类 21

2.3 静态测试和动态测试 23

2.3.1 产品评审 23

2.3.2 静态分析 24

2.3.3 验证和确认 24

2.4 主动测试和被动测试 25

2.5 黑盒测试和白盒测试 26

2.6 软件测试级别 28

2.7 软件测试计划和测试用例 29

2.7.1 测试计划 30

2.7.2 测试用例 30

2.8 专业测试人员的责任和要求 31

2.8.1 专业软件测试人员的责任 31

2.8.2 对专业测试人员的要求 32

2.8.3 优秀测试工程师应具备的素质 33

小结 35

思考题 35

第3章 软件测试方法 36

3.1 基于直觉和经验的方法 37

3.1.1 Ad-hoc测试方法和ALAC测试 37

3.1.2 错误推测法 38

3.2 基于输入域的方法 39

3.2.1 等价类划分法 39

3.2.2 边界值分析法 41

3.3 基于组合及其优化的方法 43

3.3.1 判定表方法 43

3.3.2 因果图法 45

3.3.3 Pair-wise方法 46

3.3.4 正交试验法 48

3.4 基于逻辑覆盖的方法 49

3.4.1 判定覆盖 49

3.4.2 条件覆盖 51

3.4.3 判定-条件覆盖 51

3.4.4 条件组合覆盖 52

3.4.5 基本路径覆盖 53

3.5 基于缺陷模式的测试 55

3.5.1 常见的缺陷模式 56

3.5.2 DPBT的测试过程 56

3.6 基于模型的测试 57

3.6.1 功能图法 58

3.6.2 模糊测试方法 59

3.7 形式化测试方法 61

3.7.1 形式化方法 61

3.7.2 形式化验证 62

3.7.3 扩展有限状态机方法 63

小结 65

思考题 67

第4章 软件测试流程和规范 69

4.1 传统的软件测试过程 69

4.1.1 W模型 70

4.1.2 TMap NEXT 71

4.2 敏捷测试过程 73

4.2.1 敏捷测试的特征 74

4.2.2 敏捷测试流程 74

4.2.3 基于脚本测试和探索式测试 76

4.3 软件测试学派 77

4.4 基于风险的测试策略 79

4.5 测试过程改进 80

4.5.1 TMMi 80

4.5.2 TPI NEXT 82

4.5.3 CTP 86

4.5.4 STEP 87

4.6 软件测试规范 88

小结 92

思考题 92

第2篇 软件测试的技术 95

第5章 单元测试与集成测试 95

5.1 单元测试的目标和任务 95

5.1.1 为何要进行单元测试 95

5.1.2 单元测试的目标和要求 96

5.1.3 单元测试的任务 97

5.2 静态测试 99

5.2.1 编码的标准和规范 99

5.2.2 代码评审 102

5.3 动态测试 106

5.3.1 驱动程序和桩程序 106

5.3.2 类测试 107

5.4 代码评审案例分析 109

5.4.1 空指针保护 109

5.4.2 格式化数字错误 110

5.4.3 字符串或数组越界错误 111

5.4.4 资源不合理使用 111

5.4.5 不当使用synchronized导致系统性能下降 112

5.5 分层单元测试 113

5.5.1 Action层的单元测试 113

5.5.2 数据访问层的单元测试 115

5.5.3 Servlet的单元测试 117

5.6 单元测试工具 119

5.6.1 JUnit介绍 119

5.6.2 Eclipse中JUnit应用举例 121

5.6.3 JUnit+Ant构建自动的单元测试 124

5.6.4 代码的静态检测工具 125

5.6.5 SourceMonitor检测代码复杂度 127

5.6.6 开源的单元测试工具 128

5.6.7 商业的单元测试工具 130

5.7 系统集成的模式与方法 132

5.7.1 集成测试的模式 133

5.7.2 自顶向下和自底向上集成方法 133

5.7.3 混合策略 134

5.7.4 持续集成 135

小结 136

思考题 136

第6章 系统测试 137

6.1 系统级功能测试 137

6.1.1 功能测试要求 138

6.1.2 Web服务器的功能测试 139

6.1.3 一套Web功能测试工具 140

6.1.4 AutoIT及其客户端测试工具 145

6.1.5 嵌入式测试工具 148

6.2 回归测试 149

6.2.1 目的 149

6.2.2 策略及其方法 150

6.3 性能测试 151

6.3.1 系统性能指标和测试类型 151

6.3.2 系统负载及其模式 153

6.3.3 性能测试的基本过程 154

6.3.4 性能测试结果分析 155

6.3.5 JMeter及系统性能测试工具 156

6.3.6 Web性能测试 159

6.3.7 用JProfiler完成应用服务器的性能测试 161

6.3.8 压力测试 165

6.3.9 容量测试 167

6.4 安全性测试 168

6.4.1 安全性测试的范围与方法 168

6.4.2 Web安全性测试 172

6.4.3 安全性测试工具 175

6.5 容错性测试 176

6.5.1 容错性测试的要点 177

6.5.2 数据库并发控制测试 178

6.6 兼容性测试 180

6.6.1 软件兼容性测试 180

6.6.2 数据共享兼容性测试 181

6.6.3 硬件兼容性测试 182

6.7 可靠性测试 183

小结 185

思考题 185

第7章 验收测试 186

7.1 验收测试过程 186

7.2 产品规格说明书的验证 188

7.2.1 产品规格说明书的评审 188

7.2.2 产品规格说明书的验证 188

7.2.3 文档的测试 189

7.3 用户界面和可用性测试 190

7.4 安装测试和可恢复性测试 193

小结 195

思考题 195

第8章 软件本地化测试 196

8.1 什么是软件本地化 196

8.1.1 软件本地化与国际化 197

8.1.2 字符集问题 197

8.1.3 软件国际化标准 198

8.1.4 软件本地化基本步骤 199

8.1.5 软件本地化测试 200

8.2 翻译验证 201

8.3 本地化测试的技术问题 203

8.3.1 数据格式 203

8.3.2 页面显示和布局 208

8.3.3 配置和兼容性问题 209

8.4 本地化的功能测试 210

小结 211

思考题 212

第9章 测试自动化及其框架 213

9.1 测试自动化的内涵 213

9.1.1 手工测试的局限性 214

9.1.2 什么是测试自动化 214

9.1.3 软件测试自动化的优势 215

9.2 测试自动化实现的原理 216

9.2.1 代码分析 217

9.2.2 对象识别 218

9.2.3 脚本技术 219

9.2.4 自动比较技术 221

9.2.5 测试自动化系统的构成 222

9.3 测试自动化的实施 224

9.3.1 测试工具的分类 224

9.3.2 测试工具的选择 225

9.3.3 测试自动化普遍存在的问题 226

9.3.4 自动化测试的引入和应用 227

9.4 功能测试工具特性要求 228

9.5 性能测试工具特性要求 232

9.6 测试自动化的框架 233

小结 234

思考题 234

第3篇 软件测试项目实践 237

第10章 测试需求分析与测试计划 237

10.1 测试的目标和准则 237

10.2 测试需求分析 239

10.2.1 测试需求分析的基本方法 239

10.2.2 测试需求分析的技术 240

10.2.3 功能测试范围分析 241

10.2.4 非功能性的系统测试需求 242

10.3 测试项目的估算与进度安排 244

10.3.1 测试工作量估算 244

10.3.2 工作分解结构表方法 245

10.3.3 资源的安排 246

10.3.4 测试里程碑和进度表 248

10.4 测试风险和测试策略 249

10.4.1 测试风险管理计划 249

10.4.2 测试策略的确定 250

10.5 测试计划的内容与编制 252

10.5.1 测试计划内容 252

10.5.2 测试项目的计划过程 253

10.5.3 制定有效的测试计划 254

小结 255

思考题 256

第11章 设计和维护测试用例 257

11.1 测试用例构成及其设计 257

11.1.1 测试用例的重要性 258

11.1.2 测试用例设计书写标准 258

11.1.3 测试用例设计考虑因素 260

11.1.4 测试用例设计的基本原则 263

11.2 测试用例的组织和跟踪 264

11.2.1 测试用例的属性 264

11.2.2 测试套件及其构成方法 265

11.2.3 跟踪测试用例 267

11.2.4 维护测试用例 269

11.2.5 测试用例的覆盖率 270

小结 270

思考题 270

第12章 部署测试环境 271

12.1 测试环境的重要性 271

12.2 测试环境要素 272

12.2.1 硬件 273

12.2.2 网络环境 274

12.2.3 软件 275

12.2.4 数据准备 276

12.3 虚拟机的应用 277

12.3.1 虚拟机软件 277

12.3.2 VMware的虚拟机解决方案 278

12.3.3 辅助工具 279

12.4 如何建立项目的测试环境 280

12.5 自动部署测试环境 282

12.6 测试环境的维护和管理 285

小结 287

思考题 287

第13章 测试执行、缺陷报告与跟踪 288

13.1 软件测试执行与跟踪 288

13.1.1 测试执行过程的要点 289

13.1.2 测试项目进度的管理方法 291

13.1.3 测试过程管理工具 293

13.2 软件缺陷的描述 294

13.2.1 软件缺陷的生命周期 294

13.2.2 严重性和优先级 296

13.2.3 缺陷的其他属性 296

13.2.4 完整的缺陷信息 298

13.2.5 缺陷描述的基本要求 299

13.2.6 缺陷报告示例 299

13.3 软件缺陷相关的信息 300

13.3.1 软件缺陷的图片信息 301

13.3.2 使用WinDbg记录软件缺陷信息 301

13.3.3 使用Soft-ICE记录软件缺陷信息 303

13.3.4 分离和再现软件缺陷 304

13.4 软件缺陷跟踪和分析 305

13.4.1 软件缺陷处理技巧 306

13.4.2 缺陷趋势分析 306

13.4.3 缺陷分布分析 308

13.4.4 缺陷跟踪方法 309

13.5 软件缺陷跟踪系统 310

小结 312

思考题 312

第14章 软件测试和质量分析报告 313

14.1 软件产品的质量度量 313

14.1.1 软件度量及其过程 314

14.1.2 软件质量的度量 315

14.1.3 质量度量的统计方法 316

14.2 评估系统测试的覆盖程度 317

14.2.1 对软件需求的估算 318

14.2.2 基于需求的测试覆盖评估 319

14.2.3 基于代码的测试覆盖评估 319

14.3 基于缺陷分析的产品质量评估 320

14.3.1 缺陷评测的基线 320

14.3.2 经典的种子公式 321

14.3.3 基于缺陷清除率的估算方法 321

14.3.4 软件产品性能评估 322

14.4 测试报告的具体内容 323

小结 323

思考题 324

参考文献 325

附录A 软件测试英文术语及中文解释 327

附录B 测试计划模板 341

附录C 测试用例设计模板 352

附录D 软件缺陷模板 354

附录E 测试报告模板 356

附录F Java Code Inspection Checklist 359