软件测试实战指南

978-7-115-57864-8
作者: 邹福英陈玲等
译者:
编辑: 谢晓芳

图书目录:

详情

本书图文并茂,首先讲解软件测试技术的概况、软件测试的分类和软件测试模型;然后介绍如何分析测试需求,如何满足需求,如何设计测试用例,如何执行测试;最后结合具体的案例讨论软件测试缺陷的管理、测试文档的编写、用户验收阶段/上线阶段的测试工作,以及软件质量管理。 本书适合初级、中级测试工程师阅读,也适合项目经理、测试经理阅读,还适合作为培训机构的教材。

图书摘要

版权信息

书名:软件测试实战指南

ISBN:978-7-115-57864-8

本书由人民邮电出版社发行数字版。版权所有,侵权必究。

您购买的人民邮电出版社电子书仅供您个人使用,未经授权,不得以任何方式复制和传播本书内容。

我们愿意相信读者具有这样的良知和觉悟,与我们共同保护知识产权。

如果购买者有侵权行为,我们可能对该用户实施包括但不限于关闭该帐号等维权措施,并可能追究法律责任。


编  著 邹福英  陈 玲  等

责任编辑 谢晓芳

人民邮电出版社出版发行  北京市丰台区成寿寺路11号

邮编 100164  电子邮件 315@ptpress.com.cn

网址 http://www.ptpress.com.cn

读者服务热线:(010)81055410

反盗版热线:(010)81055315


本书图文并茂,首先讲解软件测试技术的概况、软件测试的分类和软件测试模型;然后介绍如何分析测试需求,如何满足需求,如何设计测试用例,如何执行测试;最后结合具体的案例讨论软件测试缺陷的管理、测试文档的编写、用户验收阶段/上线阶段的测试工作,以及软件质量管理。

本书适合初级、中级测试工程师阅读,也适合项目经理、测试经理阅读,还适合作为培训机构的教材。


本书结合典型的软件测试项目,讲解入门软件测试需要学习的理论和技能,以测试工作流程作为主线,依次介绍软件测试是什么,测试人员做什么,测试人员怎么做,测试人员学什么,测试人员怎么学,帮助读者提升测试水平。

本书包含多个小故事、漫画,并结合大量的实战案例来讲解软件测试。本书从什么是软件测试开始讨论,对软件测试的必要性、软件测试的发展及未来进行概述,并按通用的软件测试流程分类详解,从而使读者能够轻松理解测试知识并运用到实际项目工作中。本书旨在讲述清楚软件测试人员究竟是做什么的。

本书主要内容如下。

第1章讲解软件测试的由来、软件测试工程师的主要工作内容与要求等。

第2章讲解软件测试的支点,包括各种软件测试与软件测试模型。

第3章讲解如何分析需求,如何满足需求。

第4章讲解如何设计既通俗易懂又能高效检测出Bug的测试用例。

第5章讲解如何用不同的技术进行软件测试。

第6章讲解软件测试中Bug的管理方法与技巧,以及Bug管理工具的使用。

第7章讲解软件测试文档设计及管理等。

第8章讲解用户验收测试与项目上线阶段的工作。

第9章讲解软件质量管理体系,全面质量管理体系是一个优秀的软件测试人员应具备的知识。

附录A讲解软件测试面试技巧和常见面试题。

附录B介绍国内的测试社区。

附录C介绍国产软件测试工具。

术语表列出软件测试领域常见的术语。

本书主要由邹福英、陈玲等编著。李艳秋、岳丹、毛智凯、刘启平、许财健、瞿曼、曾冬莲、叶远东、朱锦堂、谢思亮等也参与了本书的部分编写工作。


本书由异步社区出品,社区(https://www.epubit.com/)为您提供后续服务。

作者和编辑尽最大努力来确保书中内容的准确性,但难免会存在疏漏。欢迎您将发现的问题反馈给我们,帮助我们提升图书的质量。

当您发现错误时,请登录异步社区,按书名搜索,进入本书页面,单击“提交勘误”,输入勘误信息,单击“提交”按钮即可(见下图)。本书的作者和编辑会对您提交的勘误进行审核,确认并接受后,您将获赠异步社区的100积分。积分可用于在异步社区兑换优惠券、样书或奖品。

我们的联系邮箱是contact@epubit.com.cn。

如果您对本书有任何疑问或建议,请您发邮件给我们,并请在邮件标题中注明本书书名,以便我们更高效地做出反馈。

如果您有兴趣出版图书、录制教学视频,或者参与图书翻译、技术审校等工作,可以发邮件给我们;有意出版图书的作者也可以到异步社区投稿(直接访问www.epubit. com/contribute即可)。

如果您所在学校、培训机构或企业想批量购买本书或异步社区出版的其他图书,也可以发邮件给我们。

如果您在网上发现有针对异步社区出品图书的各种形式的盗版行为,包括对图书全部或部分内容的非授权传播,请您将怀疑有侵权行为的链接通过邮件发送给我们。您的这一举动是对作者权益的保护,也是我们持续为您提供有价值的内容的动力之源。

“异步社区”是人民邮电出版社旗下IT专业图书社区,致力于出版精品IT图书和相关学习产品,为作译者提供优质出版服务。异步社区创办于2015年8月,提供大量精品IT图书和电子书,以及高品质技术文章和视频课程。更多详情请访问异步社区官网https://www.epubit.com。

“异步图书”是由异步社区编辑团队策划出版的精品IT专业图书的品牌,依托于人民邮电出版社近几十年的计算机图书出版积累和专业编辑团队,相关图书在封面上印有异步图书的LOGO。异步图书的出版领域包括软件开发、大数据、人工智能、测试、前端、网络技术等。

异步社区

微信服务号


软件是什么?下面的公式概括了软件的含义。

软件=程序+文档

软件测试是什么?下面的公式概括了软件测试的含义。

软件测试=程序测试+文档测试

广义上,软件测试是指软件生命周期中的检查、评审和确认工作,其中包括对需求分析、设计阶段、开发完成后的维护阶段的各类文档及代码的审查和确认。

狭义上,软件测试是一种对实际输出与预期输出审核或者比较的过程。

软件测试的经典定义如下。

软件测试是指在规定的条件下对程序进行操作,以发现程序错误,衡量软件质量,并对其是否能满足设计要求进行评估的过程。

软件测试的主要工作是验证和确认。

验证是保证软件正确地实现了一些特定功能的一系列活动,即保证软件以正确的方式运行。

确认是一系列的活动和过程,目的是证实在一个给定的外部环境中软件的逻辑正确性,即保证软件做了期望的事情。

软件测试的定义如图1-1所示。

图1-1 软件测试的定义

如果软件中处处是错误,你会用吗?

就好比国际标准化组织(International Standardization Organization,ISO)的质量认证一样,软件同样需要具有软件质量体系的保证。

若不进行测试活动,我们就很难在发布之前知道软件的质量,因此在发布前就需要在团队中开展软件测试工作。对于在测试的过程中发现软件的缺陷(Bug),要及时让开发人员知道并得到给出相应的解决办法。在项目生命周期中,测试是最后一个环节,也是软件质量把关的最重要环节。

软件测试失败案例

1994年秋天,迪士尼公司发布了面向孩子们的第一款多媒体光盘游戏——《狮子王》。尽管很多其他的公司已经做了多年的儿童游戏的市场推广,但是这是迪士尼的第一次尝试,它大肆促销并推广。《狮子王》销量巨大。在1994年的圣诞节,《狮子王》是孩子们的“必买游戏”。然而结果一败涂地。在1994年12月26日,迪士尼公司的客户服务热线开始响个不停。很快,负责电话支持的技术人员被来自愤怒的父母和哭喊的孩子们的电话淹没了,因为游戏不能正常运行。报纸和电视多次报道了该游戏出问题的事情。

原因是,迪士尼公司没有在当时市场上可以买到的不同型号PC上做足够的测试。该游戏只能在少数一些系统(可能是迪士尼公司的程序员们用来开发游戏的系统)上运行,而不是一般大众所拥有的最常用的系统上运行。

这是一个配置测试(configuration test)失败的案例。

这是一个深刻的教训。这再次证明了软件测试非常重要。

软件测试工程师指理解产品的功能要求,并对其进行测试,检查软件有没有缺陷,测试软件是否具有稳定性,写出相应的测试规范和测试用例的专职工作人员。

简而言之,软件测试工程师在软件企业中担当的是“质量管理”角色,及时发现软件问题并督促更正,确保软件的正常运作。

软件测试工程师按级别分为三类。

软件测试人员的进阶就像是爬山,如图1-2所示。

图1-2 软件测试人员的进阶

软件测试的发展经历了几个重要时期(见图1-3)。从最初的以调试为主(1957年之前),发展到以证明为主(1957~1978年),接下来发展到以破坏为主(1978~1982年),再往后发展到以评估为主(1982~1987年),从1987年到2021年主要以预防为主。

图1-3 软件测试的发展

以上5个阶段的核心工作分别如下。

软件测试是一项继往开来的事业。

软件质量已经成为衡量软件行业发展与壮大的重要标准。因此,在正式投入运行之前,软件必须经过严格的测试。软件测试行业已经成为朝阳行业。

经过几年经验积累,测试人员可以逐步转向管理或者资深测试工程师,担当测试经理或者部门主管。

你想跟聪明的人一起共事吗?

你想进入一个朝阳产业吗?

你想在互联网的浪潮中提升一下自我吗?

当然,丰厚的薪资、舒适的工作环境是必需的。

从年龄分布来看,“90后”成为软件测试从业人员的主力军,如图1-4所示(数据图来自网络)。

图1-4 测试人员的年龄分布

调研数据显示,软件测试从业人员的专业主要集中在计算机专业,其比例为66%;计算机相关专业次之,其比例为21%;非计算机相关的理工专业占8%;其他专业共占5%。

如上所述,计算机专业和计算机相关专业共占87%,加上非计算机的理工专业达到95%。

测试人员的行业分布数据如图1-5所示(数据图来自网络)。

图1-5 测试人员的行业分布

看完这组数据,你有没有更心动?

《道德经》说:“道可道,非常道;名可名,非常名。”

可以明状的事物往往不是它本来的面目。我们用语言和文字竭尽全力去描绘我们的所见所闻、所思所想,但是稍不注意,就会让人误解。刘禹锡说:“常恨言语浅,不如人意深。”我们的语言不足以表达我们的思想和情感。

本章尝试描述清楚软件测试的本来面目,但是不是三言两语可以说清楚的。随着IT行业的不断发展,软件测试也在不断发展,在不同的时间阶段,我们应从不同的角度对它进行重新审视。

例如,目前在IT行业逐渐流行的敏捷开发、DevOps工程思想,对软件测试就带来了一定的影响。

1.在传统团队中工作

在传统测试中,我们习惯了软件开发生命周期中精确定义的各个阶段,即以发布计划和定义需求开始,以匆忙的测试阶段和延迟发布结束。实际上,我们经常被迫担任“门卫”的角色,告诉业务主管:“对不起,需求已经冻结了,我们建议在下一个版本中增加这个特性。”

传统的团队重视保证在最终产品中满足所有确定的需求。如果在最初确定的发布时间存在没有完成的部分,发布通常会推迟。开发团队通常不知道需要发布什么功能和他们应该如何工作。每个程序员更专注代码的特定部分。测试人员通过研究需求文档来制订测试计划,然后等待测试工作完成。

整个周期通常很长,可能会持续半年,甚至一年。需求冻结时间较长,存在很多过程和制度,我们必须在进入下一个阶段前完成上一个阶段。应用并不能始终符合客户的期望。

2.在敏捷团队中工作

敏捷是迭代和增量式的。这意味着测试人员在每个代码增量完成时,都要测试它。一次迭代可能短至一周。团队构建并测试少量的代码,确保它可以正常工作,然后转移到下一个需要构建的部分。开发人员从来不赶在测试人员之前,因为一个功能在被测试之前处于“未完成”的状态。

敏捷团队在工作中密切接触业务,详细了解需求,交注产品的交付价值,可能在优先级较高的功能上投入更多精力。测试人员不能坐在那里等着工作的降临,而要行动起来,在整个开发周期中寻找贡献价值的方式。

掌握了软件测试行业中最基本的测试概念之后,我们还需要了解软件测试行业未来的发展趋势。关于这一点,我们在本书之外需要查阅更多的资料,阅读行业发展分析报告,加入测试行业相关的社群,与大家一起探讨。

有关软件测试的基本知识,读者可以参考Ron Patton的经典著作《软件测试》一书,该书用通俗易懂的语言介绍了软件测试的全貌。

有关敏捷测试的更多知识,读者可以参考Lisa Crispin的经典著作《敏捷软件测试:测试人员与敏捷团队的实践指南》一书,该书详细描述了软件测试人员如何在敏捷开发模式下开展与测试相关的工作。

  

到这里,你已经基本了解了软件测试的概念,下一章介绍软件测试的流程。


相关图书

现代软件测试技术之美
现代软件测试技术之美
渗透测试技术
渗透测试技术
JUnit实战(第3版)
JUnit实战(第3版)
深入理解软件性能——一种动态视角
深入理解软件性能——一种动态视角
云原生测试实战
云原生测试实战
Android自动化测试实战:Python+Appium +unittest
Android自动化测试实战:Python+Appium +unittest

相关文章

相关课程