首页>参考读物>计算机科学与技术>软件工程及软件方法学

测试反模式:有效规避常见的92种测试陷阱
作者 : (美)Donald G. Firesmith 著
译者 : 王文慧 译
出版日期 : 2015-01-08
ISBN : 978-7-111-48490-5
定价 : 59.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 221
开本 : 16
原书名 : 常见系统与软件测试陷阱
原出版社: Pearson Education Asia
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书是作者35年软件和系统工程经验的结晶,书中分类列出了92条陷阱,告诉测试人员、技术和其他利益相关人员如何避免落入这些陷阱,认识到何时会落入这些陷阱,以及如果从这些陷阱逃出以避免带来更多负面影响。

图书特色

本书软件和系统工程领域专家亲笔撰写,软件工程大师、畅销书作者Capers Jones作序倾情推荐,是软件测试领域不可多得的参考指南。书中系统归纳了在日常开发过程中容易出现的92种测试陷阱,从描述、可能出现之处、典型症状、潜在的负面后果、潜在原因、建议及相关的陷阱等多个方面详细阐述了如何避免陷入这些陷阱、在陷入的时候识别这些陷阱,以及在逃脱陷阱的同时将负面后果最小化。
本书共分4章:第1章讲解测试、缺陷和测试陷阱等重要概念,并介绍如何对测试陷阱进行分类和记录,以便能更容易地找到并理解它们;第2章总结了92种常见的测试陷阱,并对每种陷阱进行了简要介绍,以帮助读者轻松寻找并识别出相关的陷阱;第3章是本书的核心内容,详细讲解经常发生的92种测试陷阱,包括名字、描述、适用性、典型症状、潜在的负面后果、潜在原因和相关的规避陷阱或限制后果的建议;第4章提供了关于测试陷阱的整体总结,然后简单地介绍了未来可能使测试陷阱分类更加有用的研究。此外,附录部分还提供了词汇表、缩略语、注释、参考和计划检查单,帮助读者快速了解大部分陷阱,指导实际工作。

“这本书是对测试类书籍及质量保证和软件工程类书籍的一个非常好的补充……它很可能成为测试培训的标准,同时也是专业测试人员和开发人员的非常好的参考书。我也推荐将这本书作为外包软件合同谈判的背景资料。我经常作为质量差劲的软件诉讼案的专家证人,如果合同谈判前参考了这本书,就很可能会减少或消除这些诉讼…… ”
——Capers Jones
Namcook Analytics LLC副总裁兼首席技术官

软件和系统测试人员常常遭遇相同的陷阱。本书把那些致使测试远不如应该的那样有效和高效的错误当作反模式,归纳了92种陷阱。凭借着在软件和系统工程领域35年的工作经验,作者向测试人员、技术经理和其他利益相关者展示了如何避免陷入这些陷阱、如何在陷入的时候识别这些陷阱,以及如何在逃脱陷阱的同时将负面后果最小化。
本书主要针对大中型项目的专业测试人员和其他利益相关者,书中的反模式和解决方案可用于“纯软件”应用和包括了异质子系统、硬件、软件、数据、设备、材料及人员的“软件依赖系统”。对于每个陷阱,作者都指出它们可能出现的地方、典型症状、潜在的负面后果和原因,并给出了明确的可执行的建议来避免或者减轻其负面后果。
通过阅读本书,你将:
查明需要改进的测试过程——在项目进行之前、过程中和进行之后
改善所有项目参与人员的共同认识和合作
开发、评审和优化未来项目的测试方案
使测试文档更加有用
识别测试风险和合适的风险缓解策略
将测试问题分类,以用于度量数据收集、分析和报告
培训新的测试人员、QA专家和其他项目利益相关者

Donald G. Firesmith 软件工程研究所(SEI)软件解决方案部门首席工程师,帮助美国国防部等政府机构采购大型的、复杂的软件依赖系统。作为国际公认的软件和系统工程专家,他在商业及政府软件和系统开发方面有35年的行业经验,擅长于需求工程、系统与软件架构工程、面向对象开发、测试、质量工程,以及包括情境方法工程的过程改进。他还发表过数十篇技术文章,在很多国际会议上发表过演讲,并且还曾担任多个软件会议的程序员委员会主席或者委员。他的众多论文和报告可从他的个人网站下载:http://donald.firesmith.net 。

王文慧 六西格玛黑带,CMMI高成熟度评估师,ISO9000/20000/27001审计员,CSM、PMP、管理3.0_敏捷领导力认证讲师。现任惠普公司高级质量经理,曾为金融、交通、IT等行业客户提供质量咨询服务,拥有十余年软件行业经验。她拥有浙江大学电子工程学士学位,澳大利亚新南威尔士大学计算机硕士学位。

图书前言

市面上有许多关于系统和软件测试的好书,大多数测试人员的书架上可能已经有好几本了。似乎讲测试如何做的书籍并不少见,而且这些书中全是针对如何测试软件依赖系统(software-reliant system)的优秀建议。包括测试计划、许多不同类型的测试、测试如何融入开发周期、测试用例设计(包括测试用例选择和测试完成标准)、测试工具和环境,以及其他许多有趣有用的话题。
我们花了大量的时间和精力做测试,虽然如此,我们交付的系统即使没有上百个遗留的缺陷,也会有几十个。除了作为测试人员,我也参与过众多的内部以及独立的系统和软件开发项目的技术评估(ITA),包括测试组织和项目。在每一种情况下,无论我是测试团队还是评估团队的一员,我总是会观察到一些明显的测试问题。更具体地讲,我观察到测试人员和开发人员一遍又一遍地掉进同样的陷阱中。显然,关于如何做的书籍虽然非常有用,但不足以使测试变得高效或有效。
我因忍受和观察这些经常发生的测试陷阱而经历的无奈导致了这本书的出现。如果许多讲“如何做”的书籍是不够的,那么显然现在是时候尝试不同的方式:一本“如何不做”的书。
你可以将这本书看成测试反模式的目录和信息库:要避免的陷阱;如何减少其负面后果;如果不能避免它们,那么在陷入的时候如何逃脱。就像博物学家的野生动物手册,让本书成为你对进入充满了测试错误的危险世界并了解它的居民(人们已经发现的许多弄糟测试的创造性的方式)的指南。
范围
本书的讨论范围是测试,这是几种常用于确认系统满足其利益相关者的需要和验证该系统符合其指定需求的方法之一。虽然存在其他方法(例如,审查、演示、评审、分析、模拟、重用和认证),并且可以用类似的方法来记录,但它们超出了本书的讨论范围。
本书主要讨论软件依赖系统的测试,这个系统往往是子系统、硬件、软件、数据、设备、材料和人员的异构聚合。这里的测试包括纯软件应用程序和组件的测试。为简单起见,我将使用术语系统来表示异构系统、软件应用程序,以及它们的架构、设计和实施组成部分。
本书中的陷阱主要适用于生产重要的系统和软件应用的大中型项目,至少需要准严格的测试程序和过程。陷阱不一定适用于生产相对不重要的系统或软件程序的非常小而简单的项目:不是商业性、任务性、安全性或保密安全性上关键的;将仅用于内部利益相关者和开发人员密切合作;将使用一次并不再维护;将不会被投入运行的原型。这种系统通常可以用非常不正式和松散的方式进行充分的测试。一些陷阱只适用于测试有显著硬件的系统,因此这些陷阱不(主要)适用于测试纯软件应用程序。
目标读者
本书主要写给测试人员和他们的技术经理,旨在帮助大家识别并避免潜在的测试相关的陷阱。
本书也写给所有系统开发和维护的利益相关者,他们需要更好地理解在准备测试和实际测试过程中什么可能会出错。这些利益相关者包括客户和用户代表、项目经理和技术领导、需求工程师、架构人员和设计人员、实施人员、维护人员和专业工程师(如配置管理人员、质量工程师、可靠性工程师和人员因素工程师)。
最后,本书也是为测试课题专家写的,无论是学者还是顾问,只要他们对“测试中什么会出错”有更有条理、更全面了解的需要。
如何使用本书及其内容
本书的主要目的是提供你所需要的信息,以:
避免陷入任何经常发生的测试陷阱。
当已经陷入了一个或多个测试陷阱时,能够识别。
从陷阱中逃脱,同时尽量减少由此产生的负面后果。
本书提供了经常发生的测试陷阱的详细信息,并且它可以用于:
提高对于经常发生的测试陷阱的理解和沟通
作为测试人员和测试利益相关者的培训材料
以下情况时,用作清单[1]:
制定和评审组织或项目的测试过程或战略
制定和评审测试计划文档,如:
测试和评估总计划(TEMP)、系统测试计划(STP)或测试策略文件(TSD)
计划文档(如系统工程管理计划(SEMP)和系统开发计划(SDP))的测试部分
测试计划介绍(例如用于培训和状态报告)
测试维基、SharePoint网站和应用程序生命周期管理(ALM)工具库
评估承包商方案的测试相关的部分
评估测试计划文档、测试说明和测试结果(质量控制)
评估实际执行的测试过程(质量保证)[2]
识别测试风险和适当的风险缓解方法
将测试陷阱进行分类,用于数据收集、分析和报告
无论是在项目过程中,还是在项目结尾,如项目回顾中,帮助识别测试领域潜在需要的改进
本书结构
本书结构如下。
前言
前言首先简要介绍了这本书,然后描述了本书的讨论范围和目标读者。接着,就如何最佳地使用这里提供的信息提出了简单的建议。最后,感谢本书的许多技术评审人员,没有他们,这本书不会有现在的一半好。
第1章
第1章定义这本书中最重要的概念:测试、缺陷和测试陷阱。其中介绍了系统工程V模型,用来解释不同类型的测试如何与项目的工作产品相关联。强调了为什么测试是非常重要的,同时也解释了为什么测试有一些重大的局限性。最后,介绍了对测试陷阱如何进行分类和记录,以便能更容易地找到并理解它们。
第2章
第2章识别并总结了92种经常发生的测试陷阱。第2章的目的是为每一种陷阱提供非常概要的简介,使读者能够轻松寻找并识别出与他们的情况相关的陷阱。
第3章
第3章提供了经常发生的测试陷阱的详细描述。具体而言,每种陷阱记录成:名字、描述、可能出现之处、典型症状、潜在的负面后果、潜在原因和相关的规避陷阱或限制后果的建议。第3章的主要目的是用做一个方便的参考,一旦发现相关的陷阱,通过内容部分或第2章确定。因此,我建议读者像阅读模式书籍中的模式一样阅读本章:通过快速浏览获得对陷阱的基本了解,然后根据需要细读单个陷阱的详细描述。
第4章
第4章是最后一章,提供了陷阱的整体总结,然后简单地介绍了未来可能使测试陷阱分类更加有用的研究。
附录
附录从术语表和缩略语列表开始。为了使单个陷阱的描述相对较短(特别是对于有经验的测试人员,他们会识别出大部分的陷阱),附录C为那些可能希望额外信息的人提供了大量注释。注释在文中用方括号内的数字[#]进行标注。随后是本书相对较短的参考文献。最后的附录是可以用于计划测试和评估测试项目及组织的检查清单。
致谢
我要感谢350多位测试人员、测试课题专家(SME)和自愿审阅本书各个版本草稿的来自46个国家的学者们。我特别要感谢以下在审阅手稿的不同草稿中多次提出出色的审阅意见和建议的个人:

虽然每位审稿人的意见和建议中的绝大多数都以这样或那样的形式融入了本书中,但这并不意味着每位审稿人一定同意书中的所有内容。此外,我理所当然地会为从勤奋的审稿人身边溜过并最后进入本书的任何错误负责。
我要感谢John Foreman,他是SEI研究员和管理团队成员,提供给我完成稿件所需的资金和时间。
最后,我要感谢Addison-Wesley出版社的策划和制作团队对于出版本书的大力支持。特别值得一提的是Bernard Goodwin(我的组稿编辑)和Vicki Rowland(她修改手稿并对内容和格式创建了非常高的一致性)。他们与我就本书的封面和内容有多轮密切合作,从而使得我们非常愉快地完成了这本书的出版。

专家评论

“Firesmith写的这本书是对现实世界中有意义的测试的综述,价值无与伦比。在近些年出版的关于软件测试的书籍中都没有提供类似的内容。”
——Robert V. Binder, robertvbinder.com
“Don对于现实世界测试问题、症状和解决方案的汇编是现有资源中最全面的。你可以很轻松地在你的项目中使用,来预防这些问题。或者你也可以在项目结束时使用,作为你所经受的昂贵的教训的现成列表,而如果你尽早使用本书的话,这些教训本可以避免。恐怕这本书的出版将逐渐让人不再有重复这些错误的借口。”
——Vince Alcalde,国立澳洲银行
“很棒,很棒,很棒!这本书应该成为需要参与产品开发的人员的必读书。Donald的书解释了需要在所有产品开发验证和确认计划过程中需要了解及考虑的陷阱。虽然这本书主要关注软件项目,大部分的陷阱同样会在包含硬件和软件的任何规模的项目中出现。”
——Louis S. Wheatcraft, Requirements Experts公司
“这本书的潜在影响力怎么强调都不过分。没有充分测试的软件系统不可能充分地发展。我强烈建议将这本书作为直接参与软件密集型系统开发和管理的人员的必读作品。”
——Kenneth E. Nidiffer博士,卡内基-梅隆大学软件工程研究所
政府项目战略计划部总监
“这本书识别了实际的测试陷阱。更重要的是,它也识别了在你下一个项目中避免它们的解决方案。每个管理人员都应该读这本书,并且遵循相关建议。”
——Barry Stanly,企业技术联盟
“无论你是测试新手还是经验丰富的专家,你都会发现这本书是非常有价值的资源。关于如何识别并且预防问题的信息清晰、准确,最重要的是,可执行。”
——Allison Yeager, Blackbaud
“首先,这是一本很优秀的图书!它包含了所有我在职业生涯中可能遇到的测试问题,以及一些我没有注意到的问题……感谢你让我读到这么精湛的书籍!”
——Alexandru Cosma, Frequentis
“作为一个测试人员,我认为Donald Firesmith撰写的这本书是所有测试人员和QA工程师的必读书籍。”
——Thanh Huynh, LogiGear
“你的书籍提供了非常好的洞察力和知识。虽然在IT行业已经工作了30多年,并且在最近的13年专注于软件测试,我还是学到了很多软件测试的技巧和最佳实践。”
——Tom Zalewski,德克萨斯州政府
“这本书对于从事网络安全业务的人员来说是必需的……我认为它将成为一本经典。Don做得非常出色。”
——Michael Hom, Compass360咨询
“了不起的工作。非常成熟。”
——Alejandro Salado, Kaiser, Threde Gmbh
“总而言之,伟大的文献。”
——Peter Bolin, Revolution IT Pty公司

上架指导

计算机\软件工程

封底文字

“ “这本书是对测试类书籍及质量保证和软件工程类书籍的一个非常好的补充……它很可能成为测试培训的标准,同时也是专业测试人员和开发人员的非常好的参考书。我也推荐将这本书作为外包软件合同谈判的背景资料。我经常作为质量差劲的软件诉讼案的专家证人,如果合同谈判前参考了这本书,就很可能会减少或消除这些诉讼…… ”
——Capers Jones,Namcook Analytics LLC公司副总裁兼首席技术官

软件和系统测试人员常常遭遇相同的陷阱。本书把那些致使测试远不如应该的那样有效和高效的错误当作反模式,归纳了92种陷阱。凭借着在软件和系统工程领域35年的工作经验,作者向测试人员、技术经理和其他利益相关者展示了如何避免陷入这些陷阱、如何在陷入的时候识别这些陷阱,以及如何在逃脱陷阱的同时将负面后果最小化。
本书主要针对大中型项目的专业测试人员和其他利益相关者,书中的反模式和解决方案可用于“纯软件”应用和包括了异质子系统、硬件、软件、数据、设备、材料及人员的“软件依赖系统”。对于每个陷阱,作者都指出它们可能出现的地方、典型症状、潜在的负面后果和原因,并给出了明确的可执行的建议来避免或者减轻其负面后果。
通过阅读本书,你将:
• 查明需要改进的测试过程——在项目进行之前、过程中和进行之后
• 改善所有项目参与人员的共同认识和合作
• 开发、评审和优化未来项目的测试方案
• 使测试文档更加有用
• 识别测试风险和合适的风险缓解策略
• 将测试问题分类,以用于度量数据收集、分析和报告
• 培训新的测试人员、QA专家和其他项目利益相关者

作者简介

(美)Donald G. Firesmith 著:暂无简介

译者简介

王文慧 译:暂无简介

译者序

在软件行业从业十多年,我发现测试阶段往往是很多项目最有压力的阶段,需求、设计、开发阶段积累的问题在此时集中发现,同时在修复过程中又不断引入新的缺陷,进度上又面临交付期限;如果是一个大型项目的话,各个团队之间的沟通协作更是一团乱麻,业务团队、测试团队、开发团队、上线支持团队都得没日没夜地加班;更郁闷的事情是看到不同的项目一遍又一遍地遇到相同的问题。
在刚拿到本书英文版的时候,我以为这又是一本介绍测试应该怎么做的书,沉下心来细细研读,才发现作者另辟蹊径,从“反模式”的角度来看待和剖析常见的测试问题。作者用“陷阱”这个词形象地描绘了隐藏在项目中一个个容易反复陷入的问题领域,同时也让读者能够更好地反思。
在本书中,作者先对测试进行了概述,而后他将常见的测试陷阱进行了全面的总结和归类,从一般的测试计划和进度安排、利益相关者的参与和承诺、人员配备、测试工具和环境等陷阱,到测试类型相关的陷阱,如单元测试、集成测试、专业工程测试、系统测试、回归测试等;详细地介绍了如何识别陷阱的伪装,并提供了脱离陷阱、减少负面影响的实际操作的建议。作者Firesmith先生拥有35年的从业经验,并且曾服务于美国国防部和其他政府机构的大型项目,除了针对纯软件系统外,他还提供了复杂的软硬件结合的系统、系统的系统的视角。
本书结构清晰、内容翔实易读,对于开发项目和测试项目的人员来说是非常好的参考指南。同时对于实施了SEI CMMI三级及以上的组织来说也是组织流程定义强有力的补充,组织可以方便地利用本书形成模板和检查单,以供测试类型项目使用。
在翻译本书的过程中,我对照一个个陷阱,不断地将自己的经历一一对应,受益良多;同时在专业工程测试部分,我也做了大量拓展阅读,收获颇丰。在整个过程中,我努力将作者的原本意思呈现给读者,但翻译版中仍难免存在诸多不足之处,敬请大家不吝指正。
最后,感谢在翻译本书的过程中家人给我的陪伴和支持,让我有了一段充实、难忘的日子。

图书目录

本书赞誉
译者序

前言
第1章 概述 1
1.1 什么是测试 1
1.2 测试和V模型 1
1.3 什么是缺陷 5
1.4 为何测试很关键 5
1.5 测试的局限性 6
1.6 什么是测试陷阱 8
1.7 陷阱分类 8
1.8 陷阱描述 9
第2章 测试陷阱概要介绍 10
2.1 一般测试陷阱 10
2.1.1 测试计划和进度陷阱 10
2.1.2 利益相关者参与和承诺的陷阱 10
2.1.3 管理相关的测试陷阱 11
2.1.4 人员配备陷阱 12
2.1.5 测试过程陷阱 12
2.1.6 测试工具和环境陷阱 13
2.1.7 测试沟通陷阱 14
2.1.8 需求相关测试陷阱 15
2.2 测试类型相关陷阱 16
2.2.1 单元测试陷阱 16
2.2.2 集成测试陷阱 16
2.2.3 专业工程测试陷阱 17
2.2.4 系统测试陷阱 18
2.2.5 系统的系统(SoS)测试陷阱 18
2.2.6 回归测试陷阱 19
第3章 测试陷阱的详细描述 20
3.1 共同的负面后果 20
3.2 一般建议 21
3.3 一般测试陷阱 22
3.3.1 测试计划和进度陷阱 22
3.3.2 利益相关者参与和承诺陷阱 34
3.3.3 管理相关的测试陷阱 40
3.3.4 人员配备陷阱 51
3.3.5 测试过程陷阱 59
3.3.6 测试工具和环境陷阱 83
3.3.7 测试沟通陷阱 101
3.3.8 需求相关的测试陷阱 111
3.4 测试类型相关的陷阱 126
3.4.1 单元测试陷阱 126
3.4.2 集成测试陷阱 130
3.4.3 专业工程测试陷阱 136
3.4.4 系统测试陷阱 159
3.4.5 系统的系统(SoS)测试陷阱 162
3.4.6 回归测试陷阱 173
第4章 结论 184
4.1 将来的工作 184
4.2 维护陷阱列表 185
附录A 术语表 186
附录B 缩略语 191
附录C 注释 193
附录D 参考 201
附录E 计划检查单 202

教学资源推荐
作者: David Gustafson
作者: [美]理查德 F. 施密特(Richard F. Schmidt)著
参考读物推荐
作者: 赵强 邹伟伟 任健勇 著
作者: James Rumbaugh, Ivar Jacobson, Grady Booch
作者: (美)Laurie Williams,Robert Kessler
作者: (美)Kent Beck; Cynthia Andres 著