软件测试与持续质量改进
版权信息书 名: 软件测试与持续质量

改进
作者:(美国%Gunasekaran)WilliamE.Lewis
出版社:人民邮电出版社
出版时间: 2008
ISBN: 9787115171610
开本: 16
定价: 55.00 元
内容简介本书旨在为软件测试过程提供一个质量框架,其目的是提出一个持续改进软件质量的途径,以提高测试效率。书中详细列举基本的软件测试技巧,并基于一种持续改进过程介绍Deming的质量概念,将“计划、执行、检查、改进”(Plan,Do,Check,Act,PDCA)这样一个“质量轮”引入软件测试过程,阐述现代质量保证理论及最佳实践方法。本书共分5个部分,分别从软件质量、生命周期测试、软件测试方法、测试项目管理、现代软件测试工具的角度展开。此外,附录中提供软件测试过程中可能涉及的各种文档的格式样本,非常便于查阅和参考。
本书适合作为计算机及相关专业软件测试课程的教材,也适合软件测试领域的专业技术人员作为参考手册。
目录第一部分软件质量透视
第1章质量保证框架2
1.1什么是质量2
1.2预防与检测2
1.3验证与确认3
1.4软件质量保证4
1.5质量保证的组成5
1.6软件测试5
1.7质量控制5
1.8软件配置管理6
1.9软件配置管理的要素6
1.10组件确定7
1.11版本控制7
1.12配置构建8
1.13变更控制8
1.14软件质量保证计划8
1.15开发和实施软件质量保证计划的步骤9
1.15.1步骤1:编写计划9
1.15.2步骤2:获得管理层认可10
1.15.3步骤3:获得开发人员认可10
1.15.4步骤4:准备编写SQA计划10
1.15.5步骤5:执行SQA计划10
1.16质量标准10
1.16.1ISO900011
1.16.2能力成熟度模型11
1.16.3PCMM13
1.16.4CMMI14
1.16.5美国波多里奇国家质量奖14
第2章测试技术概述16
2.1黑盒测试(功能测试)16
2.2白盒测试(结构测试)16
2.3灰盒测试(功能与结构测试)17
2.3.1手工测试与自动测试17
2.3.2静态测试与动态测试17
2.4软件测试技术的分类18
第3章质量的持续改进过程22
3.1EdwardDeming的贡献22
3.2统计方法的角色22
3.2.1因果图22
3.2.2流程图23
3.2.3帕累托图23
3.2.4运行图23
3.2.5直方图23
3.2.6散布图23
3.2.7控制图23
3.3Deming的14条质量原则23
3.3.1第1条:树立始终如一的目标23
3.3.2第2条:采用新的质量观念24
3.3.3第3条:停止对大量检查的依赖24
3.3.4第4条:结束仅靠价签来激励企业的实践活动24
3.3.5第5条:坚持不懈地、永久地改进生产和服务系统24
3.3.6第6条:组织培训及再培训25
3.3.7第7条:确立领导职责25
3.3.8第8条:驱除恐惧25
3.3.9第9条:打破员工区域之间的栅栏25
3.3.10第10条:为员工解除口号、训词及目标26
3.3.11第11条:去除数字化目标26
3.3.12第12条:消除员工自豪感的障碍26
3.3.13第13条:组织有关教育和再培训方面的强有力的课程26
3.3.14第14条:采取行动完成转变26
3.4通过“计划、执行、检查、改进”实现持续改进27
3.5遵循PDCA循环27
第二部分生命周期测试概述
第4章概述30
4.1瀑布式开发方法30
4.2“阶段化”持续改进方法31
4.3生命周期测试的心理学31
4.4将软件测试作为持续改进过程31
4.5测试的圣经:软件测试计划33
4.6制定测试计划的主要步骤34
4.6.1步骤1:定义测试目标35
4.6.2步骤2:确定测试方法35
4.6.3步骤3:定义测试环境35
4.6.4步骤4:制定测试规约35
4.6.5确定测试日程表35
4.6.6评审及批准测试计划35
4.7测试计划的组成35
4.8将技术评审作为持续改进过程37
4.9技术评审的动机38
4.10评审的类型38
4.11结构化走查38
4.12审查38
4.13参与者角色40
4.14有效评审的步骤40
4.14.1步骤1:规划评审过程40
4.14.2步骤2:安排评审进度41
4.14.3步骤3:制定评审议程41
4.14.4步骤4:创建评审报告41
第5章验证需求阶段42
5.1通过技术评审测试需求43
5.2审查和走查43
5.3检查表43
5.4方法检查表43
5.5需求可追溯性矩阵44
5.6制定系统/验收测试计划44
第6章验证逻辑设计阶段46
6.1数据模型、过程模型及其联系46
6.2通过技术评审测试逻辑设计47
6.3细化系统/验收测试计划48
第7章验证物理设计阶段49
7.1通过技术评审测试物理设计49
7.2创建集成测试用例50
7.3集成测试方法50
7.3.1步骤1:标识出单元接口50
7.3.2步骤2:全面协调接口50
7.3.3步骤3:创建集成测试条件51
7.3.4步骤4:评估集成测试条件的完整性51
第8章验证程序单元设计阶段52
8.1通过技术评审测试程序单元设计52
8.2顺序结构52
8.3选择结构52
8.4循环结构52
8.5编写单元测试用例53
第9章代码编写阶段的检验54
9.1用技术评审对代码编写进行测试54
9.2执行测试计划55
9.3单元测试55
9.4集成测试55
9.5系统测试56
9.6验收测试56
9.7缺陷记录56
第三部分软件测试方法
第10章开发方法概述60
10.1生命周期开发的局限性60
10.2客户端/服务器架构的挑战60
10.3客户端/服务器架构中螺旋测试的心理学61
10.3.1新思想61
10.3.2对测试人员/开发人员的理解62
10.3.3项目的目标:把质量保证和开发结合起来62
10.3.4迭代/螺旋式开发方法63
10.4JAD的角色64
10.5原型的角色65
10.6开发原型的方法66
10.6.1开发原型66
10.6.2向管理层演示原型67
10.6.3向用户演示原型67
10.6.4修订并定稿规约67
10.6.5开发产品系统68
10.7持续改进螺旋测试方法68
第11章信息收集(计划)71
11.1步骤1:准备访谈72
11.1.1任务1:确定参加访谈的人72
11.1.2任务2:确定议程72
11.2步骤2:执行访谈73
11.2.1任务1:理解项目73
11.2.2任务2:理解项目的目标73
11.2.3任务3:理解项目的状态74
11.2.4任务4:理解项目的计划75
11.2.5任务5:理解项目的开发方法75
11.2.6任务6:确定高级业务需求75
11.2.7任务7:进行风险分析76
11.3步骤3:总结访谈成果77
11.3.1任务1:总结访谈77
11.3.2任务2:确认访谈成果78
第12章测试计划(计划)79
12.1步骤1:建立测试计划80
12.1.1任务1:准备引言部分80
12.1.2任务2:定义总体的功能需求81
12.1.3任务3:确定手动/自动测试的种类82
12.1.4任务4:确定测试结束标准82
12.1.5任务5:制定回归测试策略83
12.1.6任务6:定义测试交付物84
12.1.7任务7:组建测试团队85
12.1.8任务8:建立测试环境86
12.1.9任务9:定义依赖关系86
12.1.10任务10:创建测试进度表87
12.1.11任务11:选择测试工具89
12.1.12任务12:建立缺陷报告/跟踪规程89
12.1.13任务13:建立变更请求规程90
12.1.14任务14:建立版本控制规程91
12.1.15任务15:定义配置构建规程91
12.1.16任务16:定义项目问题解决规程91
12.1.17任务17:建立报告规程92
12.1.18任务18:定义批准规程92
12.2步骤2:定义度量目标92
12.2.1任务1:定义度量标准93
12.2.2任务2:定义度量要点93
12.3步骤3:评审与批准测试计划95
12.3.1任务1:评审的日程安排/执行95
12.3.2任务2:获得批准96
第13章测试用例设计(执行)97
13.1步骤1:设计功能测试97
13.1.1任务1:完善功能测试需求97
13.1.2任务2:建立功能/测试矩阵102
13.2步骤2:设计图形用户界面测试103
13.2.1任务1:确定应用程序图形用户界面组件103
13.2.2任务2:定义图形用户界面测试104
13.3步骤3:定义系统/验收测试105
13.3.1任务1:确定可能的系统测试105
13.3.2任务2:设计阶段性系统测试105
13.3.3任务3:确定潜在的验收测试107
13.4步骤4:测试设计的评审和批准107
13.4.1任务1:评审的日程安排/准备107
13.4.2任务2:获得批准107
第14章测试开发(执行)108
14.1步骤1:开发测试脚本108
14.1.1任务1:开发自动/手动图形用户界面测试和功能测试脚本108
14.1.2任务2:开发自动/手动的阶段性系统测试的脚本109
14.2步骤2:测试开发的评审和批准109
14.2.1任务1:评审的日程安排/准备109
14.2.2任务2:获得批准109
第15章通过可追溯性实现测试覆盖111
15.1用例和可追溯性112
15.2小结113
第16章测试执行/评价(执行/检查)114
16.1步骤1:组织测试内容并进行测试114
16.1.1任务1:回归测试上次螺旋过程中的缺陷114
16.1.2任务2:执行新螺旋测试中的手动/自动测试115
16.1.3任务3:记录螺旋测试中发现的缺陷115
16.2步骤2:测试评价115
16.3步骤3:发布中期报告116
16.3.1任务1:重新安排测试进度表116
16.3.2任务2:确定需求变更116
第17章准备下次螺旋测试(改进)118
17.1步骤1:更新测试内容119
17.1.1任务1:更新功能/图形用户界面测试内容119
17.1.2任务2:更新阶段性系统测试内容119
17.1.3任务3:更新验收测试内容119
17.2步骤2:重新评价测试队伍、规程、环境119
17.2.1任务1:评价测试队伍119
17.2.2任务2:评审测试控制规程120
17.2.3任务3:更新测试环境120
17.3步骤3:发布中期测试报告121
第18章进行系统测试123
18.1步骤1:完成系统测试计划123
18.1.1任务1:确定系统测试的类型123
18.1.2任务2:确定系统测试的日程安排124
18.1.3任务3:组建系统测试团队126
18.1.4任务4:建立系统测试环境126
18.1.5任务5:安装系统测试工具127
18.2步骤2:完成系统测试用例127
18.2.1任务1:设计/脚本化性能测试127
18.2.2任务2:设计/脚本化安全性测试129
18.2.3任务3:设计/脚本化容量测试130
18.2.4任务4:设计/脚本化压力测试130
18.2.5任务5:设计/脚本化兼容性测试131
18.2.6任务6:设计/脚本化转换测试131
18.2.7任务7:设计/脚本化易用性测试131
18.2.8任务8:设计/脚本化文档测试132
18.2.9任务9:设计/脚本化备份测试133
18.2.10任务10:设计/脚本化恢复性测试133
18.2.11任务11:设计/脚本化安装测试133
18.2.12任务12:设计/脚本化其他类型的系统测试134
18.3步骤3:系统测试的评审和批准135
18.3.1任务1:评审的日程安排/执行135
18.3.2任务2:获得批准135
18.4步骤4:执行系统测试135
18.4.1任务1:对系统测试中的修正进行回归测试135
18.4.2任务2:执行新的系统测试135
18.4.3任务3:记录系统测试中发现的缺陷136
第19章进行验收测试137
19.1步骤1:完成验收测试计划138
19.1.1任务1:确定验收测试的类型138
19.1.2任务2:确定验收测试的日程安排138
19.1.3任务3:组建验收测试团队138
19.1.4任务4:建立验收测试环境139
19.1.5任务5:安装验收测试工具139
19.2步骤2:完成验收测试用例139
19.2.1任务1:系统级别测试用例的子集139
19.2.2任务2:设计/脚本化附加的验收测试140
19.3步骤3:验收测试计划的评审和批准140
19.3.1任务1:评审的日程安排/执行140
19.3.2任务2:获得批准140
19.4步骤4:执行验收测试140
19.4.1任务1:对验收测试中的修正进行回归测试140
19.4.2任务2:执行新的验收测试141
19.4.3任务3:记录验收测试中发现的缺陷141
第20章总结/报告螺旋测试结果142
20.1步骤1:执行数据精简142
20.1.1任务1:确保所有的测试均已执行/解决142
20.1.2任务2:通过测试编号整理测试缺陷143
20.1.3任务3:将剩余的缺陷写入一个矩阵143
20.2步骤2:准备最终的测试报告143
20.2.1任务1:准备项目概述143
20.2.2任务2:总结测试活动143
20.2.3任务3:分析/创建度量图144
20.2.4任务4:总结测试成果/建议148
20.3步骤3:最终测试报告的评审和批准149
20.3.1任务1:评审的日程安排/执行149
20.3.2任务2:获得批准150
20.3.3任务3:发布最终的测试报告150
第四部分测试项目管理
第21章项目管理概述152
21.1定义目标152
21.2定义项目范围152
21.3识别关键活动153
21.4正确地估算153
21.5设计153
21.6人员管理153
21.6.1领导力153
21.6.2沟通154
21.6.3解决问题154
21.6.4持续监控154
21.6.5变更管理155
第22章测试项目管理156
22.1理解需求156
22.2测试规划157
22.3测试执行157
22.4识别及改进过程157
22.5测试项目经理的基本特质158
22.5.1需求分析158
22.5.2差距分析158
22.5.3开发测试用例时要进行横向思考158
22.5.4避免重复158
22.5.5测试数据生成158
22.5.6确认测试环境159
22.5.7带着破坏目的去测试159
22.5.8分析测试结果159
22.5.9毫不犹豫地接受别人的帮助159
22.5.10出现问题时将它们转移159
22.5.11增强沟通159
22.5.12不断更新自身的业务知识159
22.5.13学习新的测试技术和工具160
22.5.14提交质量160
22.5.15过程改进160
22.5.16创建知识库160
22.5.17重获成功160
第23章测试评估161
23.1测试评估中的关键活动163
23.1.1测试范围文档163
23.1.2测试策略163
23.1.3测试条件163
23.1.4测试用例164
23.1.5测试脚本164
23.1.6执行/运行计划164
23.2影响测试评估的因素164
23.3测试计划评估164
23.4测试执行与控制工作量165
23.5测试结果分析165
23.6工作量估算——项目模型166
第24章缺陷监控及管理过程169
24.1缺陷报告170
24.2缺陷会议170
24.3缺陷分类170
24.4缺陷的优先级171
24.5缺陷的种类171
第25章测试与开发方法的整合173
25.1步骤1:组建测试团队173
25.2步骤2:确定将要整合的测试步骤及任务174
25.3步骤3:自定义测试步骤及任务174
25.4步骤4:选择整合要点174
25.5步骤5:修改开发方法174
25.6步骤6:合并缺陷记录174
25.7步骤7:对测试方法的使用进行培训175
第26章本土/离岸模型176
26.1步骤1:分析176
26.2步骤2:确定经济上的得失176
26.3步骤3:确定选择标准177
26.4项目管理和监控177
26.5外包方法177
26.5.1本土活动178
26.5.2离岸活动178
26.6实现本土/离岸模型179
26.6.1知识转移179
26.6.2详细设计179
26.6.3基于里程碑的转移过程179
26.6.4稳定状态179
26.6.5应用管理179
26.6.6关系模型180
26.7本土/离岸方法的收益181
26.8本土/离岸模型的未来183
第五部分现代软件测试工具
第27章软件测试简史186
27.1自动测试工具的发展188
27.1.1静态录制/回放工具(不附带脚本语言)189
27.1.2静态录制/回放工具(具有脚本语言)189
27.1.3可变的录制/回放工具189
27.2软件测试和开发的历史比较191
第28章软件测试趋势193
28.1自动录制/回放测试工具193
28.2测试用例建立工具193
28.3领先的自动测试工具194
28.4领先的测试用例生成工具195
28.5必要条件和充分条件195
28.6测试数据/测试用例的生成195
28.6.1生产数据抽样196
28.6.2从零开始196
28.6.3数据播种196
28.6.4根据数据库生成数据197
28.6.5根据需求生成测试数据/测试用例197
第29章测试工具的分类199
29.1测试工具选择检查表199
29.2厂商工具描述199
29.3需要使用测试自动化的情况205
29.4不需要使用测试自动化的情况205
第30章自动测试工具的评价方法207
30.1步骤1:定义你的测试需求207
30.2步骤2:设定工具的目标207
30.3步骤3a:非正式采购模式下的选择活动207
30.3.1任务1:制定采购计划207
30.3.2任务2:定义选择标准208
30.3.3任务3:确定候选工具208
30.3.4任务4:进行候选工具评审208
30.3.5任务5:为候选工具打分208
30.3.6任务6:选择工具208
30.4步骤3b:正式采购模式下的选择活动209
30.4.1任务1:制定采购计划209
30.4.2任务2:创建技术需求文档209
30.4.3任务3:评审需求209
30.4.4任务4:生成请求建议209
30.4.5任务5:简化建议209
30.4.6任务6:进行技术评估209
30.4.7任务7:选择工具源209
30.5步骤4:采购测试工具210
30.6步骤5:制定评价计划210
30.7步骤6:制定工具经理计划210
30.8步骤7:创建培训计划210
30.9步骤8:接收工具210
30.10步骤9:执行验收测试211
30.11步骤10:召开推介会议211
30.12步骤11:实施修改211
30.13步骤12:培训工具的用户211
30.14步骤13:在操作环境中使用工具211
30.15步骤14:撰写评价报告212
30.16步骤15:确定目标是否实现212
附录A螺旋测试法213
附录B软件质量保证计划221
附录C需求规约222
附录D变更请求表224
附录E测试模板225
附录F检查表251
附录G软件测试技术281
参考文献325
术语表331
索引334
……