基于框图评估方法的软件测试的可靠性评估原则*

2019-07-08 01:55田立军
舰船电子工程 2019年6期
关键词:该软件特性可靠性

田立军 丁 楠

(1.中国人民解放军91404部队 秦皇岛 066001)(2.河北建材职业技术学院 秦皇岛 066001)

1 引言

软件评估的实质是对软件质量的度量与评价。对软件质量评估的定义是“为了确定某一特定的软件模块、软件包或软件产品是否验收合格或发布而把特定的评估准则应用到该软件模块、软件包或软件产品上去的活动”[1]。定义中提到的评估准则,包括了评估方法和指标体系,即如何处理获得的测试数据与如何应用准则到被评估软件上。

软件测试所得到的数据经过处理以后,可以用来作为评估软件系统是否满足用户需求的依据。软件质量评价特性主要有[2]:功能性、可靠性、易用性、效率性、可维护性、可移植性。其中每一个质量特性都分别与若干子特性相对应。

对于规定任务的装备应用软件,其完成任务的程度是可以测试并度量的,对装备应用软件的测试和评估,主要是考核在各种输入条件下,被测软件的行为及其满足需求的程度[3]。

2 软件评估指标的选取原则

按照统计理论,对装备软件在接近实战态势下进行试验是对试验函数的一种采样[4]。而实验室仿真测试通过计算机模拟产生试验环境参数和目标参数,同样也是试验函数的一种采样方式。显然,当仿真测试较充分时,就可以得到试验函数的估计,这种估计同样可以揭示被试软件的功能、性能和可靠性等统计指标。

选择合适的指标体系并使其量化是软件测试与评估的关键。评估指标可以分为定性指标和定量指标两种。指标的确定一般是采用自顶向下的方法逐层分解[5],并且需要在动态过程中反复综合平衡。

在进行装备软件的测试与评估时,主要侧重于功能性、可靠性、易用性和效率特性等几个方面。在评价活动的具体实施中,把软件的研制任务书等作为主要依据,采用自顶向下逐层分解的方法,并参照有关国家标准和军用标准进行[6]。

2.1 功能性指标

功能性是装备软件最重要的质量特性之一,可以细化成完备性和不确性。对装备软件的功能评价主要采用定性评价方法。

1)完备性。完备性是与软件功能完整、齐全有关的软件属性。如果软件实际完成的功能少于或不符合研制任务书所规定的明确或隐含的那些功能,则不能说该软件的功能是完备的[7]。

2)正确性。正确性是与能否得到正确或相符的结果或效果有关的软件属性。软件的正确性在很大程度上与软件模块的工程模型(直接影响辅助计算的精度与辅助决策方案的优劣)和软件编制人员的编程水平有关。

对这两个子特性的评价依据主要是装备软件功能性测试的结果,评价标准则是软件实际运行中所表现的功能与规定功能的符合程度。在软件的研制任务书中,明确规定了该软件应该完成的功能,进行验收测试的装备软件就应该具备这些明确或隐含的功能。

目前,对于软件的功能性测试主要采用解答标准测试用例的办法。即针对每种功能设计若干典型测试用例,软件测试过程中运行测试用例,然后将得到的结果与已知标准答案进行比较。所以,测试用例集的典型性和权威性是功能性评价的关键。

2.2 可靠性指标

可靠性可以细化为成熟性、稳定性、易恢复性等[8]。对于软件的可靠性评价主要采用定量评价方法。即选择合适的可靠性度量元(可靠性参数),然后分析可靠性数据而得到参数具体值,最后进行评价。经过对软件由可靠性细化分解并参照研制任务书,可以得到软件的可靠性性度量元(可靠性参数)。

1)可用度。可用度指软件运行后在任意一个随机时刻需要执行规定任务或完成规定功能时,软件处于可使用状态的概率。可用度是对应用软件可靠性的综合(即综合各种运行环境以及完成各种任务和功能)度量。通常可用度用A表示,其计算方法为

2)初期故障率。指软件在初期故障期(一般以软件交付给用户后的一个月内为初期故障期)内单位时间的故障数。一般以每100小时的故障数为单位。可以用它来评价交付使用的软件质量与预测什么时候软件可靠性基本稳定。初期故障率的大小取决于软件设计水平、检查项目数、软件规模、软件调试彻底与否等因素。

3)偶然故除率。指软件在偶然故障期(一般以软件企付给用户后的四个月以后为偶然故障期)内单位时间的故障数。一般以每1000小时的故障数为单位,它反映了软件处于稳定状态下的质量。

4)平均故障间隔时间(MTBF)。指软件在相继两次失效之间正常工作的平均统计时间。在实际使用时MTBF通常是指当n很大时,系统第n决失效与第n+1次失效之间的平均统计时间。

国外软件的MTBF大体在1000h左右。对于高可靠性的军用装备软件,则要求在1000h~10000h之间。

5)缺陷密度(FD)。指软件单位源代码中隐藏的缺陷数量。通常以每千行无注解源代码为一个单位。一般情况下,可以根据同类软件系统的早期版本估计FD的具体值。如果没有早期版本信息,也可以按照通常的统计结果来估计。典型的统计表明,在开发阶段平均每千行源代码有50个~60个缺陷,交付后平均每千行源代码有15个-18个缺陷。

6)平均失效恢复时间(MTTR)。失效恢复时间为排除故障或系统重新启动所用的时间而不是对软件本身进行修改的时间(如嵌入式软件,因软件己经固化在机器内,修改软件势必涉及重新固化问题,而这个过程的时间是无法确定的)。

2.3 易用性指标

易用性可以细化为易理解性、易学习性和易操作性等。这三个特性主要是针对用户而言的。对装备软件的易用性评价主要采用定性评价方法。

1)易理解性。易理解性是与用户认识软件的逻辑概念及其应用范围所花的努力有关的软件属性。该特性要求装备软件研制过程中形成的所有文档语言简练、前后一致、易于理解以及语句无歧义。

2)易学习性。易学习性是与用户为学习软件应用(例如运行控制、输入、输出)所花的努力有关的软件属性。该特性要求研制方提供的用户文档(主要是《计算机系统操作员手册》、《软件用户手册》和《软件程序员手册》)内容详细、结构清晰以及语言准确。

3)易操作性。易操作性是与用户为操作和运行控制所花的努力有关的软件属性。该特性要求战术应用软件的人机界面友好、界面设计科学合理以及操作简单等。

2.4 效率特性指标

效率特性可以细化成时间特性和资源特性[9]。对软件的效率特性评价采用定量方法。

1)输出结果更新周期。输出结果更新周期是装备软件相邻两次输出结果的间隔时间。

2)处理时间。处理时间是装备软件完成某项功能所用的处理时间(注意:不应包含人机交互的时间)。处理时间越短则对指挥员做出正确决策越有利,抓住战机的概率越大。

3)吞吐率。吞吐率是单位时间软件的信息处理能力(即各种目标的处理批数)。未来的战场态势复杂、信息众多,装备软件必须具有处理海量数据的能力[10]。吞吐率就是体现该能力的参数。随着现代战争中信息源的不断增多,要求装备软件的吞吐率应至少达到数百批。

4)代码规模。代码规模是软件源程序的行数(不包括注释)属于软件的静态属性。软件的代码规模过大不仅要占用过多的硬盘存储空间,而且显得程序不简洁、结构不清晰,容易存在缺陷。

因为这些参数属于软件的内部表现,所以需要用专门的测试工具和特殊的途径才可以获得。将测试数据与研制任务书中的指标进行比较,得到的结果可以作为效率特性评价的根据[11]。

3 实例分析

3.1 定量计算模型

本文运用框图评估方法求得软件的任务可靠度,应用该方法描述了软件在执行某单项任务情况下的可靠性。

应用框图评估方法的前提:

1)已经得到了各个功能模块的可靠性参数(主要是失效率λ);

2)各个功能板块的寿命为指数分布,即满足公式:

根据软件寿命的指数分布规律,在按照软件运行剖面做随机输入(或实际使用)时,如果软件不作更改而且是无容错的,则软件的寿命为指数分布。由此可知软件的测试与评估恰好满足条件[12]。

在计算软件的可靠度之前,还需要进行参数变换,将测试的数据转换为与可靠度计算有关的数据。在软件的单元测试中能够得到模块可靠性参数MTTF(平均失效的时间,其度量方法即GJB451-90《可靠性维修性术语》中所述的“在规定的条件下和规定的时间内,产品的寿命单位数与故障总次数之比”,MTTF常记作θ),这时要将MTTF转化为模块的失效率λ(λ=1/θ),进而得到所有功能模块的可靠度函数:

这样,根据等效模型,最终可以计算出软件的可靠度。

3.2 实例分析

根据某系统试验软件的组成,可以将该软件分解为侦察、干扰、告警、通信、指挥决策六个模块。该软件执行一次任务(有源干扰)的基本流程见图1。

图1 有源干扰程序控制基本流程图

软件在运行中调用了侦察、有源干扰、指挥3个模块,其可靠性模型属于简单串联模型,可靠度计算为

假设在测试过程中该软件同时在50台目标机中运行,运行环境满足规定条件,全部运行该的测试用例,为避免重复,每个测试用例对频率、脉宽、极化方式等参数设定均不同。每天开机时间为20h,连续运行10天,则累计测试时间最多可以达到10000h。对于每一个失效不采取修改措施记录下这10000h内的失效数据。

设在软件的单元测试中得到的测试数据如表1。

表1 模块单元测试数据

相应的平均失效前时间MTTF、失效率λi和可靠度Ri(t)分别如表2。

表2 模块单元测试计算结果

于是得到该软件执行干扰任务的可靠度为

4 结语

国内可靠性的评估工作主要是从20世纪80年代开始兴起,软件可靠性的度量在软件可靠性的建模和评估中起到了十分重要的作用,但是在软件的可靠性评估方面,国内还未形成统一的标准和算法。本文通过框图评估的方法得到的软件可靠度只是一个定量的模型,基于软件可靠性的分析和度量还需要进行更多系统性的研究。

猜你喜欢
该软件特性可靠性
基于AK-IS法的航空齿轮泵滑动轴承可靠性分析
茶树吸收营养物质的特性
某重卡线束磨损失效分析与可靠性提升
讨论如何提高建筑电气设计的可靠性和经济性
简单灵活 控制Windows 10更新更方便
医疗器械可靠性研究现状与发展趋势
色彩特性
遗留或损坏 软件卸载没商量
Quick Charge 4:什么是新的?
捉拿李鬼