第一篇 理论篇 1
第1章 软件测试概论 1
1.1 概述 1
目录 1
1.2 国内外现状 2
1.3 软件测试与软件项目的关系 4
1.4 软件测试的发展趋势 4
1.5 第三方测试 5
第2章 软件测试基础 6
2.1 软件测试与软件质量 6
2.1.1 什么是软件测试 6
2.1.2 什么是软件质量 6
2.2 软件测试目的 7
2.1.3 软件测试与质量保证的区别 7
2.3 软件测试原则 8
2.4 软件测试对象 9
2.5 软件测试分类 10
2.5.1 按照开发阶段划分 10
2.5.2 按照测试实施组织划分 11
2.5.3 按照测试技术划分 12
2.6 软件测试过程模型 12
2.6.1 V模型 13
2.6.2 W模型 14
2.6.3 H模型 15
2.6.4 其他模型 16
2.6.5 测试模型的使用 19
2.7 软件生命周期测试策略 20
2.7.1 软件开发与软件测试 20
2.7.2 软件测试策略 20
2.8 软件失效分类与管理 51
2.8.1 软件失效分类 51
2.8.2 缺陷与错误分布 53
2.8.3 缺陷与错误严重性和优先级 54
2.8.4 软件错误跟踪管理 55
2.9 白盒测试 57
2.10 黑盒测试 57
2.11 自动化测试 58
2.11.1 自动化测试的基本概念 58
2.11.2 自动化测试的优势与局限 59
2.11.3 选择合适的自动化测试工具 63
2.11.4 功能自动化测试 66
2.11.5 负载压力自动化测试 68
第3章 软件质量与评价(软件测试标准) 73
3.1 质量的定义 73
3.2 测度与度量 73
3.3 软件质量模型 74
3.4 标准的发展 76
3.5 GB/T 18905产品评价 77
3.5.1 GB/T 18905基本组成 77
3.5.2 评价者用的过程(GB/T 18905.5) 77
3.5.5 评价需求 78
3.5.3 关于评价支持 78
3.5.4 通用评价过程 78
3.5.6 确定要评价产品的类型 79
3.5.7 度量之间的关系 80
3.5.8 规定质量模型 80
3.5.9 规定评价 81
3.6 GB/T 16260.1产品质量 83
3.6.1 基本组成 83
3.6.2 标准概述 83
3.6.3 标准的范围 84
3.6.4 质量模型框架 85
3.6.5 外部质量和内部质量的质量模型 87
3.6.6 使用质量的质量模型 90
3.7 软件测试国家标准 91
第4章 软件测试过程与管理 92
4.1 软件测试过程 92
4.2 评价过程的特性 92
4.3 评价过程 93
4.3.1 评价活动 93
4.3.2 评价过程的输入 93
4.3.3 评价过程的输出 93
4.3.4 评价过程文档 94
4.4 评价与生存周期的关系 95
4.5 评价过程的要求 95
4.5.1 一般要求 95
4.5.2 评价需求确立 96
4.5.3 评价规格说明 97
4.5.4 评价设计 98
4.5.5 评价执行 100
4.5.6 评价结论 102
4.6 配置管理 102
4.6.1 配置项标识 103
4.6.2 配置项控制 103
4.6.3 配置状态报告 103
4.6.4 配置审计 103
4.7 测试的组织与人员 104
4.7.1 组织结构设计因素 104
4.7.4 集中管理的测试组织 105
4.7.2 独立测试组织 105
4.7.3 测试组织管理者 105
4.7.5 选择合理的组织方案 106
4.7.6 测试人员 106
4.8 软件测试风险分析 108
4.8.1 软件测试与商业风险 108
4.8.2 什么是软件风险 109
4.8.3 软件风险分析 109
4.8.4 软件测试风险 111
4.9 软件测试的成本管理 112
4.9.1 测试费用有效性 112
4.9.2 测试成本控制 113
4.9.3 质量成本 114
4.9.4 缺陷探测率(DDP Defect Detection Percentage) 115
4.9.5 测试投资回报举例 115
第二篇 测试技术 119
第5章 黑盒测试案例设计技术 119
5.1 概述 119
5.2 测试用例设计方法 119
5.2.1 什么是测试用例 119
5.2.2 等价类划分法 120
5.2.3 边界值分析法 124
5.2.4 错误推测法 127
5.2.5 因果图法 128
5.2.6 判定表驱动法 131
5.2.7 正交试验法 132
5.2.8 功能图法 137
5.2.9 场景法 139
5.2.10 测试方法选择的综合策略 145
5.3 测试用例的编写 146
5.3.1 测试用例计划的目的 146
5.3.2 测试设计说明 146
5.3.3 测试用例说明 147
5.3.4 测试程序说明 150
5.3.5 测试用例细节探讨 151
6.1.2 静态错误分析 153
6.1.1 词法分析与语法分析 153
6.1 白盒测试基本技术 153
第6章 白盒测试技术 153
6.1.3 程序插桩技术 154
6.2 白盒测试方法 160
6.2.1 代码检查法 160
6.2.2 静态结构分析法 172
6.2.3 静态质量度量法 175
6.2.4 逻辑覆盖法 180
6.2.5 基本路径测试法 185
6.2.6 其他白盒测试方法 191
6.3 白盒测试综合策略 194
6.3.1 最少测试用例数计算 195
6.3.2 测试覆盖准则 197
6.4 结论 200
第7章 面向对象的软件测试技术 201
7.1 面向对象测试概述 201
7.2 面向对象技术 201
7.2.1 对象和类 201
7.2.2 封装、继承和多态性 202
7.3 面向对象测试模型 205
7.4 面向对象软件的测试策略 206
7.4.1 面向对象分析(OOA)的测试 206
7.4.2 面向对象设计(OOD)的测试 209
7.4.3 面向对象编程(OOP)的测试 212
7.4.4 面向对象软件的单元测试 214
7.4.5 面向对象软件的集成测试 216
7.4.6 面向对象软件的确认和系统测试 217
7.5 面向对象软件测试用例设计 218
7.5.1 传统测试用例设计方法的可用性 218
7.5.2 基于故障的测试 218
7.5.3 基于场景的测试 219
7.5.4 OO类的随机测试 220
7.5.5 类层次的分割测试 220
7.5.6 由行为模型(状态、活动、顺序和合作图)导出的测试 221
第8章 应用负载压力测试 223
8.1 负载压力测试概述 223
8.1.1 负载压力基础概念 223
8.1.2 负载压力测试基础概念 223
8.1.3 负载压力测试目的 225
8.1.4 负载压力测试策略 227
8.1.5 产品生命周期中负载压力测试计划 230
8.1.6 负载压力测试中的盲点 231
8.2 负载压力测试解决方案 231
8.2.1 并发性能测试 231
8.2.2 疲劳强度测试 244
8.2.3 大数据量测试 245
8.3 负载压力测试指标 247
8.3.1 交易处理性能指标 247
8.3.2 服务器操作系统资源监控 249
8.3.3 数据库资源监控 252
8.3.4 Web服务器监控 260
8.3.5 中间件服务器监控 261
8.4 负载压力测试实施 264
8.4.1 负载压力测试实施步骤 264
8.4.2 测试计划 264
8.4.3 测试需求分析 273
8.4.4 测试案例制定 282
8.4.5 测试环境、工具、数据准备 283
8.4.6 测试脚本录制、编写与调试 300
8.4.7 场景制定 302
8.4.8 测试执行 304
8.4.9 获取测试结果 306
8.4.10 结果评估与测试报告 307
8.5.1 参数池技术 332
8.5 负载压力测试技巧 332
8.5.2 将事务插入到Vuser脚本 334
8.5.3 将集合点插入到Vuser脚本 334
8.5.4 手工关联 334
8.5.5 IP数据池 335
8.5.6 Web站点经验点滴 336
8.5.7 脚本调试技术 337
8.5.8 测试工具配置技巧 342
第9章 Web应用测试 344
9.1 Web系统测试概述 344
9.1.1 Web系统的构成 344
9.1.2 Web系统设计技术 345
9.2.2 总体架构设计的测试 349
9.2.1 Web应用设计测试概述 349
9.2 Web应用设计测试 349
9.1.3 Web系统的测试策略 349
9.2.3 客户端设计的测试 351
9.2.4 服务器端设计的测试 352
9.3 Web应用开发测试 354
9.3.1 Web应用开发测试概述 354
9.3.2 代码测试 354
9.3.3 组件测试 355
9.3.4 使用Junit进行单元测试 357
9.4 Web应用运行测试 364
9.4.1 Web应用运行测试概述 364
9.4.2 功能测试 365
9.4.3 易用性测试 368
9.4.4 负载压力测试 371
9.4.5 客户端配置与兼容性测试 372
9.4.6 安全性测试 373
第10章 网络测试 391
10.1 网络测试概述 391
10.1.1 网络测试发展 391
10.1.2 网络测试意义 392
10.1.3 网络全生命周期测试策略 392
10.2 网络仿真技术 393
10.2.1 网络仿真技术概述 393
10.2.3 网络仿真技术应用 394
10.2.2 网络仿真的技术原理 394
10.2.4 网络仿真软件 396
10.3 网络质量测试 402
10.3.1 OSI模型简介 402
10.3.2 网络测试指标 403
10.3.3 网络测试类型 406
10.3.4 网络测试对象 408
10.3.5 网络测试的基本方法 409
10.3.6 网络测试标准及工具 411
10.4 网络应用测试 413
10.4.1 网络应用监控 413
10.4.2 网络故障分析 415
10.5 结论 427
第11章 安全测试与评估 428
11.1 概述 428
11.2 测试与评估内容 428
11.2.1 用户认证机制 428
11.2.2 加密机制 429
11.2.3 安全防护策略 430
11.2.4 数据备份与恢复手段 430
11.2.5 防病毒系统 431
11.3 安全系统测试策略 433
11.3.1 基本安全防护系统测试 433
11.3.2 安全系统防护体系 434
11.4.3 模拟攻击试验 439
11.4.2 漏洞扫描 439
11.4.1 功能验证 439
11.4 安全性测试方法 439
11.4.4 侦听技术 442
11.5 软件产品安全测试 442
11.5.1 用户管理和访问控制 442
11.5.2 通信加密 444
11.5.3 安全日志测试 444
第12章 兼容性测试 445
12.1 兼容性测试概述 445
12.2 兼容性测试环境的准备 445
12.3 硬件兼容性的测试 445
12.3.1 硬件兼容性测试的目的 445
12.3.2 与整机的兼容性 446
12.3.3 与板卡及配件的兼容性 447
12.3.4 与打印机的兼容性 447
12.3.5 其他 448
12.4 软件兼容性测试 448
12.4.1 与操作系统的兼容性 448
12.4.2 与数据库的兼容性 449
12.4.3 与中间件的兼容性 450
12.4.4 与浏览器的兼容性 450
12.4.5 与其他软件的兼容性 451
12.5 数据兼容性测试 452
12.5.1 不同数据格式的兼容性 452
12.5.2 XML符合性 452
12.6.1 平台化软件概述 453
12.6 平台化软件兼容性测试 453
12.6.2 平台化软件的兼容性测试策略 455
12.7 新旧系统数据迁移测试 455
12.7.1 新旧系统数据迁移技术 455
12.7.2 新旧系统数据迁移的实现与测试 456
12.8 小结 457
第13章 标准符合性测试 458
13.1 概述 458
13.2 标准符合性测试主要分类 459
13.3 测试策略 460
13.3.1 数据内容类标准 460
13.3.3 开发接口类标准 461
13.3.2 通信协议类标准 461
13.3.4 信息编码类标准 462
13.4 测试实施 463
第14章 易用性测试 465
14.1 概述 465
14.2 安装测试 465
14.3 功能易用性测试 467
14.4 用户界面测试 468
14.4.1 界面整体测试 468
14.4.2 界面元素测试 471
14.4.3 界面测试典型用例 476
14.5 辅助系统测试 477
14.5.1 帮助测试 477
14.5.3 信息提示 478
14.5.2 向导测试 478
第15章 可靠性测试 480
15.1 软件可靠性与可靠性测试 480
15.1.1 软件可靠性概述 480
15.1.2 软件可靠性的定义 480
15.1.3 软件可靠性的定量描述 482
15.1.4 可靠性目标 485
15.1.5 可靠性测试的意义 487
15.1.6 广义的可靠性测试与狭义的可靠性测试 488
15.2 软件可靠性建模 489
15.2.1 影响软件可靠性的因素 489
15.2.2 软件可靠性建模方法 490
15.2.3 软件的可靠性模型分类 492
15.2.4 软件可靠性模型举例 494
15.3 软件可靠性测试 497
15.3.1 软件的可靠性测试概述 497
15.3.2 定义软件运行剖面 497
15.3.3 可靠性测试用例设计 498
15.3.4 靠性测试的实施 499
15.4 软件可靠性评价 501
15.4.1 软件可靠性评价概述 501
15.4.2 怎样选择可靠性模型 502
15.4.3 可靠性数据的收集 503
15.4.4 软件可靠性的评估和预测 504
15.5.1 软件可靠性设计 505
15.5 软件的可靠性设计与管理 505
15.5.2 软件可靠性管理 508
第16章 文档测试 511
16.1 文档测试的范围 511
16.2 用户文档的内容 513
16.3 用户文档的作用 514
16.4 用户文档测试需要注意的问题 515
16.5 用户文档测试的要点 516
16.6 针对用户手册的测试 517
16.7 针对在线帮助的测试 518
17.1 概述 519
17.3 ERP软件测试的难点 519
17.2 ERP软件简介 519
第17章 功能测试 519
第三篇 测试案例 519
17.4 ERP软件测试实例及分析 520
17.4.1 前期分析 520
17.4.2 用例设计 525
第18章 白盒测试 564
18.1 综述 564
18.2 静态测试 564
18.2.1 静态测试结果结构分析 565
18.2.2 静态质量度量分析 566
18.3 覆盖率测试 572
18.3.1 测试用例设计 575
18.3.2 测试结果分析 585
19.1.1 数据库系统现状 586
第19章 数据库测试 586
19.1 数据库测试概述 586
19.1.2 数据库系统评测体系 587
19.2 产品确认测试 588
19.2.1 系统功能测试 588
19.2.2 可靠性测试 591
19.2.3 安全性测试 592
19.2.4 扩展性测试 593
19.3 标准符合性测试 593
19.3.1 SQL符合性测试 593
19.3.2 ODBC符合性测试 595
19.3.3 JDBC符合性测试 596
19.4.2 TPC-C测试 597
19.4 系统性能测试 597
19.4.1 概述 597
19.4.3 TPC-W测试 602
19.4.4 解读TPC组织公布的性能测试报告 607
第20章 负载压力测试及故障定位与分析 609
20.1 测试需求分析 609
20.1.1 系统概述 609
20.1.2 用户需求描述 609
20.1.3 测试需求分析 609
20.2 测试案例制定 612
20.2.1 测试内容 612
20.2.3 测试结果处理与分析 614
20.2.2 测试方法 614
20.2.4 测试报告 615
20.2.5 现场测试配合 615
20.3 测试环境、工具、数据准备 615
20.3.1 测试环境 615
20.3.2 测试工具 617
20.3.3 测试数据 618
20.4 测试脚本录制、编写与调试 618
20.5 负载压力场景制定 619
20.6 测试执行 619
20.6.1 执行成功标志 619
20.7.1 测试结果 620
20.7 测试结果及分析 620
20.6.2 实时监控内容 620
20.7.2 结果分析 637
20.8 测试评估与测试报告 676
20.8.1 局域网测试评估 676
20.8.2 广域网测试评估 677
附录:测试工具介绍 680
1.配置/过程管理工具 680
2.功能测试工具 684
3.性能测试工具(系统强度测试工具) 686
4.白盒、嵌入式测试工具 688
5.软件开发工具 692
6.其他 694
7.仪器仪表 696