1、1大型电子系统工程软件可靠性评估方法初探【摘要】我们有必要深入研究软件的可靠性评估和测试方式,以保证软件系统的质量。本文结合工程软件的自身特点,对软件可靠性的基本概念以及测试软件可靠性的过程进行了简要叙述,提出了一种适用于大型电子系统工程软件的可靠性定量评估方法。 【关键词】评估方法;软件可靠性;电子系统 对于软件可靠性的研究至今已经有几十年的历史,也取得了一定程度的进展,研究软件的可靠性是当前时代的一个前沿科技课题,软件的可靠性研究就目前的情况来看还不够成熟,与实际的工程应用之间还存在着一定的差距,还处于理论研究的探索阶段。传统的软件可靠性模型由于多种因素,导致在实际工程中软件可靠性模型无法
2、直接应用,当前一种用于工程软件可行的可靠性定量评估方法是我们所缺少的。 一、软件可靠性评估的基本概念 软件的可靠性包括以下三个主要要素: (1)规定的环境条件 软件的运行环境指的就是环境条件。其涉及到如操作系统、输入数据格式域范围、支持硬件、操作规程、其他支持软件等软件系统运行时所需要的各种支持要素。软件的可靠性在不同的环境条件下是有所差异的。规定的条件具体来说主要是描述在软件系统运行的过程中对输入数据的要求以及计算机的配置情况,其他因素并假定都是理想因素。对环2境条件进行了明确的规定,可以判断出软件失效的责任是在研制方还是使用方。 (2)规定的时间 运行时间可以作为规定时间的定量,因为软件可
3、靠性所体现的只是其运行阶段。软件系统在运行后挂起与工作的累计时间是运行时间的主要内容。此外,选取程序路径和软件的运行环境由于具有随机性,因此软件的失效为随机性事件,运行时间也就相应的属于随机变量。 (3)规定的功能 规定的工程和任务与软件的可靠性也有着重要的关系。软件的运行剖面会由于所要完成的不同任务而有所区别,其调用的子模块因此也有所不同,可靠性也因此有可能不相同。因此,必须要先明确其功能和任务,这样才能准确对软件的可靠性进行度量。 说到软件可靠性评估就少不了软件可靠性模型。建立的数学模型和可靠性框图用以估算或预计软件的可靠性,可靠性模型的建立是为了便于定量分配、估算、预计以及评价复杂的系统
4、可靠性,为了将较为复杂的系统可靠性逐层分解为较为简单的系统可靠性。 二、测试软件可靠性的过程 测试软件可靠性的完成过程应该包括:设计测试用例、测试实施、编写测试报告、测试前检查以及可靠性数据的收集。 (1)测试前检查 在工程软件可靠性正式测试之前,研制任务书与软件需要要检查是否一致,检查程序与文档的一致性,数据、相应的软件支持环境、所交3付的程度要检查是否符合要求,软件研制过程中所形成的文档要检查其是否齐全,文档的完整性与准确性要检查是否已经通过了相关的评审。软件研制过程中形成的文档,根据软件行业的相关标准共有 16 种:软件开发计划 、 计算机资源综合保障手册 、 接口需求规格说明 、 软件
5、程序员手册 、 软件设计文档 、 计算机系统操作员手册 、 版本说明文档 、 软件测试说明 、 系统和段设计文件 、 固件保障手册 、软件需求规格说明 、 软件用户手册 、 接口设计文档 、 软件测试报告 、 软件产品规格说明 、 软件测试计划 。其中软件测试说明 、软件测试报告以及软件测试计划 ,在这里需要注意,是在研制过程中研制方进行测试所形成的测试文档。如果软件的规模不是特别大,原则上来说,是可以将某些文档合并的。虽然进行测试前检查增加了一定的工作量,但是为了提高软件的质量以及及早发现一些错误,进行检查是非常必不可少的一个环节。 (2)测试用例设计 针对组合功能或者是特定的功能设计测试方
6、案,并且将其编写成文档,这就是我们所说的设计测试用例。选择测试用例时要注意,要包括一般情况,也要包括最小与最大边界情况以及极限情况。在选择数据和测试用例时,要尽量考虑那些比较容易发现缺陷的数据和测试用例,因为进行测试的目的就是找出隐藏在软件中的缺陷,要结合复杂的运行环境,确定所有可能的输出条件与输入环境中的测试数据,对软件是够能够产生正确的输出进行检查。一个标准的测试用例应该包括以下信息:待测试的功能; 测试日期; 评价输出结果的准则;测试步骤; 测试目4标; 预期的输出; 测试输入。此外,测试用例要在经过专家评审后方可投入使用。对测试用例进行描述是选择和设计测试用例集的第一步,这种描述是否完
7、整、规范化、可理解、权威,决定了试验鉴定人员、软件研制人员、操作人员在多大程度上或者是能否理解和接受该测试用例。因此,在软件的评估与测试中规范化的测试用例描述具有非常重要的意义。 (3)实施测试 上述准备就绪后,便可以进行具体测试。用户稳定、数据、说明书、程序等于可靠性质量特性有关的部分交付的所有软件文档部分,都应该按照质量需求和需求说明进行测试。数据和程序,在需求说明书、用户文档、项目合同中规定的所有配置情况进行测试。可以在测试的过程中考虑进行强化输入。在强化输入下如果软件可靠,那么就说明在正规输入下要更加可靠。我们应该采用多台计算机同时运行软件,进一步增加累计运行时间,以获得更多的可靠性数
8、据。 (4)收集可靠性数据 可靠性评估的基础就是软件可靠性数据,应该建立软件错误分析、错误报告、错误纠正系统。可靠性数据和软件错误报告的保存、收集、处理、分析规程,按照相关的标准要求进行制定与实施,对测试阶段软件的可靠性数据和错误报告进行准确完整的收集与记录。软件可靠性数据如果用时间定义,那么可以分为四类:记录发生一次失效所累计的时间为第一失效时间数据;记录上一次与本次失效之间的间隔时间,为第二失效间隔时间数据;记录某个时间区内发生了多少次失效,为第三分5组数据;记录某个区间内的累积失效数,为第四分组时间内的累积失效数。这四类数据是可以进行相互转化的。每个测试记录都必须要包含充分的信息,主要包
9、括:便有测试用例的测试说明或测试计划;参与测试的个人身份;测试时间;包括所有测试时发生的故障在内的,与测试有关的所有测试结果。 (5)测试报告的编写 软件可靠性测试报告,在完成测试活动后是必须要编写的,要对在测试报告中对测试结果以及测试项目进行归纳和总结。可以参考相关的规范格式进行编写,同时要根据具体情况进行剪裁。测试报告应该具有以下主要内容:软件和硬件的使用配置;用户文档、数据和程序的测试结果、产品说明;测试的最终日期;产品标识;与需求不相符合的项目列表;使用的文档。这种规范化的过程控制管理,可以为最终得到客观的评估结果奠定基础,有利于获得真实有效的数据。 总结:本文对软件可靠性的基本概念以
10、及测试软件可靠性的过程进行了简要叙述。完全用现场试验的方法可以说是最好的评估软件可靠性的方法。对软件的可靠性进行评估受到很多条件限制,其中可靠性信息的不足是最大的限制。这就需要:明确软件与各模块的可靠性关系;软件研制部门的配合;收集足够的各模块和软件历史可靠性试验信息;以及已知的各模块寿命类型。 参考文献 1石柱.基于模糊技术的软件质量评价及可靠性评估D.北京: 北京航空航天大学, 2000(03). 62王强,陆阳,方欢,朱晓玲.基于结构分析的复杂软件可靠性评估方法J.2013(04). 3陈敏,汤晓安.航天器计算机系统中软件的可靠性评估方法研究J.2004(08). 4石柱,何新贵.遇今一种基于模糊数算术运算的可靠性分析方法J.系统工程与电子技术,1999(09).