软件测试之缺陷管理

2021-12-28 13:45发布

01

什么是缺陷呢?

如果说,有什么是从项目经理到开发工程师,从运维人员到用户都头疼的,那一定非缺陷莫属了。

为什么缺陷这么恼人呢?我们先来看看缺陷的定义。

项目组件中的瑕疵或缺点,导致该组件不能满足需求或规格,且需要修复或更换的,称为缺陷。

这段话包含了两层意思:

它导致组件不能满足需求或规格;

●它必须要被修复或者更换。

前者让用户、运维、测试工程师焦虑,后者让开发工程师头痛。

什么样的情况才能被称之为缺陷呢?我们来举个例子。

小明,全名张小明。他在某论坛上实名注册,并且高高兴兴地在论坛上发帖灌水。有一天,小明的妈妈临时起意,让小明跟她姓,然而他的妈妈姓欧阳,于是小明的全名变成了欧阳小明。但是当小明在论坛上修改自己名字的时候,发现系统嫌他的名字太长,论坛只能接受3个字的名字。小明向论坛管理员要求,必须要让他用欧阳小明这个名字。

那这算是一个缺陷呢?还是一个新的需求?

这个问题取决于论坛最初的《业务需求说明书》,是否准确地描述了名字的最大长度。如果业务需求说明书里明确写了,名字可以是4个字,那么这个问题就属于一个缺陷;否则的话这个问题就属于一个需求。

所以缺陷这件事,并不仅仅只反映开发人员本身的水准,更反映整个项目的质量

我们先假设当初需求说明书里已经明确了名字可以是4个字,这个问题属于一个缺陷。但是如果这时候,小明突然又决定不改名字了,那这个问题不再必须被修改。是否这就不属于缺陷了呢?

项目组上下都为难不已,这该如何是好,难道这就是传说中薛定谔的缺陷?

事实上,这依然应当被作为缺陷提出来并且修改。因为现实生活中,名字有四个字的人很多,古丽娜扎、易烊千玺、欧阳娜娜等等。即使小明不上报这个缺陷,将来小古、小易、小欧他们也会上报这个缺陷。而一些非洲友人、巴以老铁,名字有几百个字,这种特殊情况就可以不放在其中考虑。


02

该如何管理缺陷呢?


①缺陷管理的关键,是形成一个从发现缺陷到关闭缺陷的闭

无论是在开发、测试、或者生产运维阶段发现并上报的缺陷,都需要缺陷的上报人(或部门)进行验证并关闭。

以系统测试中发现的缺陷为例:


缺陷的上报者对于缺陷的症状最为清楚,修改完善缺陷的愿望也最为迫切。形成一个从发现到修复处理、验证关闭的闭环,有助于对缺陷修复的时效和质量进行充分的把控。


②越早发现并修复,代价就越小。


缺陷管理的另一个特点,是越早发现,产生的代价就越小,修正的效率就越高,流程管理上也就简单。对于在单元测试、集成测试阶段发现的缺陷,只需要项目组使用模板自行记录管理。


而对于在功能测试、性能测试、技术安全测试发现的缺陷,须按《缺陷管理规范》在TFS记录、跟踪处理。


如果一个缺陷在生产运维过程中才被发现,可能不仅需要进行缺陷的上报和修正,甚至可能需要评估缺陷造成的影响和损失,那影响就有可能十分重大了。


根据缺陷的闭环原则,缺陷发现得越晚,涉及到的人员就越多,流程就越发冗长,工作量也就变得越大。


所以我们在项目的各个流程环节中,一定要尽可能严谨细致,尽早发现缺陷。


③缺陷管理有必要吗?


答案是肯定的。


缺陷管理制定了明确的闭环标准,清晰地界定了在整个缺陷的发现和处理流程中,不同的角色应当做什么样的工作,提升了团队协作的工作效率和工作质量。


缺陷管理还对于缺陷的类型进行归类,对缺陷的影响进行评估,对缺陷进行追踪和记录。这不仅能够对项目质量、工作质量进行有效的评估,在长期的管理工作中,也能积累丰富的资产记录。


这些资产记录,可以帮助我们认识到哪些缺陷是容易出现的,哪些缺陷是影响严重的,哪些方法能够尽早地发现缺陷。这样一来,我们就可以针对这些缺陷更早地进行有效的测试,更早的发现和处理。随着缺陷记录越来越丰富,项目组的工作效率也会越来越高;缺陷及时得到解决,其影响也会越来越可控。


此外,通过缺陷密度、测试用例缺陷发现数量、缺陷泄露率等业界常用的缺陷相关指标,也能让我们更加直观、准确地评估一个项目或者系统的质量情况,并从中识别改进点,提升研发质量。


④如何减少缺陷提升项目质量?


首先,必须要做到需求的明确。越是明确的需求,就越是精确、越是可以量化。而这样的需求在实现的时候,能够更准确地得到实现,产生缺陷的可能性也就更小


其次,必须要做到提前预防。这不仅要求开发人员在技能上有充分的积累,缺陷管理的积累也更是必不可少。只有我们积累了充分的经验,才能够在新项目中尽量避免发生同样的错误。


项目工作中,各部门、人员的责任必须清晰、明确。任何的工作,都必须落实到部门、落实到人。只有这样才能尽可能避免在协作中产生缺陷。


完善缺陷度量机制。通过缺陷管理,对项目工作质量进行监测,使项目相关人员可以通过缺陷相关数据、度量指标及时了解项目和系统的研发情况,有助于提升项目参与者不断提升工作质量的内在动力。


就如斯托克代尔悖论所讲述的精神一样,尽管我们知道,缺陷常常不可避免,但是我们也要具备强大信念,坚信缺陷一定能够被尽可能地减少和克服,并为此不断努力。这也就是著名的“零缺陷管理”,即抛弃缺陷难免论,树立无缺陷的思想,以缺陷等于零为目标导向,而非结果导向,要求每个人在自己工作职责范围内努力做到精益求精,进而提升整个团队的工作质量。