Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Testing 如何衡量软件产品的质量_Testing - Fatal编程技术网

Testing 如何衡量软件产品的质量

Testing 如何衡量软件产品的质量,testing,Testing,我有一个产品,X,我们每个月交付给客户,C,包括错误修复、增强、新开发等)。每个月,我都被要求“保证”产品的质量 为此,我们使用了从测试中收集的大量统计数据,例如: 重新打开率(重新打开的错误数/测试的已纠正错误数) 新错误率(新错误的数量,包括回归、测试期间发现的错误/测试的已纠正错误的数量) 对于每个新的增强功能,新的错误率(此增强功能发现的错误数/工作日数) 以及其他各种数字 不可能每次都测试每件事,因为我们不想讨论的原因 所以,我的问题是: 如何估计软件中保留的bug的数量和类型?

我有一个产品,X,我们每个月交付给客户,C,包括错误修复、增强、新开发等)。每个月,我都被要求“保证”产品的质量

为此,我们使用了从测试中收集的大量统计数据,例如:

  • 重新打开率(重新打开的错误数/测试的已纠正错误数)
  • 新错误率(新错误的数量,包括回归、测试期间发现的错误/测试的已纠正错误的数量)
  • 对于每个新的增强功能,新的错误率(此增强功能发现的错误数/工作日数)
以及其他各种数字

不可能每次都测试每件事,因为我们不想讨论的原因

所以,我的问题是:

如何估计软件中保留的bug的数量和类型? 我必须遵循哪些测试策略来确保产品是好的

我知道这是一个有点悬而未决的问题,但嘿,我也知道没有简单的解决方案


谢谢。

我认为保持简单是最好的方法。按严重程度对bug进行分类,并按严重程度降低的顺序解决它们


通过这种方式,您可以交付尽可能高质量的构建(剩余的重要bug数量是我如何衡量产品质量,而不是一些复杂的统计数据)。

问题是谁要求您提供统计数据

如果是非技术人员,伪造数据。我所说的“假”是指你提到的那种“提供任何不可避免的毫无意义但真实的数字”

如果是没有CS背景的技术人员,应该告诉他们停止问题,这是无法确定的,比计算和分类剩余的bug更简单


有很多关于软件质量的度量标准和工具(代码覆盖率、圈复杂度、编码准则和实施它们的工具等)。在实践中,有效的方法是尽可能多地自动化测试,让人类测试人员尽可能多地进行非自动化测试,然后祈祷。

一根绳子有多长?最终是什么造就了高质量的产品?Bugs给出了一些指示是的,但涉及许多其他因素,单元测试覆盖率是IMO中的一个关键因素。但根据我的经验,影响产品是否被视为质量的主要因素是对正在解决的问题的良好理解。通常情况下,产品要解决的“问题”没有被正确理解,开发人员最终发明了解决方案,解决了他们头脑中的问题,而不是真正的问题,因此产生了“bug”。我是迭代开发的坚定支持者,这样产品就可以不断地解决“问题”,并且产品不会偏离目标。

我认为你永远无法真正估计应用程序中的bug数量。除非您使用允许正式证明的语言和过程,否则您永远无法真正确定。你的时间花在建立过程以最小化bug上可能比花在估计你有多少bug上要好

你能做的最重要的事情之一就是拥有一个好的QA团队和良好的工作项跟踪。您可能无法每次都进行完整的回归测试,但如果您有自上次发布以来对应用程序所做更改的列表,那么您的QA人员(或人员)可以将测试重点放在应用程序中预期会受到影响的部分

另一件有帮助的事情是单元测试。您涵盖的代码库越多,您就越有信心一个领域中的更改不会无意中影响到另一个领域。我发现这非常有用,因为有时我会更改某些内容,忘记它会影响应用程序的另一部分,而单元测试立即显示了问题。通过单元测试并不能保证您没有破坏任何东西,但它们可以帮助您提高对所做更改是否有效的信心


此外,这是有点多余和明显的,但请确保您有良好的错误跟踪软件。:)

大多数敏捷方法都非常清楚地解决了这个难题。你不能测试所有的东西。在发布之前,您也不能无限次地测试它。因此,程序取决于缺陷的风险和可能性。风险和可能性都是数值。两者的乘积为您提供一个RPN编号。如果数字小于15,您将发布测试版。如果你能把它降到10以下,你就可以发布产品,并在将来的版本中修复这个bug

如何计算风险

如果是撞车,那就是5 如果它是一个崩溃,但你可以提供一个解决方案,那么它是一个数字小于5。 如果该缺陷减少了功能,则为4

如何计算可能性

你能在每次跑步时重新制作它吗,它是5。 如果提供的工作环境仍然导致其崩溃,则小于5


嗯,我很想知道是否还有其他人在使用这个方案,并渴望了解他们在这方面的相似之处。

我听到的问题是,如何估计我的软件中的错误?我用什么方法来保证质量好

以下是一些方法,而不是一个完整的过程

如何估计软件中的bug?

从历史开始,你知道你在测试中发现了多少(希望如此),你知道有多少是事后发现的。您可以使用它来估计您在发现bug方面的效率(DDR缺陷检测率就是其中一个名称)。如果您可以证明在某个一致的时间段内,您的DDR是一致的(或改进的),那么您可以通过猜测产品发布后将发现的发布后缺陷的数量来了解发布的质量

我应该使用什么技巧来确保质量