SPC技术在软件过程绩效评估中的应用

点击

上方蓝字

关注我们~

随着软件工程化的逐步深入,越来越多的组织按照GJB5000A-2008《军用软件研制能力成熟度模型》标准建立了软件过程体系,并开展了相应的软件过程改进工作。过程绩效评估是软件过程改进的前提,如何有效、量化地评估已实施过程,困扰着许多实施软件过程改进的单位。在软件过程绩效评估中应用统计过程控制技术(SPC),能够有效解决现实中遇到的问题,是一种较好的方法和思路。

一、概述

SPC是英文“Statistical Process Control”的缩写,意思是“统计过程控制”。SPC技术是由美国的质量管理专家休哈特(W.A.Shewhart)博士于上世纪20年代发明的,是应用统计技术对过程进行评估和监控,建立并保持过程处于可接受的且稳定的水平,从而保证产品与服务符合规定要求的一种质量管理技术。主要有两方面内容:一是利用控制图分析过程的稳定性,对过程存在的异常因素进行预警;二是计算过程能力指数分析稳定的过程能力满足技术要求的程度,对过程质量进行评价。

二、配置项测试过程绩效评估实例

(一) 选择测量项

软件过程测量项的选择可遵循以下准则:

1.从过程属性和产品属性两方面考虑。测量项选择时首先需将过程和产品两个方面可能的测量项一一列出来,然后按照后面的几条准则选定所需的测量项,可能是一个,也可能是多个;

图1 实施软件过程绩效评估步骤

2.所选择测量项应能直接反映过程绩效。直接反映过程绩效的测量项就是待评估过程的关注点,比如效率、时间、质量等等,也是后续的过程改进方向;

3.所选测量项应能方便、经济地采集数据。某些过程性能数据可能是希望得到的,但由于采集手段、采集环境等原因,不能方便、经济地得到,此时需综合考虑是否选择这个测量项;

4.测量项数据应是一致采集、定义明确的数据。所选择测量项的测量数据应能在一定周期内或同一批数据具有相对稳定的、一致的产生环境和采集条件;

5.测量项数据应是变化的。只有变化的数据才能反映过程性能,才能体现统计的意义,一个不变化的数据在SPC技术中没有任何作用。

配置项测试过程是一个重要的软件产品验证过程,也是一个普遍实施的过程。按照测量项选择准则的第a)条,配置项测试过程可能的测量项如下:

(1)过程属性测量项:测试效率、测试人力资源使用率、测试用例数等;

(2)产品属性测量项:缺陷密度、测试覆盖率、通过的测试用例数等。

(二) 定义测量项

对测量项进行可操作性的定义是确保得到一致、有效的测量数据的基础,测量项的可操作性定义是完备的、准确的、无二义性的,即不同的人按照定义,对测量项能有相同的、一致的理解,并能得到相同的结果。

配置项测试缺陷密度的可操作性定义见表1。配置项测试缺陷密度是一个导出测量项,在表1中同时给出了其相应的基本测量项,并通过对基本测量项的可操作性定义,来满足导出测量项可操作性定义要求。

表1 配置项测试缺陷密度测量项定义

(三) 采集与检查测量数据

表2 配置项测试缺陷密度数据

在对采集的测量项数据进行分析之前,需要对数据进行检查,测量项数据检查准则如下:

1.真实性:

(1)具有正确的类型:比如某个测量项是导出测量项,那么这个数据就应该是个比率类型数据,检查时只需检查它是否是比率数据;

(2)具有正确的格式:主要是指数据具有正确的量纲,如与日期相关的测量项,它的数据量纲就应该是“天”,与金额相关的测量项,它的量纲就应该是“元”之类的;

(3)在规定的值域内:有些测量项有“合理性值域”,比如测量项是问题的计数,那么这个数值就不会是负数;

(4)是完整的:完整性是指提供的采集数据不能仅仅是一个数值,还应包括相应的采集时间、采集人、采集工具等相关记录;

(5)数学上是正确的:指导出测量项的计算应该是正确的,在进行数据检查时应对导出测量项的数值复核一遍。

2.同步性

同步性是指某些导出测量项中的基本测量项需是同一时间段的数据,典型的例子就是投入产出比,统计的投入和统计的产出必须是同一个时间段的。

3.一致性

一致性是指当前数据与历史数据的比较,一致性检查相对比较难,要求检查者对以往的情况要比较熟悉和了解。典型例子就是按月份天数统计的数据,比如以往都是按每月22天计算,而某次统计却是按每月25天计算,这就是数据一致性存在问题。

4.有效性

有效性是指测量项数据是否符合它的定义,比如表1中定义的代码行数,是指首次提交的源代码行数,如果采集的数值是回归测试后的,那么,这个数据就是无效的。

(四) 分析测量数据

控制图是SPC技术的重要分析工具,针对不同的数据分布特性,有不同的控制图,比如随机分布、泊松分布、二项式分布等分别可采用C图、U图、P图、XR图、XS图、XmR图等。在分析测量项数据之前,需根据测量项数据的分布特性选择适用的控制图类型,表3给出了控制图选择准则。配置项测试缺陷密度可以看成是一个随机分布,所以这里选择XmR图(单点值和移动值域图)作为本次软件过程绩效评估的分析工具。

表3 控制图选择准则

图2 配置项测试缺陷密度XmR图

(五) 过程稳定性判定

1.一个点落在3σ控制限之外。这里的σ值就是前面算出来的;

2.三个相继的点中至少两个点落在中心线的同一侧,并且距离中心线有两个以上的σ单位;

3.五个相继的点中至少四个点落在中心线的同一侧,并且距离中心线有一个以上的σ单位;

4.至少八个相继的点落在中心线的同一侧。

根据上述判定准则,可以得知这个配置项测试过程是一个稳定的过程。

(六) 过程绩效评估

根据过程能力的定义,可以得到配置项测试过程的过程能力为[3.42,35.38],即该配置项测试过程在正常情况下所得到的缺陷密度在3.42/KLOC到35.38/KLOC之间。假设某次配置项测试的缺陷密度为21个/KLOC,则表明该次测试过程稳定且满足组织的过程要求,得到的过程结果有效、可信。

三、过程改进

(一) 过程能力指数

过程能力的大小可以用过程能力指数来表示,过程能力指数又常用CP和CPK表达。其中CP表示的是自然过程能力中心与规格容限(用户或组织的要求)中心重合时的过程能力指数,CPK表示的是自然过程能力中心与规格容限中心有偏离时的过程能力指数。一般情况下,自然过程能力中心与规格容限中心都是有偏离的,所以过程能力指数通常都是指CPK。下面是它们的计算公式,从第三个公式我们可以看出,CPK值永远不会大于CP值。

(二) 过程改进时机

过程改进时机可以通过过程能力指数的大小来确定,通常情况下,有以下两种情况:

1.过程能力指数偏低。当过程能力指数小于1.33时,表示该过程能力偏低,导致过程结果可信度偏低或工作产品质量较差,此时应考虑实施过程改进;

2.过程能力过高。当过程能力指数大于1.67时,表示该过程能力过高。过高的过程能力虽然可以保证很好的产品质量,但同时带来的是过高的过程成本。因此,从经济的角度出发,可以考虑进行过程改进,以降低成本。

表4给出了过程能力指数与过程特征之间的关系。

表4 过程能力指数与过程特征的关系

(三) 过程能力指数计算

假设组织对配置项测试缺陷密度的要求为5~30个/KLOC,前面实例中的配置项测试过程的过程能力指数计算结果如下:

对照表4,说明这个配置项测试过程的过程能力处于严重不足状态,需要做很大程度的改进。

结语

声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年2月5日
下一篇 2022年2月5日

相关推荐