软件测试——缺陷密度
每个软件都经过质量、可扩展性、功能、安全性和性能以及其他重要因素的评估。在系统测试过程中,通常会发现缺陷和故障。但是,开发人员必须在将其发布给最终用户之前验证它们是否已得到解决。这是因为在初始点纠正不准确比以后纠正要便宜得多。缺陷识别程序保证最终产品符合客户的所有要求和标准。为了保证软件完美无缺,软件开发人员使用缺陷密度函数来查找软件的质量。
因此,简而言之,可以得出结论,质量与缺陷成反比(随着缺陷数量的增加,软件质量下降)。在本文中,我们将讨论以下内容:
- 什么是缺陷密度?
- 计算缺陷密度的步骤。
- 缺陷密度的用途。
- 影响缺陷密度度量的因素。
- 缺陷密度的优点。
- 软件在什么缺陷密度值时变得不可接受?
让我们详细讨论这些主题。
什么是缺陷密度?
缺陷密度是一个数学值,表示在开发周期期间在软件或其他部分中发现的缺陷数量。然后根据软件的大小对其进行拆分。简而言之,它用于确定软件是否会发布。
由于以下原因,故障密度在软件开发生命周期 (SDLC) 中的重要性不容小觑:
- 它用于确定软件缺陷的数量。
- 测试团队将能够聘请第三方检查人员进行重新设计和替换。
- 开发人员还可以使用缺陷密度来识别未来容易出现故障的组件。
- 因此,测试人员可以专注于适当的领域,并以很少的资源提供最高的投资回报。
软件的缺陷密度是用缺陷的总和除以软件的大小来估计的。
Defect Density = Total Defect/Size
缺陷密度计算公式:
Defect Density = Average number of Defects/KLOC
Here, KLOC is Line of codes per thousands
根据最佳实践,每 1000 行 (LOC) 有一个缺陷被认为是可以接受的。 KLOC 缺陷密度标准就是这样一个例子。函数点用于衡量软件或代码 (FP) 的大小。
计算缺陷密度的步骤
让我们考虑一个计算软件中缺陷密度的例子。
该软件在规格方面具有以下集成模块。每个模块都发现了以下数量的错误:
- 模块 1 = 5 个错误
- 模块 2 = 10 个错误
- 模块 3 = 20 个错误
- 模块 4 = 15 个错误
- 模块 5 = 5 个错误
Total bugs = 5+10+20+15+5
= 55
每个模块的总代码行是:
- 模块 1 = 500 LOC
- 模块 2 = 1000 LOC
- 模块 3 = 1500 LOC
- 模块 4 = 1500 LOC
- 模块 5 = 1000 LOC
Total LOC = 500+1000+1500+1500+1000
= 5500
缺陷密度计算如下:
Defect Density = (55/5500)
= 0.01 defects/LOC
= 10 defects/KLOC
缺陷密度的用途
对于软件及其组件的开发,缺陷密度被视为行业标准。以下是缺陷密度的一些用途:
- 它包括一个用于计算缺陷数量的开发程序,允许开发人员识别需要彻底测试的薄弱区域。
- 在发布产品并比较性能、安全性、质量、可扩展性和其他因素时,组织还需要故障密度。一旦确定了故障,开发人员就可以开始进行改进以减少缺陷的数量。
- 缺陷密度方法有助于开发人员确定降低对软件质量的影响。
在许多方面,故障密度的使用是微不足道的。另一方面,开发人员可以在建立常见缺陷后使用此模型来估计剩余的问题。开发人员可以使用这种方法来创建常用术语的数据库。
影响缺陷密度度量的因素
缺陷密度是通过将总故障除以软件大小来计算的。这个想法是发现真正重要的问题,而不仅仅是任何缺陷。因此,理解导致成功结果的组成部分至关重要。在开始此过程之前,开发人员和测试团队必须设置所有必要的环境。这使开发人员能够准确地跟踪受影响的位置,从而得出非常准确的结果。
影响密度的因素有:
- 缺陷类型
- 使用的代码是关键和复杂的。
- 开发人员和测试团队的能力
- 计算缺陷密度需要时间。
- 软件的效率和性能是最重要的考虑因素。
缺陷密度的优势
对于软件测试人员和开发人员而言,缺陷密度具有多种优势。除了提供卓越的故障测量精度外,它还满足广泛的技术和分析需求。掌握准确的发现可以帮助软件工程师对其构建程序的质量和性能保持信心。缺陷密度的其他好处包括 -
- 开发人员确保产品已准备好发布的能力不需要任何更多的测试。
- 开发人员和测试人员可以估计纠正错误所需的测试和返工量。
- 测试人员可以追踪和识别构成高危险的组件。
- 测试团队可以计算出完成该程序需要多少培训。
- 可以检测和纠正需要改进的区域。
软件在什么缺陷密度值时变得不可接受?
关于缺陷密度的范围没有这样的工业预定义规范,但是缺陷密度的较高值会导致所提议的软件不可接受。然而,根据当前的 IT 行业趋势,合适的范围将在0.1-0.5 Defect/LOC之间,因为此范围的软件不被本标准接受。