软件测试原理与实践
作者 : Srinivasan Desikan;Gopalaswamy Ramesh
译者 : 韩柯 李娜
丛书名 : 计算机科学丛书
出版日期 : 2009-03-11
ISBN : 7-111-25506-2
定价 : 45.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 285
开本 : 16开
原书名 :
原出版社: PEARSON
属性分类: 教材
包含CD :
绝版 :
图书简介

本书从实用的角度对软件测试进行了全面的阐述,讨论了像极限测试和即兴测试这类新兴的领域。
本书特色
  ●关注分散在全球地域的团队。讨论全球化团队的人员、组织结构和模型问题。
  ●提供印度在测试方面的丰富经验。越来越多的产品测试工作是在印度完成的,但是研究印度经验或印度业务模型的专著却很少。本书通过实例讨论了印度的最佳测试实践。
  ●在保持完整的理论体系基础上,强调实践经验。本书在介绍诸如等价类划分和圈复杂度等传统方法的同时,还讨论了测试的一些实际问题,例如国际化测试和回归测试。
作者简介
Srinivasan Desikan
印度班加罗尔市的西贝尔系统公司质量工程部主任,具有16年的产品测试经验,所测试的产品正在被全世界数以百万计的客户使用。Srinivasan在测试自动化、测试管理、测试过程和测试团队建立等方面有丰富的经验。他经常在国际测试会议上发表演讲,定期在多所大学举办讲座。Srinivasan是印度技术学院的客座教授,并担任多家印度测试公司的荣誉董事主任。
Gopalaswamy Ramesh
独立咨询师,班加罗尔信息技术国际学院的副教授,在印度和海外具有25年的业界经验,曾经担任过Oracle印度开发中心的高级主任。他还是获得过印度国家奖的畅销书《管理全球化软件项目》的作者,目前,他在为多家印度和海外公司提供项目管理和相关领域的咨询服务。

图书特色

图书前言

当今世界,软件变得无处不在。消费者对此的期望大幅度增加,“软件出错很正常,我们必须接受这个事实”的旧观点已经不再适用。如今,人们期望软件能每时每刻地正常运行,并且要满足客户不断变化的需求。早先,软件系统用于后台管理服务和非关键业务的操作。现在,越来越多的关键应用都在全球实现。对无差错运行软件期望的提高,导致了对软件供应商高品质产量需求的增长。反过来,在过去十几年中,市场关注的焦点已从单纯的编程和开发转向更全面的目标:生产的软件一直正常工作,因而更加关注对软件的测试。
  在过去的十几年中,测试已经引起人们的极大兴趣。以下列举一些事实:
ナ测试工作量的成倍增加提供了广阔的职业发展机会;
ナ测试相关职位的薪资正在上升;
ナ测试已经成为重要的外包机会;
ナ过去五年,关于测试的会议和其他类似活动有了明显的增加;
ナ越来越多的专业人士考虑把软件测试作为职业。
测试的工作方法为了跟上需求的增加也经历了彻底的改变。首先,全球化是持久的。现在的组织利用地域时差和全球的人才,向各大洲派遣开发和测试团队,这些团队共同无缝地工作。为了成功地推动这种新的全球化运作方式,公司必须掌握异地分布团队这项工作的艺术。其次,测试已经从即兴和偶然的尝试,转变为一项系统的、有计划的活动,以完成所有过程并且通过科学的度量。第三,现在成功的测试需要谨慎地利用各种技术,满足产品上市时间的要求。贯穿于测试生命周期的测试自动化也已经成为必需品而不是奢侈品。最后,人们对测试职业的看法也经历了一种巨变—成功的公司应为测试专业人士提供职业发展途径,鼓励他们发挥聪明才智,以保证他们能够长期供职于该公司和从事软件测试这个职业。
本书及时满足了测试从业人员的需要,同时鼓舞了有志投身测试行业的专业人士和学生。Ramesh和Srinivasan已经把他们40年的实际从业经验带给了大家。本书包含了某些对行业成功至关重要的方面,而这些方面在其他书中很少涉及,例如:
ナ理论和实践之间的平衡:很多书都努力给出严谨的理论,试图把现实中的问题简单化。而本书作者坚持从现实世界存在的事实着手,提供解决现实问题所需的理论基础。
ナ人员、过程和技术问题之间的平衡:成功的公司有条不紊地工作,充分利用技术并且提升人员的能力。作者成功地抵制住了以牺牲实用性为代价,只讨论“很酷的技术问题”的诱惑。例如,本书讨论了像自动化(技术密集)、人和组织结构(以人为本)、测试组织和报告(注重过程)这样的问题。
ナ从从业者务实的观点展示出一个坚实的基础:作者广泛地讨论了各种不同类型的测试。例如,详细讨论了像国际化这样难懂的主题。
ナ本书是我知道的第一本意识到并清楚提出全球化的重要性、明确讨论全球化的团队结构和因此带来的各种可能问题的书。这清晰地表明作者作为全球化软件测试团队的主要领导所积累的管理经验。
ナ本书涵盖了一些公认的测试方法,这些测试方法已多次在世界各地的国际测试会议上提出并被接受。
除了以上这些,每章最后所附的实用练习向读者揭示了测试的真谛。作者全学期测试课程的教学经验在各种练习中得到充分体现。我坚信,随着本书的出版,这类课程会推广到各类高校,使软件测试形成一门学科,拓宽开发更具竞争力的测试职业网络。
我希望本书及其作者不断营造一种环境的努力获得成功,在这种环境中,软件测试被认为是任何软件开发生存周期的一个关键阶段,测试职业被认为具有很高价值,测试被发展为一门工程学科。

Vikram Shah
Vikram Shah目前是Silver Software和IT-People管理委员会的主任,是BiTES(Karmataka州政府成立的IT教育标准管理委员会)的一位积极成员。Vikram Shah具有30多年的业界经验,在多家公司(例如Mahindra British Telecom、Novell、Andiamo Software和Talisma Software)担任过CEO和M.D.。

封底文字

本书从实用的角度对软件测试进行了全面的阐述,讨论了像极限测试和即兴测试这类新兴的领域。 本书特色 ●关注分散在全球地域的团队。讨论全球化团队的人员、组织结构和模型问题。 ●提供印度在测试方面的丰富经验。越来越多的产品测试工作是在印度完成的,但是研究印度经验或印度业务模型的专著却很少。本书通过实例讨论了印度的最佳测试实践。 ●在保持完整的理论体系基础上,强调实践经验。本书在介绍诸如等价类划分和圈复杂度等传统方法的同时,还讨论了测试的一些实际问题,例如国际化测试和回归测试。 作者简介 Srinivasan Desikan 印度班加罗尔市的西贝尔系统公司质量工程部主任,具有16年的产品测试经验,所测试的产品正在被全世界数以百万计的客户使用。Srinivasan在测试自动化、测试管理、测试过程和测试团队建立等方面有丰富的经验。他经常在国际测试会议上发表演讲,定期在多所大学举办讲座。Srinivasan是印度技术学院的客座教授,并担任多家印度测试公司的荣誉董事主任。 Gopalaswamy Ramesh 独立咨询师,班加罗尔信息技术国际学院的副教授,在印度和海外具有25年的业界经验,曾经担任过Oracle印度开发中心的高级主任。他还是获得过印度国家奖的畅销书《管理全球化软件项目》的作者,目前,他在为多家印度和海外公司提供项目管理和相关领域的咨询服务。

图书序言

软件测试已经扩展到更宽的领域,并显现出其重要性。正如医药公司在新药发布之前被要求宣布他们如何测试该药品一样,由于顾客需要无缺陷的软件产品,相关管理部门也要对将发布的软件进行彻底的测试。市面上的大部分专著都是理论方面的,很少有针对实际问题的。本书供选择测试作为职业的学生学习及从业人员参考,他们需要务实和实用的测试视角,以及人员、过程和技术之间的正确平衡。两者结合形成了本书的基础—软件测试原理与实践。
  顾名思义,我们强调原理和实践。本书的素材已被多所大学,比如印度钦奈的安娜大学和班加罗尔的国际信息技术学院进行“b测试”,班加罗尔还将本书用作信息技术学院学生的教材以及其软件工程卓越中心(Center of Excellence)的参考用书。本书的一些概念已通过国际会议和作者的客座演讲提供给从业者。
我们增加了管理地理上分散的团队的章节,这尤其适用于跨国公司,他们的团队分散在世界不同的大洲协调同步开发、测试和交付产品给全球的客户。本书也包括了像极限测试、即兴测试等顺应新趋势的测试。
  本书的内容可供从业者理解测试行业的最新状态。新增的关于指标与度量、测试策划、测试管理及测试自动化等章节,帮助从业者在工作中采用这些概念。我们是在研究了不同大学的教学大纲后编制此书的,因此学术上是十分严谨的。
非常感谢印度钦奈eFunds公司的测试经理Gayathri Chandrasekar女士,本书许多章节都有她的贡献。

  Srinivasan Desikan
 Gopalaswamy Ramesh

译者简介

韩柯 李娜:暂无简介

译者序

近年来,已经有不少关于软件测试方面的专著和教材介绍到我国,我国软件测试行业的学者和资深人士撰写的专著也已面市。但是,目前软件测试行业仍处于高度依赖个人经验和直觉的状态,教材上介绍的测试方法多种多样,而如何选择和组合运用来达到更好的效果,在很大程度上依靠个人的经验。此外,软件测试的成果并没有很可靠的、普遍适用的评价准则,经过测试的软件所残留的缺陷并没有可靠的方法验证。由于决定软件测试项目质量的因素有很多,因此不同的测试项目之间通常并不具备很强的可比性。所以,对于软件测试人员来说,关键的并不在于掌握多少测试技巧,而在于通过大量的实践和思考,对软件测试有怎样的理解和理念,在于怎样运用这些技巧。
  本书的突出特点是不回避软件测试普遍存在的实际问题(例如时间压力、风险压力、人员管理问题等),从工程实践的角度,比较全面地讨论了这些棘手问题的具体应对方法和相应的风险,站在比较高的层次上全面地讨论了软件测试工程的整体把握方法。全书的主题设置和论述体现出作者在软件测试和软件工程领域有丰富的实践经验。每章所附的思考题大多是实际中遇到的问题。通过对这些问题的认真思考,相信读者会对这些现实问题有更深刻的理解。
  在翻译过程中,除了对原文的个别错误进行了相应的更正外,我们力求忠实于原文。但是,由于译者的知识水平和实际工作经验有限,不当之处在所难免,恳请读者批评指正。参加本书翻译、审校和其他辅助工作的还有李津津、黄慧菊、耿民和屈健。
  译者
  2008年3月

图书目录

出版者的话
译者序

前言
第一部分  写作线索
第1章  测试原理 2
1.1  生产软件中的测试背景 2
1.2  本章介绍 3
1.3  不完善的车 4
1.4  Dijkstra定律 4
1.5  及时测试 5
1.6  圣人和猫 6
1.7  首先测试测试用例 7
1.8  杀虫剂悖论 7
1.9  护航舰队与破布 8
1.10  桥上的警察 9
1.11  钟摆的终结 9
1.12  黑衣人 11
1.13  自动化综合症 12
1.14  小结 13
第2章  软件开发生存周期模型 15
2.1  软件项目的阶段 15
2.1.1  需求获取和分析 15
2.1.2  策划 15
2.1.3  设计 15
2.1.4  开发或编码 15
2.1.5  测试 16
2.1.6  部署和维护 16
2.2  质量、质量保证和质量控制 16
2.3  测试、验证和确认 17
2.4  表示不同阶段的过程模型 18
2.5  生存周期模型 19
2.5.1  瀑布模型 19
2.5.2  原型和快速应用开发模型 20
2.5.3  螺旋或迭代模型 22
2.5.4  V字模型 22
2.5.5  改进型V字模型 24
2.5.6  各种生存周期模型的比较 26
第二部分  测试类型
第3章  白盒测试 30
3.1  白盒测试的定义 30
3.2  静态测试 30
3.2.1  人工静态测试 31
3.2.2  静态分析工具 33
3.3  结构测试 35
3.3.1  单元/代码功能测试 35
3.3.2  代码覆盖测试 36
3.3.3  代码复杂度测试 40
3.4  白盒测试中的挑战 43
第4章  黑盒测试 47
4.1  黑盒测试的定义 47
4.2  黑盒测试的意义 48
4.3  黑盒测试的时机 48
4.4  黑盒测试的方法 48
4.4.1  基于需求的测试 49
4.4.2  正面和负面测试 52
4.4.3  边界值分析 53
4.4.4  决策表 56
4.4.5  等价划分 57
4.4.6  基于状态或基于图的测试 59
4.4.7  兼容性测试 61
4.4.8  用户文档测试 63
4.4.9  领域测试 64
4.5  小结 66
第5章  集成测试 68
5.1  集成测试的定义 68
5.2  集成测试作为一种测试类型 68
5.2.1  自顶向下集成 70
5.2.2  自底向上集成 71
5.2.3  双向集成 72
5.2.4  系统集成 73
5.2.5  选择集成方法 73
5.3  集成测试作为一个测试阶段 74
5.4  场景测试 74
5.4.1  系统场景 74
5.4.2  用例场景 75
5.5  缺陷围歼 77
5.5.1  选择缺陷围歼的频度和持续时间 77
5.5.2  选择合适的产品版本 77
5.5.3  对缺陷围歼的目标进行沟通 78
5.5.4  建立和监视实验室 78
5.5.5  采取行动解决问题 78
5.5.6  优化缺陷围歼所涉及的工作 78
5.6  小结 79
第6章  系统测试和确认测试 80
6.1  系统测试概述 80
6.2  实施系统测试的原因 81
6.3  功能测试与非功能测试 82
6.4  功能系统测试 83
6.4.1  设计/体系结构验证 84
6.4.2  业务垂直测试 84
6.4.3  部署测试 85
6.4.4  贝塔测试 86
6.4.5  符合性的认证、标准和测试 87
6.5  非功能系统测试 88
6.5.1  设置配置 88
6.5.2  提出进入与退出准则 89
6.5.3  平衡关键资源 89
6.5.4  可伸缩性测试 90
6.5.5  可靠性测试 92
6.5.6  压力测试 95
6.5.7  互操作性测试 97
6.6  确认测试 98
6.6.1  确认准则 99
6.6.2  选择确认测试的测试用例 99
6.6.3  执行确认测试 100
6.7  测试阶段小结 101
6.7.1  多阶段测试模型 101
6.7.2  多个发布版本的处理 103
6.7.3  谁负责实施与何时实施 103
第7章  性能测试 106
7.1  引论 106
7.2  决定性能测试的要素 106
7.3  性能测试的方法论 108
7.3.1  收集需求 108
7.3.2  编写测试用例 110
7.3.3  自动化性能测试用例 110
7.3.4  执行性能测试用例 111
7.3.5  分析性能测试结果 112
7.3.6  性能调谐 113
7.3.7  性能基准测试 115
7.3.8  能力策划 116
7.4  性能测试工具 116
7.5  性能测试的过程 117
7.6  挑战 118
第8章  回归测试 120
8.1  回归测试的定义 120
8.2  回归测试的类型 120
8.3  回归测试的时机 121
8.4  回归测试的方法 122
8.4.1  实施第一次“冒烟”或“摸底”测试 123
8.4.2  理解选择测试用例的准则 123
8.4.3  测试用例分类 124
8.4.4  选择测试用例的方法论 125
8.4.5  重新设置测试用例以进行回归测试 126
8.4.6  总结回归测试的结果 128
8.5  回归测试的最佳实践 128
第9章  国际化〔I18n〕测试 131
9.1  引言 131
9.2  国际化介绍 131
9.2.1  语言的定义 131
9.2.2  字符集 131
9.2.3  属地 132
9.2.4  本章使用的术语 132
9.3  国际化测试的测试阶段 133
9.4  有效化测试 134
9.5  属地测试 135
9.6  国际化确认 136
9.7  假语言测试 137
9.8  语言测试 138
9.9  本地化测试 138
9.10  国际化使用的工具 140
9.11  挑战与问题 140
第10章  即兴测试 142
10.1  即兴测试概述 142
10.2  伙伴测试 144
10.3  结对测试 145
10.4  探索式测试 146
10.5  迭代式测试 148
10.6  敏捷与极限测试 149
10.6.1  XP工作流 150
10.6.2  通过例子进行小结 152
10.7  缺陷播种 153
10.8  小结 153
第三部分  特殊测试专题
第11章  面向对象系统的测试 156
11.1  引言 156
11.2  面向对象软件入门 156
11.3  面向对象测试的差别 161
11.3.1  一组类的单元测试 161
11.3.2  将类组合在一起—集成测试 164
11.3.3  面向对象系统的系统测试与互操作 165
11.3.4  面向对象系统的回归测试 165
11.3.5  面向对象系统的测试工具 165
11.3.6  小结 167
第12章  可使用性与易获得性测试 169
12.1  可使用性测试的定义 169
12.2  可使用性测试的途径 170
12.3  可使用性测试的时机 171
12.4  实现可使用性的方法 173
12.5  可使用性的质量因素 174
12.6  美感测试 175
12.7  易获得性测试 175
12.7.1  基本易获得性 176
12.7.2  产品易获得性 177
12.8  可使用性工具 179
12.9  可使用性实验室的建立 180
12.10  可使用性的测试角色 181
12.11  小结 182
第四部分  测试中的人员和组织问题
第13章  常见人员问题 184
13.1  关于测试的感觉和错误概念 184
13.1.1  “测试没有什么技术挑战” 184
13.1.2  “测试没有为我提供职业成长
道路” 185
13.1.3  “我被派来测试—我到底
怎么了?!” 186
13.1.4  “这些人是我的对手” 186
13.1.5  “测试是如果我有时间最终会
做的工作” 186
13.1.6  “测试的拥有者毫无意义” 187
13.1.7  “测试只是破坏” 187
13.2  测试与开发工作的比较 188
13.3  为测试人员提供职业发展道路 188
13.4  生态系统的角色与行动要求 192
13.4.1  教育系统的角色 192
13.4.2  高级管理层的角色 193
13.4.3  测试界的角色 194
第14章  测试团队的组织结构 196
14.1  组织结构的要素 196
14.2  单产品公司的结构 196
14.2.1  单产品公司的测试团队结构 197
14.2.2  按组件组织的测试团队 199
14.3  多产品公司的结构 199
14.3.1  测试团队作为“首席技术官办公室”
的一部分 200
14.3.2  针对所有产品的单一测试团队 201
14.3.3  按产品组织的测试团队 201
14.3.4  针对不同测试阶段的独立测试团队 201
14.3.5  混合模型 202
14.4  全球化与地域分散的团队对产品测试
的影响 202
14.4.1  全球化的业务影响 202
14.4.2  全时区开发/测试团队模型 203
14.4.3  测试能力中心模型 204
14.4.4  全球团队面临的挑战 205
14.5  测试服务公司 206
14.5.1  测试服务的业务需求 206
14.5.2  测试作为一种服务与产品测试公司
之间的差别 207
14.5.3  测试服务公司的典型角色和责任 208
14.5.4  测试服务公司面临的挑战与问题 209
14.6  测试公司的成功因素 211
第五部分  测试管理与自动化
第15章  测试策划、管理、执行与报告 214
15.1  引言 214
15.2  测试策划 214
15.2.1  准备测试计划 214
15.2.2  范围管理:决定要测试和不测试
的特性 214
15.2.3  确定测试方法和策略 215
15.2.4  确定测试准则 216
15.2.5  确定责任、人员和培训计划 216
15.2.6  确定资源需求 216
15.2.7  确定测试的可交付产品 217
15.2.8  测试任务:规模与工作量估计 217
15.2.9  活动分解与进度估计 219
15.2.10  沟通管理 220
15.2.11  风险管理 220
15.3  测试管理 223
15.3.1  标准的选择 223
15.3.2  测试基础设施管理 225
15.3.3  测试人员管理 227
15.3.4  与产品发布集成 227
15.4  测试过程 228
15.4.1  把各种要素放在一起并确定测试
计划基线 228
15.4.2  测试用例规格说明 228
15.4.3  可跟踪性矩阵的更新 229
15.4.4  确定有可能实现自动化的测试
用例 229
15.4.5  测试用例的开发和基线确立 229
15.4.6  测试用例的执行与可跟踪性矩阵
的更新 229
15.4.7  指标的采集与分析 230
15.4.8  准备测试总结报告 230
15.4.9  推荐产品发布准则 230
15.5  测试报告 230
15.6  最佳实践 231
15.6.1  与过程相关的最佳实践 232
15.6.2  与人员相关的最佳实践 232
15.6.3  与技术相关的最佳实践 232
附录A:测试策划检查单 233
附录B:测试计划模板 234
第16章  软件测试自动化 237
16.1  测试自动化的定义 237
16.2  自动化使用的术语 238
16.3  自动化所需的技能 239
16.4  自动化的对象与范围 240
16.4.1  确定自动化负责的测试类型 241
16.4.2  自动化不太可能变更的部分 241
16.4.3  自动化测试符合标准 241
16.4.4  自动化的管理问题 242
16.5  自动化的设计和体系结构 242
16.5.1  外部模块 243
16.5.2  场景与配置文件模块 243
16.5.3  测试用例与测试框架模块 243
16.5.4  工具与结果模块 244
16.5.5  报告生成器与报告/指标模块 244
16.6  测试工具/框架的一般需求 244
16.7  自动化的过程模型 250
16.8  测试工具的选择 252
16.8.1  选择测试工具的准则 253
16.8.2  工具选择与部署步骤 254
16.9  极限编程模型的自动化 255
16.10  自动化中的挑战 255
16.11  小结 255
第17章  测试指标和度量 258
17.1  指标和度量的定义 258
17.2  测试中指标的意义 260
17.3  指标类型 262
17.4  项目指标 262
17.4.1  投入偏差(计划投入与实际
投入) 263
17.4.2  计划偏差(计划与实际) 264
17.4.3  不同阶段内的投入分布 265
17.5  进度指标 266
17.5.1  测试缺陷指标 267
17.5.2  开发缺陷指标 273
17.6  生产力指标 277
17.6.1  每100小时测试发现的缺陷数 277
17.6.2  每100小时的测试用例执行数 278
17.6.3  每100小时的测试开发测试用例数 278
17.6.4  每100个测试用例发现的缺陷数 279
17.6.5  每100个失败的测试用例缺陷数 279
17.6.6  测试阶段有效性 280
17.6.7  已关闭缺陷的分布 280
17.7  发布指标 281
17.8  小结 282
参考文献 284

教学资源推荐
作者: [美]罗恩·佩腾(Ron Patton) 著
作者: [美]约翰 W. 萨茨辛格(John W. Satzinger) 罗伯特 B. 杰克逊(Robert B. Jackson) 史蒂芬 D. 伯德(Stephen D. Burd)著
参考读物推荐
作者: Scott W. Ambler, Larry L. Constantine
作者: John D.McGregor David A.sykes 著
作者: Alan Shalloway, James R.Trott