军用软件可靠性评估技术研究
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
军用软件可靠性评估技术研究
(版权声明:本文的著作权人,对该作品拥有完整的版权,受著作权法保护。严禁任何媒体、网站、个人或组织以任何形式或出于任何目的在未经本人书面授权的情况下用于商业目的或发行,但允许非商业目的使用。)
摘要:软件可靠性是衡量软件质量的重要指标之一,软件可靠性测试和评估是提高软件可靠性的有效手段。本文针对某系统的嵌入式软件,研究了软件可靠性测试关键技术及统计方案,将软件可靠性测试评估技术应用在某嵌入式系统的软件中,通过验证软件是否满足可靠性指标要求,为评价软件质量提供定量依据。
1引言
随着数字化技术的大量应用,软件在XXX系统中的重要性越来越大,其规模和复杂性急剧增加,软件已逐步成为独立的产品。为保证软件可靠性,需要对软件进行可靠性测试和评估工作,从而可以尽早发现并改正软件中影响质量的缺陷,有效提高软件可靠性,缩短产品的研制周期和降低软件研制成本。
软件可靠性是指在规定环境下,规定时间内软件不引起系统失效的概率。软件可靠性是衡量软件质量的重要指标之一,不但与软件存在的差错有关,而且与系统输入和系统使用有关。通常来说,软件发生失效的次数越多或时间间隔越短,软件可靠性越低。
软件可靠性要求可以包括定性定及量要求。软件可靠性测试是在软件生存周期的系统测试阶段提高软件可靠性水平的有效途径。同时,软件可靠性测试也是评估软件可靠性水平,验证软件产品是否达到软件可靠性要求的重要且有效的途径。软件可靠性测试流程如图1。
图1 软件可靠性测试流程
2软件可靠性测试关键技术
1.操作剖面
操作剖面“是指对系统使用条件的定义。即系统的输入值用其按时间的分布或按它们在可能输入范围内的出现概率的分布来定义”。粗略地说, 操作剖面是用来描述软件的实际使用情况的。操作剖面是否能代表、刻画软件的实际使用取决于可靠性工程人员对软件的系统模式、功能、任务需求及相应的输入激励的分析,取决于他们对用户使用这些系统模式、功能、任务的概率的了解。操作剖面构造的质量将对测试、分析的结果是否可信产生最直接的影响。
操作剖面的分解次序为:客户-用户-系统模式-功能-操作,操作剖面构造的具体流程如下。
l)客户剖面由独立的客户类型序列构成。
客户类型是群体中以相近的方式使用系统的一个或多个客户,这些客户在使用软件的方式上与其他客户存在显著区别。客户剖面中需要为每一种客户类型确定发生概率。
2)用户剖面是用户组及其发生概率的集合,通常在客户剖面的基础上建立。
3)系统模式剖面是系统模式及其相应发生概率的一个集合。系统模式可以来源于软件的需求或使用情况分析。XXX系统软件的配置项的使用模式主要分为:协同运行、独立运行和试验台三种使用模式。
4)功能剖面是在系统模式下分解系统所需的功能,并确定每个功能的发生概率。功能剖面的构造通常需要依据软件的研制任务书或软件的需求文档,再结合运行环境的各种情况得到功能列表,并为每个功能分配发生概率。
5)操作剖面是操作及其发生概率的集合,确定操作剖面的主要步骤是列出操作并确定每个操作的发生概率。一个功能可以映射成一个或多个操作,一组功能也可以重新合并成一组不同的操作,因此能够根据功能剖面获取操作列表。
2.软件可靠性环境构建
图2 软件可靠性测试环境
软件可靠性测试环境是指为被测软件提供测试输入并采集测试输出的软硬件环境。实时嵌入式软件进行可靠性测试可以采用全数字仿真技术、半仿真模式的测试环境。为了得到尽可能真实的可靠性测试结果,实物仿真平台和系统联试等可靠性测试应尽量在真实的环境下进行,
但是在许多情况下,一般采用半实物仿真环境,如北航GESTE、德国的ADS-2航空电子设备开发仿真测试系统等。
测试环境的体系结构定义系统的组成和各个节点的定义以及它们的物理连接和数据通信协议。它同时决定了其功能是如何组织和整个测试环境的载荷是如何分布的。以下对最基本的结构进行说明。仿真测试环境的基本结构如图2所示。
1) 主机(Host)Host
通常是一台Windows NT PC机。它的主要任务是:用户命令接口;系统配置;测试用例及测试方案生成;测试脚本编写;测试过程监控;测试回放;测试结果分析和处理;可靠性评估;测试文档辅助生成;数据库管理。有时,数据库采用专门的数据库服务器。
2) 激励—仿真机
一般采用具备实时处理能力的工作站或微机,它们可以是运行实时操作系统的工作站和微机,也可以是本文后面提及的对普通操作系统进行实时扩展的微机,还包括一系列的IPO 设备(如MIL STD21553、ARINC429、ARINC629、RS2232P422、APD、DPA 等)和它们的驱动程序。其任务主要包括:解释测试脚本,对数据进行仿真处理;生成激励信号,驱动被测软件运行;接收测试数据,进行实时比较;实时显示。
3) Host和激励—仿真机的通信
通常采用以下方式进行通信:TCP/IP。
3.可靠性验证测试方案设计
可靠性验证测试是一种统计试验,测试策划阶段应选定可靠性测试统计方案。选择统计测试方案时应考虑验证指标的类别、软件的质量要求、可承受的最大测试时间、可承受得最大失效数、测试经费、费用与时间的权衡等诸多因素。针对采用成功率表示产品可靠性的验证测试,通常采用成功率的验证测试方案。所规定的成功率是一个产品将完成所要求的功能的概率或是产品在规定的条件下试验成功的概率。观测的成功率可以定义为在试验结束时未失效的产品数对试验产品总数的比值或成功的试验次数对试验总次数的比值。成功率的验证测试方案的主要参数有:
R 成功率;
N 接收所要求的固定试验数;
R 积累失效数;
R1 拒收失效数;
生产方风险;
使用方风险。
成功率的验证测试方案采用截尾序贯统计方案。
图3 截尾序贯方案示意图
通过数据收集,收集的数据包括软件的输入数据、输出结果,以便进行失效分析和进行回归测试;可靠性失效数据包括每次失效发生的时间或一段时间内发生的失效数,失效数据可以实时分析得到,也可以事后分析得到。数据收集的质量对于最终的可靠性分析结果有着很大的影响,采用了自动化手段进行数据的收集,以提高效率、准确性和完整性。
3可靠性测试结果分析
按照上述方法生成了100 个测试用例。在一台配置为研华工控机、两台台式机环境的计算机上,通过手动方式将测试用例输入到被测软件,利用一个为配合这种软件可靠性测试方法而开发的数据辅助收集软件,采集测试运行的时间与失效信息,包括测试用例序号、测试日期、测试开始时刻、测试结束时刻/ 失效发生时刻、测试运行时间、累计运行时间、失效现象等。通过测试记录下了6次失效。计算出当时提交给测试组的软件的可靠性为0.9,需要进一步提高质量。4结束语
本文通过对软件可靠性测试和评估技术进行了研究和应用,验证了软件可靠性测试和评估的有效性,可靠性测试和评估工作提供技术和范例支持对XXX系统研制工作的可行性,对后续产品开展有较大的指导意义。