标题：实用软件测试方法与应用
概述
《实用软件测试方法与应用》是一本介绍软件测试的技术书籍，作者为飞思研发中心，由电子工业出版社 
出版。 
图书编号:733059  封面图片ISBN:750538813 
出版日期:2003-08-01 
定价:45.0   开本:16开
简介
本书深入讲述了软件测试的各个方面。不但讲述了软件测试的基本理论和方法（单元测试、集成测试、系统和验收测试、测试文档的编写、测试用例的设计和软件度量），而且还详细介绍了企业级软件测试的解决方案（负载测试、功能测试、Web测试、白盒测试工具、嵌入式软件测试、面向对象软件的测试、可编程逻辑设计中的测试方法和可测性设计及测试案例），从而指导读者在软件生命周期各个阶段合理地选择恰当的测试技术与测试工具，并有效运用到软件开发项目中，通过测试确保最终开发出高质量、高可靠性的软件。附赠光盘为书中范例源代码。 
本书无论对软件开发人员、系统管理人员，还是测试工程师都有很高的实用价值。高等院校计算机专业和软件学院的师生也可以通过阅读本书来学习有关软件测试的理论和技术。﻿
目录
第一部分 软件测试理论
第1章 测试概述....................................3
1.1 软件测试的发展 3
1.1.1 测试支持度模型（Testability
Support Model） 4
1.1.2 测试成熟度模型（Testing 
Maturity Model） 4
1.1.3 测试能力成熟度模型（Testing 
Capability Maturity Model） 5
1.2 对软件测试的误解 5
1.3 软件测试的改进方法 7
1.4 测试工程师的素质 8
1.5 小结 10
第2章 软件测试基础 13
2.1 软件测试的定义 13
2.1.1 软件生存周期 13
2.1.2 软件测试的对象 13
2.1.3 软件测试分类 13
2.2 测试的目的和原则 14
2.2.1 测试的目的 14
2.2.2 测试的原则 14
2.3 测试信息流程 14
2.4 软件开发与软件测试 15
2.4.1 测试与开发各阶段的关系 15
2.4.2 测试与开发的并行性 15
2.4.3 完整的开发流程 16
2.4.4 测试在开发阶段的作用 16
2.5 测试设计中的系统分析方法 17
2.6 测试方法 17
2.6.1 白盒测试的实施方案 18
2.6.2 黑盒测试的实施方案 19
2.7 软件测试的策略 20
2.7.1 单元测试 20
2.7.2 集成测试（Integrated 
Testing） 25
2.7.3 确认测试（Validation 
Testing） 25
2.7.4 系统测试 26
第3章 测试过程 27
3.1 引言 27
3.2 软件测试的策略方法 27
3.2.1 验证与确认（Verification 
And Validation） 27
3.2.2 W模型 30
3.2.3 H模型 31
3.2.4 软件测试策略 32
3.2.5 测试完成的标准 34
3.3 测试过程 34
3.3.1 开发过程规范 34
3.3.2 测试过程规范 36
3.3.3 测试过程规范的过程 38
3.4 软件项目计划过程
（制定SVVP） 39
3.4.1 目标 39
3.4.2 V&V概要 39
3.4.3 V&V过程 40
3.4.4 V&V报告需求 41
3.4.5 V&V管理需求 41
3.4.6 V&V文档需求 42
3.5 系统测试过程 42
3.5.1 系统测试过程中各种人员的
作用 43
3.5.2 系统测试过程各阶段进行的前提条件 43
3.5.3 系统测试过程各阶段的
输入 44
3.5.4 系统测试过程的活动步骤 44
3.5.5 系统测试过程各阶段的
输出 47
3.6 集成测试过程 47
3.6.1 集成测试过程中各种人员的
作用 48
3.6.2 集成测试过程各阶段进行的
前提条件 49
3.6.3 集成测试过程各阶段的
输入 49
3.6.4 集成测试过程的活动步骤 50
3.6.5 集成测试过程各阶段的
输出 52
3.7 单元测试过程 52
3.7.1 单元测试过程中各种人员的
作用 53
3.7.2 单元测试的输入 53
3.7.3 单元测试过程的活动步骤 53
3.7.4 单元测试的输出 55
3.8 测试文档和检查单（CHKLIST） 55
3.8.1 《测试计划》文档 55
3.8.2 《测试方案》文档 57
3.8.3 《测试用例》文档 59
3.8.4 《测试规程》文档 61
3.8.5 《测试报告》文档 62
3.8.6 其他文档 64
3.8.7 检查单（CHECKLIST） 64
第4章 单元测试 71
4.1 单元测试概念 71
4.2 单元测试设计 72
4.2.1 单元测试模型的设计 72
4.2.2 测试项目的设计 72
4.3 单元测试用例设计 73
4.3.1 单元测试用例编写原则 73
4.3.2 单元测试用例设计方法 74
4.4 单元测试的执行 79
4.4.1 测试的结论 79
4.4.2 自动测试 79
4.5 单元测试的评估 80
4.6 单元测试实施时必须遵循的原则
和步骤 80
4.7 单元测试的一些考虑和定义 81
4.7.1 单元的定义与测试的定义 81
4.7.2 单元测试 82
4.7.3 测试模块 84
4.8 单元测试中的白盒测试设计 84
4.8.1 一个程序模块的例子 84
4.8.2 语句覆盖 85
4.8.3 判断覆盖 86
4.8.4 条件覆盖 86
4.8.5 判断–件覆盖 87
4.8.6 条件组合覆盖 87
4.8.7 路径覆盖 88
4.8.8 测试用例的组合和优化 89
4.9 单元测试工具 89
第5章 集成测试 91
5.1 集成测试基本理论 91
5.1.1 集成测试的目的和意义 91
5.1.2 联调与集成测试的区别 92
5.1.3 集成测试的分层次、
分阶段 93
5.1.4 集成测试、单元测试与系统
测试的关联 93
5.2 集成测试的基本方案 94
5.2.1 一次性集成方式（Big 
Bang Integration） 94
5.2.2 增殖式集成方式
（Incremental Integration） 95
5.2.3 自顶向下的增殖方式
（Top-Down Integration） 95
5.2.4 自底向上的增殖方式 96
5.2.5 混合增殖式测试 97
5.3 集成测试的实施 98
5.3.1 集成测试的方法和步骤 98
5.3.2 集成测试的主要内容
和组织实施 98
5.3.3 集成测试计划编制 99
5.3.4 集成测试中的注意事项 106
5.3.5 集成测试报告生成 107
5.3.6 集成测试完成的标志 108
第6章 系统测试.....................................109
6.1 确认测试（Validation Testing） 109
6.1.1 确认测试的准则 110
6.1.2 进行有效性测试
（黑盒测试） 110
6.1.3 软件配置审查 110
6.1.4 α测试和β测试 111
6.1.5 验收测试（Acceptance
Testing） 111
6.1.6 确认测试的结果 112
6.2 系统测试（System Testing）
的概念 112
6.2.1 系统测试的种类 112
6.2.2 系统测试与单元测试、集成测试
的区别 113
6.2.3 系统测试在整个测试
过程中的位置 113
6.3 系统测试的标准过程 114
6.3.1 系统测试计划 114
6.3.2 系统测试设计 115
6.3.3 系统测试实现 116
6.3.4 系统测试执行 117
6.3.5 转系统测试流程 118
6.3.6 回归测试 118
6.3.7 系统测试问题总结、分析 118
6.4 质量可靠性评估 119
6.4.1 问题数 119
6.4.2 可靠性 119
6.4.3 如何进行可靠性评估 120
6.4.4 如何理解系统测试的
充分性 120
6.5 如何做好系统测试 120
6.5.1 一些有利于做好系统
测试的原则 120
6.5.2 系统测试的若干探索
和实践 121
6.5.3 小结 121
第7章 测试用例设计方法...................123
7.1 测试用例设计方法概述 123
7.1.1 黑盒测试 123
7.1.2 白盒测试 123
7.1.3 测试用例设计的重要性 124
7.2 白盒测试的测试用例设计方法 124
7.3 黑盒测试的测试用例设计方法 124
7.3.1 等价类划分 125
7.3.2 边界值分析法 126
7.3.3 错误推测法 126
7.3.4 因果图法 126
7.3.5 判定表驱动测试 127
7.3.6 正交实验设计方法 128
7.3.7 功能图方法 129
7.4 黑盒测试的测试用例设计
案例分析 130
7.4.1 基于等价类划分方法 130
7.4.2 采用边界值分析
和错误推测方法 133
7.4.3 因果图方法 136
第8章 软件评价与测试........................139
8.1 软件能力成熟度模型（CMM） 139
8.1.1 专业术语 140
8.1.2 CMM的分级标准 141
8.2 软件评价与测试在整个软件生命
周期中的作用 145
8.3 在CMM中加入软件评价及
测试KPA的意义 146
8.3.1 评价和测试促进文化转变 146
8.3.2 评价和测试在项目跟踪中
所起的作用 147
8.3.3 评价和测试在整个开发
和维护成本中的花费 148
8.3.4 评价和测试对软件开发时间
和成本方面的影响 148
8.3.5 评价和测试对软件残余
缺陷的影响 148
8.4 测试的主要评测方法 149
8.4.1 覆盖评测 149
8.4.2 基于需求的测试覆盖 149
8.4.3 基于代码的测试覆盖 150
8.4.4 质量评测 150
8.4.5 缺陷报告 151
8.4.6 缺陷密度报告 151
8.4.7 性能评测 153
第9章 软件质量与软件度量................155
9.1 质量、质量特性与质量职能 155
9.1.1 质量的重要性 155
9.1.2 质量及质量特性 156
9.1.3 什么是软件质量 157
9.2 质量管理 157
9.2.1 质量管理的定义 157
9.2.2 质量管理的任务 158
9.2.3 质量管理的发展简史 158
9.3 全面质量管理 160
9.3.1 全面质量管理的定义 160
9.3.2 全面质量管理的特点 160
9.3.3 全面质量管理的工作程序 161
9.4 质量保证与测试 162
9.4.1 SQA与测试的不同 162
9.4.2 对于SQA与测试工作
的一些误解 163
9.5 软件度量 164
9.5.1 为什么需要进行软件度量 164
9.5.2 软件度量的概念 165
9.5.3 度量对工作有什么影响 167
9.5.4 如何进行软件度量 168
9.6 一个简化的软件度量与软件
测试的实例 170
第二部分 软件测试实践
第10章 企业级软件测试解决方案......175
10.1 测试工具 175
10.1.1 基于GUI的自动化测试
存在的问题 176
10.1.2 自动化测试工具的特征 176
10.1.3 自动化测试工具 179
10.2 测试管理体系 188
10.2.1 让软件测试走向规范 188
10.2.2 建立测试管理体系 189
10.2.3 测试规划 189
10.2.4 测试设计 189
10.2.5 测试实施 189
10.2.6 配置管理 190
10.2.7 测试管理 190
10.2.8 测试管理工具 190
10.3 主要测试软件公司简介 196
10.3.1 Mercury Interactive
公司介绍 196
10.3.2 Rational公司 197
10.3.3 TeleLogic公司 198
10.4 小结 199
第11章 负载测试..................................201
11.1 Astra LoadTest 201
11.1.1 Astra LoadTest 概览 201
11.1.2 Astra LoadTest的使用 205
11.2 LoadRunner 218
11.2.1 轻松创建虚拟用户 219
11.2.2 创建真实的负载 219
11.2.3 定位性能问题 220
11.2.4 自信的发布 220
11.2.5 测试Enterprise JavaBeans 221
11.2.6 最大化投资回报 221
11.2.7 支持无线应用协议 221
11.2.8 支持流媒体应用 221
11.2.9 完整的企业应用环境的
支持 221
11.3 QALoad 222
11.3.1 QALoad的突出特点 223
11.3.2 QALoad的使用 223
11.3.3 QALoad使用中需要
注意的地方 224
第12章 功能测试..................................227
12.1 WinRunner 227
12.1.1 WinRunner简介 227
12.1.2 WinRunner环境介绍 229
12.1.3 Spy的运用 231
12.1.4 GUI Map（界面地图）的
两种方式 232
12.1.5 快速产生测试脚本 234
12.1.6 录制测试的两种不同记录
模式的演示 237
12.1.7 理解测试脚本语言 241
12.1.8 运行一个录制好的
测试脚本 241
12.1.9 分析测试结果 242
12.1.10 设置间隔时间 243
12.1.11 设置同步点（延迟） 244
12.1.12 运行测试脚本并分析设置
同步点后的测试结果 246
12.1.13 插入GUI检查点 247
12.2 QARun 249
12.3 Astra QuickTest 251
12.3.1 测试过程 252
12.3.2 QuickTest窗口 252
12.3.3 Mercury Tours实例 254
12.3.4 录制测试 255
12.3.5 运行测试 257
12.3.6 分析测试结果 259
12.3.7 产生检查点 261
12.3.8 运行和分析具有检查点的
测试 266
12.3.9 参数化测试 270
12.3.10 修改表检查点 276
第13章 Web测试..................................281
13.1 介绍 281
13.1.1 用户界面 282
13.1.2 功能测试 285
13.1.3 接口测试 286
13.1.4 兼容性测试 287
13.1.5 负载/压力测试 288
13.1.6 安全性测试 288
13.1.7 图形显示测试 289
13.1.8 超链接导航测试 289
13.2 Web应用负载测试 290
13.2.1 介绍 290
13.2.2 建立新脚本 290
13.2.3 编辑脚本 293
13.2.4 查看测试报告 297
13.2.5 提高性能 298
13.2.6 删除脚本 300
13.3 PageRunner 300
13.4 网站连接测试工具Link Sleuth 301
第14章 白盒测试工具..........................303
14.1 Rational白盒测试工具 303
14.1.1 Rational的测试组件 303
14.1.2 Rational Suite Enterprise的
安装 303
14.2 Rational Purify 307
14.2.1 简介 307
14.2.2 Rational Purify的使用实例 311
14.2.3 参数设置 316
14.3 Rational PureCoverage 322
14.3.1 PureCoverage概述 322
14.3.2 功能简介 326
14.3.3 Rational PureCoverage的
安装 327
14.3.4 PureCoverage的使用实例 328
14.3.5 参数设置 331
14.4 Rational Quantify 334
14.4.1 简介 334
14.4.2 Rational Quantify的使用
实例 335
14.4.3 参数设置 339
14.5 Numega DevPartner Studio 340
14.5.1 DevPartner Studio的安装 340
14.5.2 Numega DevPartner Studio的
使用 345
第15章 嵌入式软件测试......................355
15.1 概述 355
15.1.1 嵌入式软件分析与测试的
重要性 355
15.1.2 纯软件的测试工具 357
15.1.3 纯硬件的测试工具 357
15.2 CodeTest嵌入式软件测试系统 358
15.2.1 CodeTest概述 358
15.2.2 CodeTest在各研发阶段的
应用 360
15.2.3 Tornado环境内的CodeTest
的使用 361
15.2.4 CodeTest功能说明 369
15.3 LogiScope 377
15.3.1 概述 377
15.3.2 LogiScope的功能 378
15.3.3 LogiScope产品线——RuleChecker、
Audit和TestChecker 378
第16章 面向对象软件的测试..............383
16.1 概述 383
16.2 面向对象测试模型（Object-Orient Test Model） 384
16.3 面向对象分析的测试
（OOA Test） 385
16.3.1 对认定的对象的测试 386
16.3.2 对认定的结构的测试 387
16.3.3 对认定的主题的测试 387
16.3.4 对定义的属性和实例关联的
测试 387
16.3.5 对定义的服务和消息关联的
测试 388
16.4 面向对象设计的测试
（OOD Test） 388
16.4.1 对认定的类的测试 388
16.4.2 对构造的类层次结构的
测试 389
16.4.3 对类库支持的测试 389
16.5 面向对象编程的测试
（OOP Test） 390
16.5.1 数据成员是否满足数据
封装的要求 390
16.5.2 类是否实现了要求的功能 391
16.6 面向对象的单元测试
（OO Unit Test） 391
16.7 面向对象的集成测试
（OO Integrate Test） 393
16.8 面向对象的系统测试（OO 
System Test） 394
16.9 测试用例设计 395
16.9.1 基于故障的测试 396
16.9.2 基于脚本的测试 396
16.9.3 面向对象类的随机测试 396
16.9.4 类层次的分割测试 397
16.9.5 由行为模型（状态、活动、顺序
和合作图）导出的测试 397
第17章 可编程逻辑设计中的测试方法
和可测性设计...........................399
17.1 可测性设计 399
17.1.1 VLSI数字系统可测性
三要素 399
17.1.2 VLSI数字系统
可测性度量 400
17.1.3 VLSI数字逻辑设计中的
可测性设计规则介绍 400
17.2 JTAG与BIST 401
17.2.1 JTAG 401
17.2.2 BIST（内测试） 402
17.2.3 逻辑电路的测试 404
17.2.4 测试结果的分析 404
17.2.5 时序电路的测试 404
17.2.6 用VHDL描述BIST内核 405
17.2.7 JTAG与BIST结合 406
17.2.8 JTAG用于FPGA的调试
——Chip Scope 406
17.3 适合FPGA的测试方法
和可测性设计 407
17.3.1 FPGA的测试方法和可测性
设计的经验总结 407
17.3.2 Xilinx FPGA中边界扫描的
使用实例 408
第18章 测试案例..................................413
18.1 某海关的系统测试 413
18.1.1 项目介绍 413
18.1.2 被测系统概述 414
18.1.3 测试的环境 414
18.1.4 测试项目管理 415
18.1.5 测试开发与实施 417
18.1.6 测试效果 420
18.2 某银行Y2K测试 420
18.2.1 被测项目介绍 420
18.2.2 测试描述 421
18.2.3 测试效果 421
18.3 某公司的系统测试 422
18.3.1 被测项目介绍 422
18.3.2 测试描述 422
18.3.3 测试效果 422
18.4 压力测试实例 423
18.4.1 测试内容 423
18.4.2 测试计划 424
18.5 SQL Server 2000压力测试 426
18.5.1 测试计划 426
18.5.2 测试准备 426
18.5.3 测试过程 427
18.5.4 测试结果 429
第19章 压力测试综合实践 431
19.1 压力测试的概念 431
19.2 压力测试的流程 431
19.2.l 编写压力测试计划 432
19.2.2 编写压力测试案例 435
19.2.3 用多进程模拟多用户
（设置测试数据） 435
19.2.4 设置并发点 436
19.2.5 运行测试程序
并监测系统资源 436
19.2.6 分析结果 436
19.2.7 优化调整设置 437
19.2.8 提交测试报告 438
19.3 压力测试举例 439
19.3.1 分析应用系统 439
19.3.2 确定测试方法 439
19.3.3 测试环境 440
19.3.4 测试过程中出现的问题
及设置调整 440
19.3.5 测试结果及分析 440
19.4 测试自动化与工具化的开发设计 441
19.4.1 测试工具 441
19.4.2 压力测试工具设计 442
19.4.3 工具化实现的难点