应该如何理解软件的质量和可靠性?

发表于:2016-11-28来源:infoq作者:译者 夏雪点击数: 标签:质量可靠性
质量是软件评估、度量和评价中最重要却也最容易被忽视的一个领域。在所有开发项目的早期规划阶段通常不会仔细考虑它,甚至都不会提到它,但产品准备上线或部署时通常又会把它

质量是软件评估、度量和评价中最重要却也最容易被忽视的一个领域。在所有开发项目的早期规划阶段通常不会仔细考虑它,甚至都不会提到它,但产品准备上线或部署时通常又会把它作为最终的标准。因此,从项目一开始讨论设定预期时就应该把它作为必要内容。

那么,我们如何来讨论产品质量呢?它可以由多种方式来度量,而其中两种特别能深刻地揭示产品的稳定性。它们是:

  1. 测试和实际交付时发现的系统中缺陷和错误的数量,以及
  2. 缺陷平均检测时间(MTTD),或者交付客户前和交付客户后发现缺陷所需的时间。

我们喜欢这两种度量的原因是它们都与产品稳定性相关,随着发布日期的临近这个问题将至关重要。它们是客观的、可度量的,通常可以从大多数组织的当前质量监控体系中得出,不必费太大的气力。

 

另一条不错的经验法则是测试人员每月发现的错误少于20个通常是可以接受的最低的可靠性。换句话说,产品将可以运行大约一个8小时工作日。当然,这个经验法则通常应用于电子商务信息化应用。工业和军事嵌入式应用的可靠性需要达到更高的水平。通常,更少的错误和更快的缺陷平均检测时间就会关乎更好的整体质量。虽然拥有最好的质量不一定总是干系人的核心关注点,但在项目交付客户之前可靠性是必须要满足的最低标准。例如,经验表明大约95%无缺陷的项目可以运行一天不崩溃。

Rayleigh缺陷模型

Rayleigh缺陷模型是一种获得最佳质量评估的方式,你可以用Rayleigh函数作为一个时间函数随传统软件开发过程中预测缺陷发现率。Rayleigh函数是由英国物理学家Lord Rayleigh在声波及电磁波散射的相关工作中发现的。Rayleigh可靠性模型与从软件开发工作中收集的缺陷数据的实际情况非常接近。

 

原文转自:http://www.infoq.com/cn/articles/understanding-quality-reliability-qsm