一种面向第三方测试的装备软件可信性评估方法

2020-06-04 02:01郭兴林周昱瑶漆莲芝孙振晓颜运强
科学技术与工程 2020年11期
关键词:可信性度量贡献

郭兴林, 周昱瑶, 漆莲芝, 孙振晓, 张 谊, 颜运强

(中国工程物理研究院计算机应用研究所,绵阳 621900)

随着信息科学与技术的迅猛发展,软件在装备整体效能中发挥的作用越来越大,装备中很多关键、复杂功能逐步由软件实现。由于软件规模与复杂度的增长,加之软件开发和运行环境的开放性、动态性和多变性,软件缺陷密度随之呈几何级数增长,软件缺陷引起的软件失效也可能导致严重后果。例如,2003年,俄罗斯“联盟号”载人飞船因导航计算机软件错误在返回途中偏离预定降落地点约460 km;2009年,法航空客A330-200 型飞机由于测速仪结冰,飞控软件给出了错误的攀升指示,最终导致飞机在大西洋上坠毁[1]。装备软件可信问题日益突出,软件可信性评估受到了行业的广泛关注。

软件可信性指软件的行为和结果符合用户预期,并在受到干扰时仍能提供连续服务的能力[2]。中外学者在可信性评估方面开展了广泛研究,并取得了一定的研究成果。1978年,Boehm等[3]建立了软件质量层次模型,将软件质量分为多个质量属性。Voas[4]提出了软件可信度量综合模型,将软件可信描述为可用性、可靠性、可维护性、性能、安全性、容错性、机密性和可测试性8种属性。Yang等[5]建立了软件可信过程管理框架,从量化和提高软件开发过程可信的角度来保障软件可信性。郎波等[6]依据典型软件质量模型(如ISO/IEC 2501n,McCall模型),提出了一种软件可信分级规范。Park等[7]提出了基于风险管理的可信软件过程评估模型,并对软件开发过程、软件中间产品与可信软件三者之间的关系进行了定义。Perkusich等[8]运用贝叶斯网络来改善软件开发过程的质量缺陷,从而提高软件开发的成功率与可信性。王德鑫等[9]提出基于软件过程评估模型的可信评估方法,采集过程实体、行为以及制品3个方面的可信证据进行可信性评估。Kanpariyasoontorn等[10]采用云控制矩阵对云服务的可信性进行了评估。

目前,中外软件可信性评估方法主要从软件产品和过程两个维度建立软件可信性评估模型[11],采集证据进行可信性评估,但在装备软件应用中仍存在一些不足。

(1)强调方法通用性,忽略软件的领域行业特点。根据目前装备软件研制体系,软件任务总体、需求分析、设计、编码、测评等过程单位既相互联系又一定程度上独立,软件研制过程中任一相关单位都难以获取其他研制过程的完整软件数据,难以做到从全生命周期收集可信证据对软件可信性进行评估,也无法直接依赖某一阶段数据对软件可信性进行准确评估,难以满足软件利益相关方的评估需求。

(2)关注评估模型的完备性,忽略模型构建的科学性和规范性。现有可信评估模型在构建时追求对软件产品质量和过程活动的全覆盖,未考虑可信特征间复杂关系,存在重复度量的情况。另外,在可信融合过程中,未考虑可信证据多维性、多源性、不确定性特点,证据分析度量缺乏统一约束,评估模型输入的一致性和规范性无法保证,模型的科学性和规范性存在不足。

(3)传统可信评估方法提供的可信信息匮乏,效费比低。通过传统可信评估得到软件可信性,未结合评估过程和结果信息对软件可信性进行深层次分析,提供的可信信息匮乏,不利于利益相关者全面深入了解软件可信性情况以及制定软件可信性增强策略和规范,难以有效支撑研制改进和管理决策。

由于第三方测试仍为目前装备软件质量保障的重要手段,并且能够方便获得软件多类型缺陷数据,因此,面向第三方测试,提出了一种装备软件可信性评估方法,能够为软件研制改进、管理决策提供有效支撑。

1 面向第三方测试的装备软件可信性评估框架

软件可信性评估本质上是软件多维质量属性科学融合的过程,涉及可信评估模型构建、可信证据分析度量、可信性融合、可信性分析等多个环节,其中构建科学、完备的软件可信性评估模型是可信评估的核心,统一的可信证据分析度量方法是保证评估模型输入一致性和规范性的前提,而科学、合理的多维可信融合算法是确保评估结果准确性的关键。依赖可信评估过程和结果信息深入开展软件可信性分析,挖掘软件深层次可信信息,生成软件可信性增强策略和规范,实现可信评估效益的最大化。面向第三方测试的装备软件可信性评估框架如图1所示。

图1 装备软件可信性评估框架Fig.1 Framework for evaluating the trustworthiness of equipment software

1.1 基于多维属性的软件可信性评估模型

软件可信性是软件多种质量属性的综合体现,ISO/IEC 9126、25010、GJB 5236等标准均对软件质量模型进行了定义[12],依据软件质量模型、装备软件特性以及测试相关标准规范,建立基于多维属性的软件可信性评估模型,评估模型采用层次结构进行组织,自上而下分别属性、子属性、度量元、度量指标,模型中所有节点统称为可信特征。装备软件可信属性一般包括功能性、可靠性、安全性、实时性、可生存性、可维护性6种属性,子属性是对属性内涵的进一步细化。每个子属性下度量元设置方式一致,均采用测试完整、测试有效、测试符合3层递进模式。度量指标从正常、异常、边界测试等方面对度量元进行表征,度量指标可以直接采集证据进行度量。基于多维属性的装备软件可信性评估模型如图2所示。

图2 装备软件可信性评估模型Fig.2 Model for evaluating the trustworthiness of equipment software

评估时可根据软件类型对模型中可信特征进行灵活调整,采用层次分析法[13](analytic hierarchy process, AHP)确定可信特征权重。

1.2 软件可信性融合算法

软件可信性融合算法将可信特征可信值按照模型层次结构自下而上融合成软件可信性,其科学性、合理性直接影响评估结果的准确性。采用基于公理证明[14]的可信融合算法进行可信数据融合,如式(1)所示。

(1)

式(1)中:T为软件可信性;z1、z2分别为关键属性和非关键属性的可信性;α为关键属性权重;β为非关键属性的权重;ρ为关键属性和非关键属性间的替代系数;yi为属性i的属性值,m、s分别为关键属性和非关键属性的个数;ymin、ymax分别为属性值最小和最大的关键属性;αi为m个关键属性间的相互权重;ε为调控参数,调控最小关键属性对可信性的影响;βi为s个非关键属性间的相互权重;ρ1为非关键属性间的替代系数。

在装备软件中,所有属性均为关键属性,即α=1,β=0,ρ→+∞,属性对可信性贡献由其可信性和权重共同决定,ε=0,式(1)可简化为

(2)

式(2)为非线性积性算法,m为属性个数,其满足非负性、空值性、单调性、凝聚性等公理性质,符合人类逻辑推理,算法准确性较高。另外,该算法对可信性差的可信特征更为敏感,有利于找出软件可信性薄弱环节,快速提升软件可信性。子属性、度量元融合均采用上述算法。

2 可信证据分析度量方法

第三方测试数据类型多、数据量大、追溯关系复杂,难以有效提取可信证据。另外,源于可信评估模型的多维性,可信证据具有多维性、多源性和不确定性,可信证据分析、度量困难,难以保证评估模型输入的一致性和规范性。为保证评估结果的准确性,应对评估模型进行统一约束,建立统一的可信证据分析度量准则。

准则1:可信需求获取。可信需求是指软件利益相关者需要可信软件具备的可信状态或条件[15],是判断软件是否满足可信目标的唯一基准。可信需求获取的完备性、规范性和一致性直接影响评估结果的准确性。对可信需求的约束包括特征类别、粒度、依据、优先级等。可信需求获取准则如表1所示。

表1 可信需求获取准则

准则2:可信证据追溯。为保证评估的充分性、准确性和一致性,应在可信证据(研制需求、测试数据、可信需求)间建立完整追溯关系。当前软件工程能力和装备软件研制体系下,软件研制需求、测试需求、可信需求分别构成集合A、B、C,三者之间的关系为A⊆B⊆C,评估过程能够且必须实现对研制需求、测试数据的全覆盖。

准则3:可信证据的采集。软件可信属性与测试类型间并非一一对应关系,根据测试类型定义以及可信评估工程实践,确定了可信属性与测试类型的对应关系,以此为准则进行可信证据采集。对应关系如图3所示。

图3 软件可信属性与测试类型对应关系Fig.3 Corresponding relationship between software trustworthiness attributes and test types

准则4:测试有效判定准则。穷尽测试是不可能的,当前软件工程能力以及时间资源约束条件下,按照标准测试设计方法设计正常、异常、边界情况测试用例作为充分性集合,然后根据可信需求优先级以及测试用例设计情况判定测试是否有效。

设对可信需求进行充分覆盖所需用例数为Φ,测试时已设计用例数为Ψ,用例覆盖率:

(3)

优先级为高、中、低的可信需求对应的用例覆盖率阈值分别为η1、η2、η3,且η1>η2>η3,低于阈值,该可信需求测试无效,高于阈值测试有效。

准则5:可信需求满足判定准则。软件问题是判定可信需求是否满足最重要的证据。软件问题具有两个基本的特征指标,一个是软件问题数,另一个是问题的严重等级。当前软件工程能力以及时间资源约束条件下,简单以是否存在软件问题作为可信需求满足与否的判定依据,得到的结果是片面的、不客观的,不具有工程应用价值,更合理的是充分考虑可信需求优先级、软件问题数、软件问题严重等级间的综合作用。

(4)

准则6:可信指标度量准则。为保证评估结果的准确性,参与可信融合的可信特征其指标度量方向应是一致的。根据度量方向指标一般分为成本型指标和收益型指标。

成本型指标:

(5)

式(5)中:x为未满足的可信需求数目;y为全部可信需求数目。x越小,指标可信性越好。

收益型指标:

(6)

式(6)中:x为满足的可信需求数目;y为全部可信需求数目。x越大,指标可信性越好。在可信融合之前,应首先对指标的度量方向进行一致性转换。

3 软件可信性分析

获得可信性评估结果并不是可信评估的最终目的,更重要的是通过可信性评估和分析过程,深入挖掘软件的可信信息,为软件研制、管理决策提供丰富的信息支撑。软件可信性分析响应不同软件利益相关者的重大关切,从多个视角、多个维度展开分析。

维度1:软件可信性水平。软件可信性水平是对软件整体可信性的宏观反映,包括软件可信性T和可信评估等级H[16]。

维度2:可信特征对软件可信性的贡献。可信特征对软件可信性的贡献是从具体的软件可信特征出发,分析每个可信特征对软件整体可信性的贡献情况以及可信特征间可信性差异情况,便于更细致地了解软件可信性构成情况。

设软件可信性为T,属性、子属性、度量元可信性分别为xi、yi,j、zi,j,k,对应的权重分别为αi、βi,j、γi,j,k,则属性、子属性、度量元对软件可信性的贡献因子:

(7)

维度3:影响软件可信性的关键可信特征。软件可信性增强是可信性分析的一个重要目的,在制定可信性增强策略时,不能仅仅以可信特征对软件可信性的贡献情况为依据,实际情况往往是贡献最小的可信特征反而不是增强的重点,如可维护性,应重点考虑可信特征对软件可信性实际贡献与理想贡献的偏差,偏差越大的增强优先级越高。将贡献偏差最大的可信特征称为关键可信特征。

(8)

维度4:软件可信性增强策略。软件可信性增强策略包含两个层面的内容,待增强可信特征的选择以及相应的增强目标。待增强可信特征的选择参考维度3分析结果。增强目标包括顶层目标和底层目标,对应自顶向下和自底向上的增强策略。

(1)自顶向下可信增强策略。直接将软件可信性作为增强目标,选择N个度量元作为待增强可信特征,软件可信性增强ΔT,则底层度量元增强目标满足式(9)约束优化求解。

(9)

式(9)中:S为可信性增强成本函数;φi,j,k为度量元单位可信性提升所需的成本,通过约束求解使可信增强成本最低的Δzi,j,k,即得到可信增强底层目标。

(2)自底向上可信增强策略。选择N个度量元作为待增强可信特征,分别将其可信性提升Δzi,j,k,软件可信性增强到

(10)

维度5:软件可信性增强规范。制定软件可信性增强策略后,依据可信特征与可信证据间的追溯关系,识别未满足的可信需求。结合历史经验失效模式库,开展软件失效模式分析,对于危险等级高的软件失效,参考行业标准、方法指南,形成针对当前可信需求的可信性增强规范,生成流程如图4所示。

图4 软件可信性增强规范生成流程Fig.4 Process for generating software trustworthiness enhancement specification

4 应用验证

将该方法在某嵌入式软件中进行了应用验证,建立了基于多维属性的软件可信性评估模型。评估模型包含6个属性,9个子属性,26个度量元,30个度量指标,从第三方测试数据中采集可信证据实现了对软件可信性的定量评估。评估结果及可信性分析如下。

4.1 软件可信性水平

第三方测试后软件的可信性为7.85,对应的软件可信级别为Ⅱ级。

4.2 可信特征对软件可信性的贡献

属性、子属性、度量元对软件可信性贡献情况如图5~图7所示。

图5 属性对软件可信性贡献Fig.5 Contribution of attributes to software trustworthiness

图6 子属性对软件可信性贡献Fig.6 Contribution of sub-attributes to software trustworthiness

图7 度量元对软件可信性贡献Fig.7 Contribution of metrics to software trustworthiness

由图5~图7可知,对软件可信性贡献最大和最小的属性分别为功能性、可维护性,贡献最大和最小的子属性分别为功能适合性、可维护性易分析性,贡献最大和最小的度量元分别为防危性符合、强度符合性测试完整。

4.3 影响软件可信性的关键可信特征

属性、子属性、度量元对软件可信性实际贡献与理想贡献占比情况如图8~图10所示。

图8 属性对可信性实际贡献与理想贡献占比Fig.8 Proportion of actual and ideal contributions of attributes to trustworthiness

图9 子属性对可信性实际贡献与理想贡献占比Fig.9 Proportion of actual and ideal contributions of sub-attributes to trustworthiness

图10 度量元对可信性实际贡献与理想贡献占比Fig.10 Proportion of actual and ideal contributions of metrics to trustworthiness

由图8~图10可知,实际贡献与理想贡献占比最小的属性、子属性、度量元分别为实时性、实时性处理及时性、处理及时性符合。实时性、实时性处理及时性、处理及时性符合为影响软件可信性的关键可信特征,可信增强的优先级最高。

4.4 软件可信性增强策略

制定自底向上可信增强策略,根据度量元实际贡献与理想贡献偏差,选择计算准确性符合、防危性符合、强度符合性要求符合、错误处理规则符合、处理及时性符合5个度量元作为底层可信性增强目标,将度量元可信值分别提升1,单个度量元可信性增强带来的软件可信性提升情况如图11所示。

由图11可知,将单个度量元可信性同等增强,防危性符合增强带来的软件可信性提升最大,增强效果最明显,计算准确性符合增强效果最差。将5个度量元可信性同时增强,软件可信性增强到8.32,可信等级为Ⅲ级。

图11 度量元可信性增强带来的软件可信性提升Fig.11 Software trustworthiness improvement caused by enhanced trustworthiness of metrics

4.5 软件可信性增强规范

通过对软件进行深入可信性分析,并依据可信特征与可信证据的追溯关系,发现软件在可信需求方面存在明显不足,针对性生成可信性增强规范如表2所示。

以上评估分析结果准确性较高,符合软件研制实际情况,该软件仍处于试样阶段,软件需求和代码版本变更频繁,技术状态不稳定,不具备出厂放行、验收交付条件。经过可信评估分析,有效促进了下一阶段软件可信性的增强。

表2 软件可信性增强规范

5 结论

针对传统软件可信性评估方法的不足,提出了一种面向第三方测试的装备软件可信性评估方法,建立了基于多维属性的软件可信性评估模型,采用统一的可信证据分析度量方法保证模型输入的一致性和规范性,对评估过程和结果信息开展深入可信性分析,形成可信增强策略和规范,评估准确性较高,工程实用性强,能够为研制改进、管理决策提供有效支撑。对于可信评估过程中存在的复杂可信需求验证、可信证据冲突情况下的证据融合等问题将在后续研究中解决。

猜你喜欢
可信性度量贡献
鲍文慧《度量空间之一》
基于可信性的锅炉安全质量综合评价研究
中国共产党百年伟大贡献
2020:为打赢脱贫攻坚战贡献人大力量
代数群上由模糊(拟)伪度量诱导的拓扑
突出知识本质 关注知识结构提升思维能力
度 量
Five golden rules for meeting management
会计信息相关性及可信性
基于AIS信用理论的电商云会计可信性实例分析