质量需要评估,而不是度量?

软件质量保障:所寫即所思|一个阿里质量人对测试的所感所悟。

如何度量质量有一段时间颇为流行。但我认为:“质量不是度量的,而是评估的。” 这样的回答可能并不讨好,它听起来似乎是无意义的——大多数人认为度量和评估是一回事。

在这篇文章中,我将从自身专业的视角阐述我的观点。

关于计量学

度量是“通过实验获得一个或多个数量值的过程,这些数量值可以合理地归因于[现象、物体或物质的属性,其中属性具有可以用数字和参考值表达的大小]。”

这个学究式的定义的要点是,度量是用合理的方式给事物分配数字,这样我们就可以用这些数字做出合理的决定。

在科学领域,计量学是一门严谨的学科。在软件开发领域,它也应该严谨,但更多时候并非如此;一种仪式性地使用数字,为非理性的管理过程赋予一种科学的光环。人们不断尝试计算那些没有意义的东西,例如测试用例(因为测试用例本质上是一个文件,其中包含与执行测试相关的内容,这就像通过计算建筑物中所有的公文包、抽屉、柜子和信封来判断一家企业......“你有42,564个商业物品的容器!生意兴隆!”)。

下面观点是为什么应该对软件产品质量的度量持怀疑态度:

1. 质量无法客观全面地度量。

度量是发现某事物状态的一种方式。我们想要了解我们产品的状况,但是虽然许多事情都可以度量,但产品的质量不是其中之一。至少,它不能以任何意义上度量,包括客户、用户和商业人士在想知道“产品的质量是否好”,或者“质量比上个月更好还是更差”时所谈论的一切。

度量质量有什么难的?当我们想到质量时,我们想到的是产品的“好坏”,然而好坏不是任何东西的固有属性。它是一个社会建构。因此,我们至少面临四个问题:

• 善良,顾名思义,总是植根于某员工的感受,而其他人可能并不认同。身为人,你应该知道这一点。

• 好坏至少是人、产品和环境之间的三向关系。人的状态和环境可以随着时间而改变,因此即使某物本身没有改变,它的质量也会改变。你从社交媒体上清楚地知道这一点:你在Twitter上讲的一个笑话,十年前被认为是有趣的,但今天被重新发现时,可能会让你失去工作。

• 美好是一种由许多变量交互产生的现象。我们随着时间的推移观察这些变量,并通过我们扭曲的感知和记忆的镜头过滤它们。没有单一类型的数据可以关注;这是一个混合体。没有可靠和无争议的公式(度量专家称之为自洽的“数量演算”),我们可以根据这个混合体在一个单一的尺度上映射一个值。我们也缺乏一个度量模型,可以推导出这样的数量演算。度量美好的神秘性在机器学习系统中很明显,它会把事物分类错误,或者在我们自己身上,当我们爱上错误的人时,我们会感到很滑稽。

• 好坏判断往往具有社会风险。我们会根据质量对他人的影响来改变对质量的看法。例如,如果我问你是否认为一个产品不好,而你确实认为它不好,但你知道你诚实而直接的回答会导致我取消你的项目,让你所有的朋友丢掉工作,你真的会告诉我铁一般的事实吗?还是会给你的回答增添一些乐观色彩?你一定也遇到过这种情况。

2. 质量可以部分地度量。

以便于度量的方式定义和澄清需求是没错的。尽管我声称无论你沿着这条线做什么都不会导致对你的服务或产品的客观“质量度量”,但它可能有用!它可能足够好。它可能给你需要做质量评估的东西。

人们常常对度量质量的挑战作出回应,只是简单地将它从客户理解的东西重新定义为有限的和法律的东西。他们用严格的合同条款定义需求。他们制定了一套“验收测试”,声称如果没有测试“失败”,就证明“产品正常运行,这是一种被称为目标置换的游戏,而由此产生的度量被度量专家称为替代度量。如果你能让你的客户同意玩这个游戏(接受置换和替代目标,放弃对你的产品的满意度),你选择不在乎他们是否对你的产品感到满意,也许你会感到满意。然而,技术的历史充斥着被抛弃的产品和衰落的公司,它们忽视了质量这个难以捉摸但持久的事实。就我员工而言,我不希望在让客户失望的同时发财。你同意我的观点吗?

不过,也许我真正需要的只是对质量的部分度量。也许如果我能度量一块黄金的纯度和质量,我不会介意从技术上讲没有办法来判断黄金是否真的“好”,不管是从它对社会有益还是有害的意义上,还是从其他任何方面的好处。如果我只想卖掉黄金,那么黄金的经济可量化方面可能是对我唯一重要的方面。

如果我们不说度量质量,而是说度量关于质量的线索,这会怎么样?我们可以收集指标并理解它们。为此,我们可以使用多种可度量数据。

3. 真正目标可能是对产品进行评估。

主观性可能很有帮助。我可以请你给一个产品打分,从1星到5星。这将是你自己的感受,映射到一个数字上。这是主观评估。这是你通过解释和整合长期经验得出的评估,然后通过你讲故事的机制过滤它们。这样的评级是出了名的不可靠——如果我对一个产品感到生气,我不会给一个四星的评论,即使它基本上是好的——部分原因是我有偏见,部分原因是我希望我的观点产生影响。然而,第三方可以通过观察趋势、不连续性和上下文,从主观选择的数字中得出结论。在这种情况下,评级本身没有任何固定的意义,而是与其他收集的数据一起构成了闭环。

我们可以通过对相关数据的不同维度进行系统性地评估,来改进简单的主观评估。虽然仍是主观的,但是评估结果会变得更加准确和可靠。

我最近了解到assessment这个词来自拉丁语,意思是“坐下”。在我解释词源和用法时,assessment的意思是用证据来做出评估。这比度量更重要。你可以用度量来评估,但你也可以用任何一种证据来评估,不管它是否是度量过程的结果。例如,你可以不用压力表来评估你的轮胎瘪了,因为它看起来显然是瘪了。

因此,度量只是达到目的的一种手段。这个目的是:整理好的证据,为我们评估质量提供信息,这些评估可以用来做出商业决策。(例如,何时发布产品;产品团队有多好;产品或团队的问题是持续积累还是得到解决?)

我们可以通过收集以下证据来评估质量:

  • 我们如何测试。我们测试了什么,忽略了什么?覆盖率有许多有趣的维度,如果不了解覆盖率,我们的发现将无法解释。

  • 我们发现了什么。具体问题或有趣的缺陷。我们需要理解这些发现的含义,而不仅仅是数字报告

  • 这告诉我们商业风险什么。我们必须将我们的发现与项目目标、业务和客户联系起来。

这些都不能简化为任何简单的公式,都需要人类大量地讨论。

4. 任何用来度量人的系统,一旦被用于评估,就会成为系统性欺骗的手段。

当你试图度量软件质量时,你是在间接度量创造它的人的能力和表现,因为软件实际上是人类解决问题时冻结的痕迹。除此之外,它没有其他实质。我的意思是什么?嗯,你知道,当管理层创建系统来监视工人时,他们并不只是闲坐着。他们发现如何使用这些系统来创造积极的印象,并避免消极的印象。当管理层希望将度量作为复杂和多结构证据的替代品时,这尤其容易做到;当管理层不想参与探讨什么才是重要的时。当所有相关维度都被减少到只有几个“KPI”时,聪明人就有很大的空间来操纵

正如任何在测试中使用自动化的人都知道,如果你说花了多少时间和精力来让自动化持续保持工作,它可能会有可怕的后果。你可能会被指责为不称职,因为你不顾后果地相信输出检查很容易自动化。所以,你隐藏了那些额外的时间,你让它看起来很容易。通过这样做,你让管理层相信它真的很简单——延续他们对自动化的幻想。如果没有人根据自动化的测试用例或每单位时间运行来“度量”你的进展,这是你不需要的欺诈。

这就是错误优化的问题。任何涉及人类判断的环境——其中存在一个只能部分可度量的过程——都容易受到这种功能障碍的影响。人们倾向于“朝着光亮”进行优化,并在黑暗中隐藏低效率。当你准备在家里举办一场聚会时,你会把所有杂物扔进后屋,然后锁上门。问题是,几乎总是有很多方法可以对产品或项目进行优化,但这会对产品或项目的健康造成损害。这并不一定意味着完全的欺诈,尽管我得说,根据我的经验,这种情况下的欺诈是普遍的。更重要的问题是,任何“坏数字”都可以使用各种方法变得“更好”,但只有其中一些方法才能真正使系统变得更好。

你是否使用 bug 数来度量质量?这里有一些方法可以让质量看起来更好,但实际上却没有更好:

  • 不要公开报告缺陷,也不要跟踪它们。

  • 没有建立一个可靠的方法让客户报告现场的问题。

  • 将缺陷报告降级为低严重性,然后制定规则忽略低严重性的缺陷。

  • 制定一个规则,只有在有确凿的证据证明它违反了书面需求并且很容易重现时,才可以报告缺陷。

  • 在每个缺陷报告表单中报告多个问题。

  • 只雇佣初级和未经培训的测试人员。

  • 比如说你的目标是100%的自动化,把一些简单的检查自动化,然后吹嘘你做了“成千上万的测试”,这样你不会发现很多bug,但是你会看起来很忙,并且有大量的代码可以展示。

  • 当有人报告缺陷时,表现出愤怒和悲伤,这样测试人员就会对报告任何缺陷感到气馁。

  • 将你的测试外包给一家想要取悦你的公司,并让他们知道你不会对任何质量方面的抱怨感到满意。

  • 摆脱测试人员,并说“质量和测试是每员工的责任。” 那么报告的bug会更少,而且它们都是容易解决的bug。

5. 对度量的冲动往往是出于一种控制人的欲望

你很清楚,人是三六九等的,人很难共事。任何抱怨“会议太多”的人总是指别人的会议。我们抱怨文件不好,我们的意思是文件是别人写的。经理们经常渴望快乐、自愿、顺从的员工,他们把自己的意见和风格留在家里。

这就是为什么我认为度量产品质量的冲动不是由任何热爱或冷理性的需求所驱动,而是由对激烈争论的恐惧所驱动;由希望“客观度量”将防止尴尬和愤怒所驱动。否则,它毫无意义!我喜欢数学、统计学、概率论和质量工程。你必须承认我是一个数字狂热者。但我仍然没有度量质量的冲动。当我作为Borland C的测试经理之一帮助推出获奖软件时,我是12名经理讨论质量的团队的一部分,我们一起决定它是否足够好。没有人曾经建议过度量质量,我想这是因为我们彼此相处得很好。

也许与其度量质量,不如交些朋友。

我不反对收集数据。但我建议:

  • 数据有很多有用的种类,但只有其中一些是可以度量的。

  • 经营企业理所当然需要客观地度量质量,这种观念在理性上是站不住脚的。

  • 度量的替代方法是评估,实际上每员工在现实世界中都在做评估,即使他们声称自己在度量质量。

  • 评估质量是一个过程,它可以结合度量,而本身不是一个度量过程。

注:本文作者James Bach,著有《软件测试的经验教训》

往期系列文章

阿里微服务质量保障系列:微服务知多少

阿里微服务质量保障系列:研发流程知多少

阿里微服务质量保障系列:研发环境知多少

阿里微服务质量保障系列:阿里变更三板斧

​阿里微服务质量保障系列:故障演练

阿里微服务质量保障系列:研发模式&发布策略

阿里微服务质量保障系列:性能监控

阿里微服务质量保障系列:性能监控最佳实践

阿里微服务质量保障系列:基于全链路的测试分析实践

- END -


下方扫码关注 软件质量保障,与质量君一起学习成长、共同进步,做一个职场最贵Tester!

  • 关注公众号, 后台回复【测开】获取测试开发xmind脑图

  • 扫码加作者, 获取加入测试社群!

往期推荐

聊聊工作中的自我管理和向上管理

经验分享|测试工程师转型测试开发历程

聊聊UI自动化的PageObject设计模式

细读《阿里测试之道》

我在阿里做测开

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

软件质量保障

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值