缺陷分析和缺陷预防技术

Posted on 2009-02-18 10:50  Jackc  阅读(1920)  评论(0编辑  收藏  举报

软件及相关系统日益庞大和复杂,开发过程和软件产品不可见,需求的易变、多变,这一系列的问题导致大量的软件质量问题,时刻提醒着软件工程师们提高软件测试技术,力求屏蔽更多的软件缺陷。缺陷分析和缺陷预防技术已经渗入到软件测试的每一个环节中。

最近在51Testing上看到相关的文章,再结合自己收集到的资料,稍微进行了一下总结,红色部分是偶自己的看法。

常见缺陷分析技术主要有七类:
1
ODC缺陷分析:

     由IBM waston中心推出。将一个缺陷在生命周期的各环节的属性组织起来,从单维度、多维度来对缺陷进行分析,从不同角度得到各类缺陷的缺陷密度和缺陷比率,从而积累得到各类缺陷的基线值,用于评估测试活动、指导测试改进和整个研发流程的改进;同时根据各阶段缺陷分布得到缺陷去除过程特征模型,用于对测试活动进行评估和预测。


2
Gompertz分析:

根据测试的累积投入时间和累积缺陷增长情况,拟合得到符合自己过程能力的缺陷增长Gompertz曲线,用来评估软件测试的充分性、预测软件极限缺陷数和退出测试所需时间、作为测试退出的判断依据、指导测试计划和策略的调整;


3
Rayleigh分析:

通过生命周期各阶段缺陷发现情况得到缺陷Rayleigh曲线,用于评估软件质量、预测软件现场质量;一般用于推测一段时间后,软件中还会残留多少BUG。


4
、四象限分析:

根据软件内部各模块、子系统、特性测试所累积时间和缺陷去除情况,和累积时间和缺陷去除情况的基线进行比较,得到各个模块、子系统、特性测试分别所位于的区间,从而判断哪些部分测试可以退出、哪些测试还需加强,用于指导测试计划和策略的调整。其实偶们常说的“在某一个区域/模块,发现的BUG越多,那么在这个区域剩余的BUG也越多。”对于BUG最多的几个模块/区域需要加大测试力度。其次,如果某个区域/模块的BUG数值随时间下降太快,则说明这个区域/模块的测试方法可能出现问题,需要进行改进。

 
5
、根本原因分析:

利用鱼骨图、柏拉图等分析缺陷产生的根本原因,根据这些根本原因采取措施,改进开发和测试过程;按照缺陷等级,将各个周期的故障用图形直观的表示出来,主要分析致命级/严重级故障的比例,如果比例过大,说明系统不稳定,还需要继续改进和测试。


6
、缺陷注入分析:

对被测软件注入一些缺陷,通过已有用例进行测试,根据这些刻意注入缺陷的发现情况,判断测试的有效性、充分性,预测软件残留缺陷数。此方法可以有效地验证测试用例的覆盖率,改进测试质量。不过对于此方法的实用性因不同的团队而异。因为注入缺陷为已知,如果测试人员对测试用例比较熟悉,经过对测试用例的复查即可分析出已有测试用例是否覆盖注入的缺陷,而无须将此缺陷注入到软件中。


7
DRE/DRM分析:

通过已有项目历史数据,得到软件生命周期各阶段缺陷注入和排除的模型,用于设定各阶段质量目标,评估测试活动。这个偶不是很清楚,有兴趣的同仁可以参考下面偶推荐的那个书,里面有比较详细的说明。

缺陷预防技术主要有以下几点:
1
、测试活动尽量提前;最理想的时间点是立项中后期,测试活动已经在开展,测试人员从了解市场开始,逐步加深对测试产品的认识。

2、通过已有缺陷的分析数据(例如上面的ODC分析等),改进项目和流程上的问题并把所有的分析资料进行有效的存储。

3、失败乃成功之母。做好失败项目的总结是整个过程中的重中之重。

推荐图书:《软件质量管理实践--软件缺陷预防、清除、管理实用方法》 

Copyright © 2024 Jackc
Powered by .NET 8.0 on Kubernetes