The Formula for Software Quality

The following text is a partial translation of the original English article, performed by ChatGPT (gpt-3.5-turbo) and this Jekyll plugin:

你如何定义软件产品的质量?这其中肯定有一种内在的情感成分,意味着用户的满意度、付费意愿、欣赏、积极态度等等。然而,如果我们抛开情感不谈,我们如何真正衡量它呢?IEEE,质量是指产品满足其要求或用户期望的程度。但是公式是什么呢?我们能否说它满足了要求和期望,比如说73%?

以下是我提出的公式和逻辑。

众所周知,任何软件产品都有无限多的缺陷。其中一些被开发团队发现并修复,我们称之为F。一些被最终用户发现,我们称之为U。因此,在无限多的缺陷中,我们知道的总缺陷数量是F+U

显然,U越小,质量越高。理想情况下,U应该为零,这意味着用户根本看不到任何缺陷。如果总缺陷数量是无限的,我们如何做到这一点呢?唯一可能的方法是增加F,希望U会自动减少。

因此,产品的质量可以通过以下方式衡量:

我们只需将发现的缺陷数量除以可见的总缺陷数量。因此,我们在用户发现之前发现的缺陷越多,质量就越高。

100%的质量意味着用户没有发现任何缺陷。0%的质量意味着所有缺陷都被他们发现了。

附注:看来我并不是这个公式的发明者。这是来自 Rex Black 的《管理测试过程:管理硬件和软件测试的实用工具和技术》(2009年)第109页的引用:测试团队效果的一个常见衡量标准是测试团队是否能在发布之前找到大部分的错误。生产或客户错误有时被称为“逃逸测试”。这意味着你的测试团队错过了这些问题,但在测试执行期间合理地可以检测到它们。你可以按以下方式量化此指标:

再附注:这是 Capers Jones 在《软件缺陷修复效率》(1996年)的一个类似指标,发表于《计算机》杂志第29卷第4期的Software Defect Removal Efficiency文章中:“严肃的软件质量控制涉及缺陷修复效率(DRE)的测量。缺陷修复效率是在发布之前发现和修复的缺陷的百分比。原则上,测量DRE很简单。记录开发过程中发现的所有缺陷。在固定的90天期限后,将客户报告的缺陷与内部缺陷相加,并计算内部修复的效率。如果开发团队发现了90个缺陷,客户报告了10个缺陷,那么DRE当然是90%。”

Translated by ChatGPT gpt-3.5-turbo/36 on 2023-11-17 at 12:40

sixnines availability badge   GitHub stars