Bugs Are Welcome

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

传统上,人们对软件缺陷(也称为“错误”)的理解是它是我们项目中希望避免的一些负面问题。我们希望我们的项目“无缺陷”。我们的客户要求我们开发没有错误的软件。而且,作为用户,我们期望软件能够在没有错误的情况下正常工作。

但是,让我们从不同的角度来看待错误。在XDSD中,我们说“欢迎错误”。这意味着我们鼓励所有感兴趣的各方发现错误并报告它们。我们希望我们的团队将错误视为我们项目中所需要的东西。为什么呢?

因为我们理解错误有两类:可见错误和隐藏错误。越多的错误变得可见,我们就能修复更多的错误。修复更多的错误意味着减少了给我们用户带来困扰的错误。通过发现错误,我们使它们变得可见。

这是软件测试人员的主要工作——使错误可见。

显然,它们的可见性以积极的方式影响产品的质量。这是因为我们可以在用户开始投诉之前修复它们。

为了激励所有团队成员使更多的错误可见,我们为他们的发现付费。在XDSD项目中,我们为每个发现的错误支付15分钟的时间(无论是谁发现的和在哪里发现的)。

我们更进一步。在XDSD中,我们为每个项目计划了一些隐藏的缺陷。我们通过利用以往项目的经验和专家判断来实现这一点。

假设我们开始开发一个与去年的类似的网络系统。我们知道在上一个项目中,我们的用户和团队共报告了500个错误。

可以合理地假设新项目将有类似数量的错误。因此,我们的任务是在它们影响到生产平台并且我们的用户向我们抱怨之前,使这500个错误变得可见。因此,我们将其作为项目目标之一:“发现500个错误”。

当然,我们的估计可能是错误的。尽管如此,我们有几十个项目的历史记录,而且在所有这些项目中,错误数量接近500。因此,在一个项目中找到500个错误通常是现实的—我们可以将其作为目标。

让我们尝试以一种明确的方式定义错误(或软件缺陷)。只有在某种情况下,某事物被报告为错误并且随后支付费用。

  • “它指的是已经实现的功能”

  • 它可以在合理的时间内修复。

  • 它不会重复报告过的错误。

一个错误的可重现性非常重要。因此,报告错误的责任在于确保错误是可重现的。在证明错误可以被重现之前,不能支付酬金。

一个错误不是一个任务;它必须指的是一个已存在的功能。此外,必须存在一个解释,说明现有功能在何时以及如何未按预期工作。

Translated by ChatGPT gpt-3.5-turbo/42 on 2024-01-09 at 18:11

sixnines availability badge   GitHub stars