缺陷如何度量?缺陷度量的三大标准(一)

发表于:2021-9-13 09:35

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:佚名    来源:知乎

  软件度量包含三个维度的内容:产品设计指标度量、过程度量和项目度量。产品设计指标度量是指从产品设计角度的一些特性指标角度度量,如规模大小、复杂程度、设计特点、性能和质量水平。过程度量主要是用于提高开发和维护的效率,如开发过程中缺陷去除的效果、测试过程中的缺陷模型和修复过程的响应时间。项目度量是从项目特点和执行的角度进行度量,如开发商数量、生命周期、成本、进度等。
  一、缺陷密度度量
  缺陷密度也就是平常所说的缺陷率,缺陷率看似很简单,但是如果我们不能讨论清楚缺陷率中分子与分母的值,那么就不可能很好地确定缺陷率的概念。一般缺陷率的概念是指一个特定的时间帧中缺陷出现的机会。
  分母通常指的是软件的大小,通常使用千万代码(KLOC)或功能数来形容。时间帧是指产品生命期中的一系列操作,生命期少则一年,多则几年,通常95%的缺陷会在产品发布的四年之内发现,而绝大多数数据缺陷通常是在两年内被发现。
  千行代码这个度量其实很简单,主要的问题是如何精确地计数实际的代码行数,在早期的汇编语言中,一行物理代码就相当于我们要计数的一行代码,但在高级语言中可能就不会这样,一行物理行并不一定是一行代码,即使同一个代码片段使用不同的计数工具计数,也可能导致结果存在差异,通常统计代码行有以下几种方法:
  1)只统计可执行的行代码;
  2)只统计带数据定义的可执行的行代码;
  3)统计可执行行代码、数据定义和注释;
  4)统计可执行行代码、数据定义、注释和控制语句;
  5)统计在输入屏幕中做为物理行的代码;
  6)统计做为逻辑分隔符的终止行代码。
  上面是常见的关于代码行的统计方法,不同的公司可能会有着不同的统计方法,但不管使用什么方法进行统计,统计的方法只能使用一种。不同的项目使用不同的统计方法,这样数据之间没有参考价值。
  通常说的代码是程序文件中的一行代码,但是注释行或空行除外,代码通常包括程序头、函数声明、可执行的语句和不可执行的语句。
  在统计过程中,统计物理行代码和统计指令语句是存在差异的,有时候甚至会差得很多,如Basic、Pascal 和C 语言,在一行物理行上就可能出现多个指令。另一方面,一条指令语句和数据声明也可能跨越几条物理行代码,特别是在编程时,如果为了维护方便,写代码时就很容易出现这种问题。使用逻辑行和物理行进行统计各有优缺点,但是可能逻辑行来统计代码行会更合理一些。
  例如:某个项目,通常代码行总数由逻辑行代码、可执行代码和相关数据定义的代码组成,但不包含注释代码。代码行的总数应该由产品所有的代码和新版本所新增加的或修改的代码组成。源有的代码语句称之为SSI,新增的和修改的称之为CSI,SSI 与CSI 公式如下:
  SSI(当前版本)= SSI(以前的版本)+ CSI(当前版本新增或修改的代码行)
  · 删除的代码(一般这个值很小)
  · 修改的代码(不能在SSI 和CSI 中计算两次)
  产品发布后需要对缺陷进行跟踪,在跟踪缺陷过程中可以对缺陷进行分类,通常分为用户发现和内部缺陷两类,每千行SSI 和每千行CSI 主要度量的内容如下:
  (1)每千行缺陷率主要用来度量产品代码质量的。
  (2)从不同类型的角度统计千行缺陷率,这主要用来度量不同类型所发现的缺陷总数。
  (3)新修改或增加的每千行代码所发现的缺陷数。
  (4)由客户所发现的,新新修或增加的每千行代码缺陷数。
  产品发布后需要对缺陷进行跟踪,在跟踪缺陷过程中可以对缺陷进行分类,通常分为用户发现和内部缺陷两类,每千行SSI 和每千行CSI 主要度量的内容如下:
  第(1)点主要度量总的已发布代码的质量,第(3)点主要度量新修改或增加的代码的质量,如果当前测试的版本就是发布的第一个版本,那么第(1)点和第(3)点表达的意思是一致的。第(1)点和第(3)点主要是针对过程进行度量的。第(2)点和第(4)点主要是从客户的角度进行分类度量。对千行CSI 率和千行SSI 率进行估计,开发工程师可以通过修复缺将对用户的影响降低到最小化。
  二、客户角度
  缺陷率是度量软件质量的一个基础单元,但从开发团队的角度来说,通过对缺陷率的分析可以有效地提高产品的质量。从实践的角度来说,一个好的软件质量需要从用户的角度来分析。如果以缺陷率来做产品发布时产品质量的度量,那么从客户角度,缺陷率并一定直接决定缺陷的总数。所以一个好的缺陷率应该是会让发布产品的总缺陷数下降。如果一个新发布的版本比较以前版本的代码量更大,这就说明新添加的修改的代码的缺陷率要下降,这样才能更好的降低缺陷的总数。

  本文内容不用于商业目的,如涉及知识产权问题,请权利人联系51Testing小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号