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 的Managing the Testing Process: Practical Tools and Techniques for Managing Hardware and Software Testing(2009年)第109页的引用:一种衡量测试团队有效性的常见指标是测试团队在发布前能否找到大部分的错误。生产或客户的错误有时被称为“测试泄漏”。这意味着您的测试团队错过了这些问题,但在测试执行期间理应能够合理地发现它们。您可以按以下方式量化这一指标:

另外,这是 Capers Jones 在Software Defect Removal Efficiency(1996年)中提到的另一个类似指标:严格的软件质量控制包括缺陷去除效率(DRE)的测量。缺陷去除效率是在发布前找到并修复的缺陷的百分比。原则上,测量DRE很简单。记录开发过程中发现的所有缺陷。在固定的90天期限后,将客户报告的缺陷与内部缺陷合并,并计算内部去除的效率。如果开发团队发现了90个缺陷,而客户报告了10个缺陷,那么DRE当然是90%。

Translated by ChatGPT gpt-3.5-turbo/42 on 2023-12-27 at 05:20

sixnines availability badge   GitHub stars