在软件测试过程中可能会发现一些无效的缺陷,无效缺陷也是缺陷监控分析的一部分,无效缺陷是指测试工程师提交的缺陷,但开发并不认为是缺陷,并且最终审核后也确定该缺陷不是真的缺陷,这种缺陷被称之为无效缺陷。
在测试过程中发现的缺陷中,无效缺陷的比例不能过多,一般在一个项目测试过程中发现的无效缺陷应该都是低于5个的。如果无效缺陷过多,则说明测试对需求的理解方面有问题,导致提交缺陷时出现过多无效缺陷。
那么是什么原因导致测试工程师对需求理解的偏差呢?那最主要的是在需求评审时,需求工程师在解释需求时(也可以说是唱需求)并没有表达得很清楚,导致对需求的理解出现问题。而目前很多公司在需求评审时,其实很多是没有详细解释需求的过程,而只是在评审过程中,如果评审发现需求有问题,才对有问题的需求进行详细的介绍。所以就可以发现对需求有着不一样的理解,这样就可能提交一些无效的缺陷。当提交的无效缺陷过多时,则说明我们的在解释需求和评审需求时存在很多问题,需要找到一个有效的方法来完善需求评审的过程。
缺陷修复是在整个测试过程上,开发修改缺陷的过程也是必须要去监控和评估的,通常缺陷修复的分析需求包括以下几个方面的内容:
(1)严重和致命类的缺陷修复的情况;
产品在发布时,不能遗留严重和致命类的缺陷,所以在产品发布之前一定要确保所有的致命和严重问题都得到解决。
(2)每个版本所修复缺陷的情况;
统计每个版所修复的缺陷趋势图,当然每个版本所修复的缺陷趋势图应该与所发现的缺陷趋势图是类似的,但主要需要分析以下问题,在所修复的缺陷中,有一些缺陷可能一次性没有修复完成,或者修复后引入了新的缺陷。这类问题就是我们主要分析的对象,因为当出现这类问题时,就必然会导致修复的缺陷成本升高。当然很少有公司具体去讨论这类未能被一次性修复的缺陷所占的百分比。但如果这个比例超过一定比例时,就必须对研发修复缺陷的过程进行详细的分析,以确定这类情况的具体原因。
缺陷度量是指软件度量包含三个维度的内容:产品设计指标度量、过程度量和项目度量。产品设计指标度量是指从产品设计角度的一些特性指标角度度量,如规模大小、复杂程度、设计特点、性能和质量水平。过程度量主要是用于提高开发和维护的效率,如开发过程中缺陷去除的效果、测试过程中的缺陷模型和修复过程的响应时间。项目度量是从项目特点和执行的角度进行度量,如开发商数量、生命周期、成本、进度等。
但本节中我们将重点讨论缺陷如何度量,其他的维度我们在本书中不进行详细的讨论。
缺陷密度度量是指缺陷密度也就是平常所说的缺陷率,缺陷率看似很简单,但是如果我们不能讨论清楚缺陷率中分子与分母的值,那么就不可能很好地确定缺陷率的概念。一般缺陷率的概念是指一个特定的时间帧中缺陷出现的机会。
分母通常指的是软件的大小,通常使用千万代码(KLOC)或功能数来形容。时间帧是指产品生命期中的一系列操作,生命期少则一年,多则几年,通常95%的缺陷会在产品发布的四年之内发现,而绝大多数数据缺陷通常是在两年内被发现。
千行代码这个度量其实很简单,主要的问题是如何精确地计数实际的代码行数,在早期的汇编语言中,一行物理代码就相当于我们要计数的一行代码,但在高级语言中可能就不会这样,一行物理行并不一定是一行代码,即使同一个代码片段使用不同的计数工具计数,也可能导致结果存在差异,通常统计代码行有以下几种方法:
只统计可执行的行代码。
只统计带数据定义的可执行的行代码。
统计可执行行代码、数据定义和注释。
统计可执行行代码、数据定义、注释和控制语句。
统计在输入屏幕中做为物理行的代码。
统计做为逻辑分隔符的终止行代码。
上面是常见的关于代码行的统计方法,不同的公司可能会有着不同的统计方法,但不管使用什么方法进行统计,统计的方法只能使用一种。不同的项目使用不同的统计方法,这样数据之间没有参考价值。
通常说的代码是程序文件中的一行代码,但是注释行或空行除外,代码通常包括程序头、函数声明、可执行的语句和不可执行的语句。
在统计过程中,统计物理行代码和统计指令语句是存在差异的,有时候甚至会差得很多,如
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 率进行估计,开发工程师可以通过修复缺将对用户的影响降低到最小化。
本章节关于“软件测试的无效缺陷以及缺陷修复”的内容就学习到这里,大家觉得文章有用的话记得每天来这里和小编一起学习涨薪技能哦。