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

  • 购买积分:14 如何计算积分?
  • 作  者:朱少民等著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2010
  • ISBN:9787302225836
  • 页数:414 页
图书介绍:本书系统介绍了软件测试的概念,重点讲解了软件测试的各种方法和技术。

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

第1章 引论 3

1.1 软件测试的必要性 3

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

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

1.1.3 火星探测飞船坠毁 5

1.1.4 更多的悲剧 5

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

1.3 什么是软件测试 7

1.3.1 软件测试学科的形成 7

1.3.2 正反两方面的争辩 8

1.3.3 软件测试的定义 8

1.3.4 软件测试的其他观点 9

1.4 软件测试和软件开发的关系 10

1.5 测试驱动开发的思想 12

小结 13

思考题 13

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

2.1 软件缺陷 14

2.1.1 软件质量的内涵 15

2.1.2 软件缺陷的定义 17

2.1.3 软件缺陷的产生 18

2.1.4 软件缺陷的构成 19

2.1.5 修复软件缺陷的代价 20

2.2 验证和确认 21

2.2.1 验证和确认 21

2.2.2 评审 22

2.2.3 质量保证和测试的关系 22

2.3 软件测试的分类 23

2.4 测试阶段 25

2.5 软件测试的工作范畴 28

小结 29

思考题 29

第3章 软件测试方法 30

3.1 白盒测试方法 30

3.1.1 语句覆盖 31

3.1.2 判定覆盖 33

3.1.3 条件覆盖 34

3.1.4 判定-条件覆盖 34

3.1.5 条件组合覆盖 35

3.1.6 路径覆盖 35

3.1.7 基本路径测试法 36

3.2 黑盒测试方法 38

3.2.1 等价类划分法 39

3.2.2 边界值分析法 41

3.2.3 判定表方法 43

3.2.4 因果图法 45

3.2.5 正交试验法 46

3.2.6 功能图法 48

3.2.7 错误推测法 49

3.3 静态测试和动态测试 50

3.4 主动测试和被动测试 50

3.5 形式化测试方法 51

3.5.1 形式化方法 51

3.5.2 形式化验证 53

3.5.3 基于模型的软件测试 53

3.5.4 扩展有限状态机方法 56

3.6 基于风险的测试 59

3.7 模糊测试方法 60

3.8 ALAC测试和随机测试方法 61

小结 62

思考题 62

第4章 软件测试依据和规范 64

4.1 测试过程模型 64

4.1.1 软件过程模型 64

4.1.2 用V模型诠释软件测试过程 66

4.1.3 W模型 68

4.1.4 TMap 69

4.2 测试过程改进模型 71

4.2.1 TMM 71

4.2.2 TPI 74

4.2.3 CTP 78

4.2.4 STEP 79

4.3 软件测试标准和规范 80

4.3.1 概述 80

4.3.2 ISO/GB软件质量体系标准 82

4.3.3 软件测试规范 86

4.4 软件测试管理和评判体系 89

小结 91

思考题 92

第二篇 软件测试的技术 95

第5章 单元测试 95

5.1 什么是单元测试 95

5.1.1 单元测试的定义 95

5.1.2 为何要进行单元测试 96

5.2 单元测试的目标和任务 97

5.2.1 目标 97

5.2.2 任务 97

5.3 静态测试 99

5.3.1 编码的标准和规范 99

5.3.2 代码评审 102

5.4 驱动程序和桩程序 107

5.5 调试与评估 108

5.6 单元测试的管理 109

5.7 单元测试工具 110

5.7.1 JUnit介绍 110

5.7.2 在Eclipse中JUnit应用举例 112

5.7.3 JUnit+Ant构建自动的单元测试 115

5.7.4 CheckStyle/PMD与FindBug的使用 116

5.7.5 SourceMonitor检测代码复杂度 117

5.7.6 开源的单元测试工具 118

5.7.7 商业的单元测试工具 121

小结 123

思考题 124

第6章 集成测试和系统测试 125

6.1 系统集成的模式与方法 125

6.1.1 集成测试前的准备 125

6.1.2 集成测试的模式 126

6.1.3 自顶向下和自底向上集成方法 127

6.1.4 大棒与三明治集成方法 128

6.1.5 持续集成 130

6.2 功能测试 131

6.3 回归测试 132

6.3.1 目的 132

6.3.2 策略及其方法 133

6.4 非功能性测试 134

6.4.1 性能测试 134

6.4.2 压力测试 137

6.4.3 容量测试 138

6.4.4 安全性测试 139

6.4.5 可靠性测试 140

6.4.6 容错性测试 142

小结 144

思考题 145

第7章 验收测试 146

7.1 验收测试过程 146

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

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

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

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

7.4 兼容性测试 152

7.4.1 软件兼容性测试 152

7.4.2 数据共享兼容性测试 153

7.4.3 硬件兼容性测试 154

7.5 安装测试和可恢复性测试 155

7.6 文档测试 157

7.6.1 文档的种类 157

7.6.2 怎样进行文档测试 158

小结 158

思考题 158

第8章 面向对象软件的测试 159

8.1 概述 159

8.1.1 类与子类的测试 159

8.1.2 分层与增量 160

8.1.3 面向对象层次结构测试重点 161

8.2 面向对象的单元测试 162

8.2.1 方法层次的测试 162

8.2.2 类层次的测试 162

8.2.3 类树层次的测试 163

8.3 面向对象的集成测试 164

8.3.1 对象及其交互性测试 164

8.3.2 分布式对象测试 165

8.4 基于客户角度的Java测试 167

8.4.1 空指针保护 167

8.4.2 格式化数字错误 168

8.4.3 字符串或数组越界错误 169

8.4.4 资源不合理使用 170

8.4.5 不当使用synchronized导致系统性能下降 171

8.4.6 调用不当方法导致结果出错 172

8.5 基于程序角度的Java测试 172

8.5.1 Action层的单元测试 172

8.5.2 Biz逻辑事务层的单元测试 174

8.5.3 Servlet的单元测试 176

8.5.4 流行框架Struts+Spring+Hibernate的测试 178

小结 180

思考题 180

第9章 基于应用服务器的测试 181

9.1 基于Web服务器应用的测试 181

9.1.1 Web服务器功能测试 181

9.1.2 Web安全性测试 183

9.1.3 Web性能测试 185

9.1.4 性能测试工具Flood 189

9.2 基于数据库应用服务器的测试 192

9.2.1 数据库服务器性能测试 192

9.2.2 数据库并发控制测试 195

9.3 基于Java EE应用服务器的测试 197

9.3.1 用JProfiler完成应用服务器的性能测试 197

9.3.2 Java WebLogic应用服务器测试 202

小结 204

思考题 204

第10章 软件本地化测试 205

10.1 什么是软件本地化 205

10.1.1 软件本地化与国际化 206

10.1.2 字符集问题 207

10.1.3 软件国际化标准 207

10.1.4 软件本地化基本步骤 208

10.1.5 软件本地化测试 209

10.2 翻译验证 210

10.3 本地化测试的技术问题 212

10.3.1 数据格式 212

10.3.2 页面显示和布局 218

10.3.3 配置和兼容性问题 219

10.4 本地化的功能测试 220

小结 221

思考题 221

第11章 软件测试自动化 223

11.1 测试自动化的内涵 223

11.1.1 手工测试的局限性 224

11.1.2 什么是测试自动化 224

11.1.3 软件测试自动化的优势 225

11.2 测试自动化实现的原理 226

11.2.1 代码分析 227

11.2.2 对象识别 228

11.2.3 脚本技术 229

11.2.4 自动比较技术 232

11.2.5 测试自动化系统的构成 233

11.3 测试自动化的实施 234

11.3.1 测试工具的分类 234

11.3.2 测试工具的选择 235

11.3.3 测试自动化普遍存在的问题 236

11.3.4 自动化测试的引入和应用 238

11.4 功能测试工具 239

11.4.1 关键特性 240

11.4.2 Selenium及其应用 243

11.4.3 Web功能测试工具 248

11.4.4 AutoIT及其客户端测试工具 250

11.4.5 嵌入式测试工具 253

11.5 性能测试工具 254

11.5.1 JMeter及其应用 254

11.5.2 性能测试工具的主要特性 256

11.5.3 常见的性能测试工具 257

11.6 安全性测试工具 258

11.7 缺陷跟踪系统 260

11.8 管理工具 262

小结 263

思考题 264

第三篇 软件测试的实践 267

第12章 组建测试团队 267

12.1 测试团队的地位和责任 267

12.1.1 软件测试团队的任务 267

12.1.2 测试团队的规模 269

12.2 测试团队的构成 270

12.2.1 测试团队的基本构成 270

12.2.2 测试人员的责任 271

12.2.3 测试团队的组织模型 274

12.3 如何从零开始 275

12.3.1 对测试人员的要求 275

12.3.2 优秀测试工程师应具备的素质 277

12.3.3 测试人员的招聘 280

12.3.4 测试新人的培训 281

12.4 测试团队的管理和发展 283

12.4.1 测试团队的激励方法 283

12.4.2 知识共享和在岗培训 285

小结 286

思考题 287

第13章 部署测试环境 288

13.1 测试环境的重要性 288

13.2 测试环境要素 289

13.2.1 硬件 290

13.2.2 网络环境 292

13.2.3 软件 292

13.2.4 数据准备 294

13.3 虚拟机的应用 294

13.3.1 虚拟机软件 295

13.3.2 VMware的虚拟机解决方案 295

13.3.3 辅助工具 296

13.4 建立测试实验室 297

13.4.1 实验室建立的评估分析 298

13.4.2 选择和规划实验室 299

13.4.3 集成和配置测试设备 300

13.5 如何建立项目的测试环境 301

13.6 自动部署测试环境 302

13.7 测试环境的维护和管理 305

小结 307

思考题 308

第14章 设计和维护测试用例 309

14.1 测试用例构成及其设计 309

14.1.1 测试用例的重要性 310

14.1.2 测试用例设计书写标准 310

14.1.3 测试用例设计要考虑的因素 312

14.1.4 测试用例设计的基本原则 315

14.2 测试用例的组织和跟踪 316

14.2.1 测试用例的属性 316

14.2.2 测试套件及其构成方法 318

14.2.3 跟踪测试用例 319

14.2.4 维护测试用例 321

14.2.5 测试用例的覆盖率 323

小结 323

思考题 323

第15章 报告所发现的缺陷 324

15.1 软件缺陷的描述 324

15.1.1 软件缺陷的生命周期 324

15.1.2 严重性和优先级 326

15.1.3 缺陷的其他属性 327

15.1.4 完整的缺陷信息 328

15.1.5 缺陷描述的基本要求 329

15.1.6 缺陷报告的示例 330

15.2 软件缺陷相关的信息 331

15.2.1 软件缺陷的图片信息 331

15.2.2 使用WinDbg记录软件缺陷信息 332

15.2.3 使用Soft-ICE记录软件缺陷信息 334

15.2.4 分离和再现软件缺陷 335

15.3 软件缺陷跟踪和分析 336

15.3.1 软件缺陷处理技巧 336

15.3.2 缺陷趋势分析 337

15.3.3 缺陷分布分析 338

15.3.4 缺陷跟踪方法 340

15.4 软件缺陷跟踪系统 341

小结 342

思考题 342

第16章 软件测试和质量分析报告 343

16.1 软件产品的质量度量 343

16.1.1 软件度量及其过程 344

16.1.2 软件质量的度量 345

16.1.3 质量度量的统计方法 346

16.2 评估系统测试的覆盖程度 347

16.2.1 对软件需求的估算 348

16.2.2 基于需求的测试覆盖评估 349

16.2.3 基于代码的测试覆盖评估 349

16.3 基于缺陷分析的产品质量评估 350

16.3.1 缺陷评测的基线 350

16.3.2 经典的种子公式 351

16.3.3 基于缺陷清除率的估算方法 351

16.3.4 软件产品性能评估 352

16.4 测试报告的具体内容 353

小结 354

思考题 354

第17章 软件测试项目管理 355

17.1 测试项目管理的特点 355

17.2 如何做好测试项目管理 357

17.3 软件测试项目的过程管理 358

17.3.1 测试的目标和准则 359

17.3.2 测试计划内容 360

17.3.3 测试项目的计划过程 361

17.3.4 制定有效的测试计划 362

17.3.5 测试策略的确定 363

17.3.6 测试设计和开发 364

17.3.7 测试执行 365

17.4 测试项目的资源管理 367

17.5 测试项目的进度管理 368

17.5.1 测试项目的里程碑和关键路径 368

17.5.2 测试项目进度的特性及外在关系 370

17.5.3 测试项目进度的管理方法和工具 372

17.6 测试项目的风险管理 375

17.7 软件测试文档的管理 377

小结 378

思考题 378

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

附录B 测试计划中文解释模板 393

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

附录D 软件缺陷模板 407

附录E 测试报告模板 408

附录F Java Code Inspection Checklist 411

参考文献 414