基于缺陷数据的度量与分析(下)

发表于:2010-2-26 14:21

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

 作者:roger_ge(CSDNBlog)    来源:51Testing软件测试网采编

  第三部分:我们的过程稳定吗,性能怎样? 统计和分析隐藏在数据背后的信息

  基础知识准备:

  1. 过程稳定性:一个过程是否稳定,就是通过过去的数据是否可以预见将来过程的发展。如一个射击运动员的过程是稳定的(不考虑心理因素等外界原因),因为通过平时的数据积累可以预见他的射击成绩;学生的考试成绩也是个差多不的例子。彩票抽奖则是一个不稳定的过程,因为它伴随着太多的随机性,你今天中奖了,不可能预见你下一次中奖是在什么时候发生。

  2. 过程能力:过程稳定是过程能力的前提,但是过程稳定并不能说明能力就行。过程能力描述的是过程是否能满足客户的要求。同样采用上面的例子,奥运会射击项目的金牌一般要求运动员的成绩均值在9.9环以上(假设),这就是一个客户要求,如果说某一个运动员达不到这个要求,则说明他的过程能力是有限的。

  3. 控制图:利用历史数据,通过科学的方法来分析过程是否受控,可预见是分析过程稳定和能力的重要手段。常用的方法就是SPC(统计过程控制),而控制图则是稳定性和能力指标的图像化描述手段。其中针对连续数据用的最广泛有以下几种图X图(组内均值分布图)、R图(组内最大和最小值的差值的分布图)、XmR图(单点值差值分布图)等等,至于这些图中的出图算法请参看相关书籍或可使用Minitab工具自动生成。

  进入正题。分析过程是否性能和可控性,前提至少过程必须是稳定的。分析缺陷库中的多个属性,查看是否有符合要求的属性可用来进行度量和分析。以下数据均是按时间跨度为统计X轴,如每一周进行数据统计。

  1. 总缺陷数:这是我们最容易想到的,但不适合,原因是缺陷数会随着新功能点的添加呈快速增长的方式,很容易超出理性范围。

  2. 缺陷解决所费时间:也不适合,原因是缺陷和缺陷之间在修复的难易程度上有很大的差异性,即使两个bug在等级和严重程度上看上去是一样的,但对开发而言,涉及的技术方面挑战性可能有本质的差别。

  3. 某一模块的缺陷数占总的缺陷数的比率:也不适合,原因是某一个模块的缺陷率会受到其它模块的直接影响。

  4. 某一类型(优先级/重要性)的缺陷数占所有类型的缺陷数的比率:这个可以,分析的结果可以得出产品的质量(如通过某一等级的缺陷率分布)在某段时间内是否受控。但是使用的频率好像不是很高。

  5. 千行代码缺陷率:这个统计属性在平时的使用中频率非常高,它可以有效的评估开发编写的代码质量的优劣程度,即使先增了功能点而导致注入了很多新缺陷,但是伴随的式代码量也有一定幅度的增长,所以本身比率还是一个非常值得参考的重要度量属性。如果考虑到不同模块由不同的开发人员负责,可采用模块千行代码覆盖率来进行分析。唯一要做的就是需要开发人员在某一时间点上提供模块或系统的代码行总量。

  下面就以千行代码缺陷率做为度量属性来进行过程性能分析(注:没有摘取当前公司缺陷库中的数据。以下数据来自于《度量软件过程》一书,原书中该数据为项目所费工时统计,这里借用拿来主义,变相为千行代码缺陷率)。

表2  过去16周每日千行代码缺陷率

32/3<123>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

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

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

沪ICP备05003035号

沪公网安备 31010102002173号