嵌入式软件外部质量评价方法设计
2019-02-22陈苏
陈 苏
(福建省计量科学研究院,福建 福州 350001)
随着嵌入式系统越来越广泛地应用于社会各个领域,人们在生产、生活中都不可避免地接触到各式各样的嵌入式软件,而嵌入式软件的质量很大程度上影响到嵌入式系统的可靠运行. 因此对嵌入式软件进行合理有效的测试,并给出量化的定义和评价,对保证其质量至关重要.
目前,国内从事软件质量评测工作的第3方机构对嵌入式软件的测试基本套用普通软件质量评价体系. 由于嵌入式软件和普通软件有一定的区别,它不仅要求其准确性、安全性和稳定性等方面能够满足实际应用的需要,而且还要求尽可能地进行优化,以减少对系统资源与硬件的消耗. 显然直接套用普通软件质量评价体系是不太合适的,需要根据嵌入式软件的质量模型[1]设计其外部质量评价方法并量化评价结果.
1 嵌入式软件质量度量
嵌入式软件产品质量与普通软件产品质量相同,也分为内部质量、外部质量与使用质量. 内部质量度量是从设计和开发的角度出发[2],更多关注的是软件源代码、数据结构设计、文档过程管理等方面,在度量过程中不受其他软件及硬件的影响; 外部质量是指软件在模拟环境或真实环境下执行过程中所被测量和评价的质量; 使用质量是指用户在真实系统环境下使用软件所达到其需求目标的程度,并不是指软件本身的属性. 对于第3方软件检测机构来说,更多的是关注嵌入式软件外部质量,本文也仅对嵌入式软件外部质量的度量进行讨论.
进行嵌入式软件质量度量要遵循软件产品评价过程[3],包括:确定评价需求、规定评价、设计评价与执行评价4个阶段. 具体来说就是:① 确定质量度量评价模型,根据需求选择需要测试的质量特性[4]; ② 确定度量指标的权重与选择需要测试的测量元; ③ 制定评价计划,即测试计划[5]; ④ 根据测试计划进行度量并给出量化的评价结果.
2 外部质量度量方法
2.1 质量度量特性
嵌入式软件外部质量通过建立质量模型来度量[6,7]. 本文根据GB/T 30961-2014中对嵌入式软件外部质量度量特性的描述,将其外部质量特性分为功能性、可靠性、易用性、效率、可维护性和可移植性共6个特性作为一级评价指标. 每一个特性又可分为若干个子特性,总计26个子特性,以此作为二级评价指标. 指标细分情况如图 1 所示.
图 1 嵌入式软件外部质量特性细分图Fig.1 External quality characteristic subdivision diagram of embedded software
图 1 中每个子特性应至少包含一个测量元,GB/T 30961-2014中对外部质量模型定义的测量元总计100个. 本文限于篇幅,不对每个测量元做详细描述. 对于某个嵌入式软件质量度量而言,并不是标准内定义的所有特性与测量元都必须涉及到,而是可以根据该软件的特点、领域、规模等因素选取具有较大测试意义的特性与测量元,忽略掉一些意义不大的特性与测量元,如果有特殊的测试需求,则可以根据需求自定义一些测量元,定义测量元时需与标准规范格式一致[8].
2.2 指标权重定义
要量化度量结果,首先要确定一个标度V,我们把嵌入式软件最终评价结果设定在0~1区间内,越趋近于1则表明软件质量越好. 根据以往评测经验,建议质量评价等级划分为
0.9≤V≤1为优秀;
0.8≤V<0.9为良好;
0.6≤V<0.8为合格;
0.6以下为不合格.
等级划分也可根据实际测试需求进行调整. 一级评价指标所占软件整体质量的权重,可以根据专家评价法确定:即组织行业内专家、资深技术员组成评审小组,通过对软件规模、特点、测试需求等各个评价对象进行分析和评定,确定各个指标的权重,如表 1 所示.
表中:∑Ai=1.
表 1 一级评价指标权重表
二级评价指标的权重根据其所设计的测量元数量来确定. 以功能性指标为例,如果其5个二级指标总共设计了N个测量元,那么每个二级指标的权重如表 2 所示.
其他特性依此类推不再阐述.
表 2 二级评价指标权重表
2.3 指标得分计算
一、二级评价指标权重确定好之后,就可以对每个子特性设计测量元. 为方便计算评分,需对每个测量元做“归一化”处理,即将所有测量元的得分取值范围映射到0~1这一区间上,越趋近于1代表该测量元评价结果越好.
对每个测量元设计一定数量的测试用例进行测试,通过计算测试用例执行通过率,来确定单个测量元得分Ti,即
(1)
通过计算单个二级评价指标下所有测量元得分率来确定单个二级评价指标得分
(2)
根据二级指标的权重,计算单个一级评价指标得分
Ui=∑(Wi×Bi) ; (3)
根据一级评价指标权重确定软件最终评价得分
SCORE=∑(Ui×Ai) .(4)
3 应用实例
以本单位所测某公司电脑横机智能控制系统为例,说明评价方法在实际测试中的运用. 在该测试实例中,专家评审组根据系统测试需求以及系统规格说明书等资料,选取并确定一级评价指标权重; 之后根据选取测量元,确定二级指标权重. 如表 3 所示.
根据系统测试需求,对每个测量元设计适当数量的测试用例,经过标准规范的测试,计算每个测量元的得分,根据2.3节步骤按式(1)~式(4) 逐级计算,得出所有一级指标得分:
功能性U1=(0.957×0.5)+
(0.915×0.33)+(1×0.17)=0.95;
可靠性U2=(0.9×0.34)+
(0.95×0.33)+(1×0.33)=0.95;
易用性U3=(1×0.125)+(0.95×0.25)+
(0.963×0.5)+(1×0.125)=0.969;
效率U4=(0.933×0.5)+
(0.917×0.5)=0.925;
可移植性U5=(1×1)=1.
系统各级指标得分如表 4 所示.
表 3 测试系统评价指标权重表
该软件最终得分为
SCORE=∑(Ui×Ai) =(0.95×0.3)+
(0.95×0.3)+(0.969×0.1)+
(0.925×0.25)+(1×0.05)=0.948.
根据评价标准,则该软件外部质量评价结果为优秀.
表 4 测试系统评价得分表
4 结 论
本文建立了规范合理的嵌入式软件外部质量度量模型,并运用到实际项目检测中,把外部质量度量结果量化地展示出来,使得测试人员与用户对该软件的质量有更直观的理解. 该方法简单可行,可供第3方软件评测机构借鉴参考[9,10],不足之处需要在未来的检测工作中不断提高与改进.