1 软件测试过程度量的重要作用
随着软件生产规模的日益增大,保证软件产品质量的软件测试工作越来越得到人们的重视,为更好地保证软件产品质量、更有效地执行软件测试工作,迫切需要对软件测试过程进行有效管理并逐步改善。目前,软件生产过程的管理模式也经历了完全依据管理者的经验到以数据为依据的量化管理这样一个逐步转化的过程。要对软件测试过程进行有效的管理就需要有反映过程本质特性的过程数据,通过这些数据,测试过程的执行状况才能得到监控,测试过程改进的决策才能有的放矢。由于软件测试过程的不可见性,软件测试过程度量则成为对软件测试过程进行量化管理不可或缺的一个环节。
软件测试过程度量是这样一种技术,它提取软件测试过程中可计量的属性,在测试过程进行中以一定频度不断地采集这些属性的值,并采用一些恰当的分析方法对得到的这些数据进行分析,从而量化地评定测试过程的能力和性能,提高测试过程的可视性,帮助软件组织管理以及改进软件测试过程。
软件测试过程度量的作用主要体现在如下几个方面,如图1所示。
图1 软件测试过程度量的作用
发现:通过度量对过程、产品、资源和环境进行分析和理解,在此基础上建立过程基线。过程基线是进行过程评价和过程改进的基准。
评价:通过评价比较实际软件过程与标准或计划间的差异。过程评价是衡量过程好坏和过程改进效果的有效手段。
控制:通过度量所反映的产品状态信息、项目状态信息和过程状态信息,可以帮助制定合理的管理控制措施,使产品偏离度、项目偏离度和过程偏离度在可控制的范围内,使项目过程的性能表现稳定,并且项目过程性能满足需求。
预测:历史度量数据的积累能帮助预测当前项目的相关属性数据,有助于计划和决策的制定。
改进:度量并不能直接改进过程,但基于度量的理解和评价为过程改进提供了有效的线索。根据这些线索再结合度量所记录的过程场景信息分析过程偏差的原因,帮助过程改进制定有效的变更措施。过程改进既是度量的结果,又是度量的动因。
2 软件测试过程度量中的几个概念
Process:过程 ,指一组部分有序的活动[IEEE-STD-610]。计划和实施一个过程都是为了达到特定的目的,该定义表明过程是由活动组成,活动可以是串行的,可以是并行的,也可以是串并相结合的。其中活动的顺序可能是时间的先后次序,因果顺序,或条件顺序等。
Activity:活动,是过程中要执行的工作[CMM Version 1.1]。实施活动是要达到一定的目的,所以活动都有信息输入和信息输出,信息输入是活动的前提条件,信息输出是活动的目的结果。
Measure:度量(名词),是通过执行测量赋予一个实体属性的数值或类别[1]。数值是对软件产品、软件过程的特征的量化记数的结果,例如软件模块的规模是10K代码行;类别是特征的定性表示,例如软件风险,可以是高或低。
Measure:度量(动词),执行测量[1],是按照度量过程中的过程定义,对软件过程或软件产品实施度量,表示实际的动作。
Measurement:测量,是按照一定的尺度用度量(metric)给软件实体属性赋值(可能是数值或类别)的过程[2]。它强调对软件实体属性进行量化的过程性,是提取软件过程或软件产品属性的度量(measure,名词)的过程。它所蕴涵的内容是度量的过程。
Metric:度量,是已定义的测量方法和测量尺度[1]。在很多场合与Indicator交叉出现,但其内涵大于Indicator,Metric指软件环境中任何一个软件对象的属性的量化表现。
Indicator:指示器,是用于评价或预测其他度量(measure,名词)的度量(measure,名词)[1]。指示器是一个或多个度量(metric)的综合,是对软件产品或软件过程的某一方面特征的反映。不同的度量目的有不同的度量指示器。在具体的实施过程中,可操作的度量成千上万,选择最能反映当时度量环境的指标作为度量指示器。
软件测试过程:保证软件质量的过程,已经不再被视为是在软件开发之后的一个独立的过程,而是贯穿于整个软件生存周期中的重要过程,并分为若干个阶段。
软件测试过程度量:是对软件测试过程进行度量的定义、方法、活动和结果的集合。
3 软件测试过程度量的分类
对软件测试过程的度量是对软件测试过程特性的一种描述,不同的描述类型决定了不同的度量内容、度量的表达方式、度量数据的采集手段、度量数据的分析方法。根据不同的描述类型划分测试过程度量类型如下:
(1)客观度量和主观度量:客观度量是过程或产品的实际结果,主观度量是人的主观判断结果,也可以是在客观数据基础上的分析结果。实施主观度量的一个前提是要有经验丰富的软件工程和软件过程人员。客观度量在一定程度上减少了人为的主观影响,因为它多表现为量化的数据,且数据的来源和产生的背景信息又可以清楚定义,这就赋予了数据较强的说明能力,为软件组织对过程进行量化管理和优化管理打下基础。本文给出的度量定义和度量分析方式是以客观度量为主、主观度量为辅的。[Page]
(2)绝对度量和相对度量:绝对度量其度量值的取得没有参照物或没有其他属性之间的依赖关系,比如,一个被测的程序模块具有绝对的代码行数,其他代码模块的变化不影响该模块的大小。相对度量是指其度量值的取得具有参照物或与其他属性之间有依赖关系,比如生产效率依赖于过程时间和产品的规模。
(3)显式度量和隐式度量:显式度量是可直接得到数据的度量,隐式度量是对原始度量数据进行运算或结合多个度量分析得到的结果。例如测试时间是显式度量,测试人员工作效率是隐式度量。
(4)动态度量和静态度量:动态度量是二维以上的度量,用于动态监控过程信息随时间的更新情况。一般第一维表示数值或类别,第二维表示时间。时间可能是绝对的日期或时钟,也可能是测试项目进度或里程碑等表示过程的进程信息。静态度量是一维度量,例如过程的计划信息。
(5)预测度量和解释度量:预测度量是根据既有度量信息来预测过程的未来执行情况。解释度量是事后度量,对已经执行的活动进行度量。从过程迭代的角度来看,上一次的解释度量可能是下一次的预测度量。
(6)内部度量和外部度量:内部度量和外部度量的划分是从度量的信息源和结果应用的作用域而言的。有三种类型的作用域:软件测试组织内部和外部,项目组内部和外部,项目内各小组之间。
文章来源于领测软件测试网 https://www.ltesting.net/