软件可靠性及其测试分析
- 格式:pdf
- 大小:206.43 KB
- 文档页数:3
第9卷第8期 2010年8月 软件导刊
Software Guide VO1.9 No.8 Aug.2010
软件可靠性及其测试分析
李军锋 ,任世鹏
(1.中国人民解放军91413部队,河北秦皇岛066001;2.总参陆航研究所,北京101121)
摘 要:系统分析了软件的可靠性以及目前软件可靠性测试的完整流程,重点介绍了软件可靠性评估的方法和步骤。
随着信息技术的发展,软件产品在社会生活的各个领域应用越来越广泛,其质量好坏所产生的潜在影响也越来越大。 关键词:软件可靠性;可靠性测试;可靠性评估
中图分类号:TP306+.2 文献标识码:A 文章编号:1672—7800(2010)08—0046—03
0 引言
随着计算机和软件在各行业中应用的日益广泛和深入,软
件故障正逐渐成为导致计算机系统失效和停机的主要因素。
一些重要领域,例如军用作战系统、民航指挥系统、银行支付系 统等,一旦发生严重级别的软件失效,轻则造成经济损失,重则
危及人们的生命安全,甚至国家安全。因此,发展以发现软件可 靠性缺陷为目的的可靠性测试技术迫在眉睫。
1软件可靠性的定义
在规定的条件下,在规定的时间内,软件不引起系统失
效的概率,该概率是系统输入和系统使用的函数。也是软件 中存在的缺陷函数。系统输入将确定是否会遇到已存在的缺
陷。在规定的时间周期内,在所述条件下程序执行所要求的功
义的相应部分作一些调整即可,如删除承办活动以及和该活动 有关的关联信息、将表示不通过承办的关联作相应的更改即
可。 (2)增加一个流程节点如在公文流转中分办和办结中增加
一个处室领导签字的节点.在这种情况下首先要对过程定义的
相应部分作一些调整,如增加一个处室领导签字的活动,并更 改相应的关联信息,再利用系统的模板和组件制定该节点所对 应的应用。通过以上的分析可以有以下结论:系统能够灵活地 定义过程、方便地定制应用,在业务流程发生改变的时候仅对 系统作少量的调整即可适应新的流程。
4结束语
随着应用规模和功能的不断增大和调整,业务流程日趋复 杂,基于工作流技术的应用系统必将是将来软件技术的发展方 向之一。本系统面向应用需求,遵循工作流系统相关标准,并结
合轻型工作流引擎的特点,具有良好的开放性、可重用性和一 定的灵活性,可应用于各种办公软件系统以及电子商务系统 中。今后将对轻型工作流引擎系统作进~步的研究,主要有以
下研究内容:①继续完善模型及应用构件库.对工作流描述语 言作扩充。解决需求更新下的软件进化和重用.建立完整的系
统;②分布式工作流。为了支持跨企业的异构计算环境下大规
模工作流管理,现有WFMS必须从各个方面加以扩展。
参考文献
[1] 史美林,杨光信,向勇,等.WFMS:工作流管理系统[J].计算机学 报,1999(3). [2]Workflow Management Coalition Terminology&Glossary[DB/OL]. http://www.aiim.org/wfmc/standard/glossary.pdf,1999. [3] Workflow Management Coalition,Workflow Reference Model[DB/ OL].http://www.aiim.org/wfmc//standard//tc003v11.pdf,1995. [4]石伟,范玉顺,吴澄.分布对象环境下工作流执行系统设计[J]. CIMS,1998(12). [5] 范玉顺.工作流管理技术基础[M].北京:清华大学出版社,2001. (责任编辑:余晓)
作者简介:李¥:f ̄(1983一),男,陕西华县人,91413部队助理工程师,研究方向为软件测试;任世鹏(1983一),男,内蒙古通辽人,总参陆航研究所助 理工程师.研究方向为计算机仿真工程。
第8期 李军锋。任世鹏:软件可靠性及其测试分析 ・47・
能的能力。
2软件可靠性测试
软件可靠性测试是软件测试的一种形式,是针对软件的
某个重要质量特性。使用一定的测试用例对软件可靠性进行
测试的过程,其目的可归纳为三个方面:①发现软件系统在需
求、设计、编码、测试、实施等方面的各种缺陷;②为软件的使
用和维护提供可靠性数据;③确认软件是否达到可靠性的定
量要求。 软件可靠性测试由可靠性目标的确定、运行剖面的开发、 测试用例的设计、测试实施、测试结果的分析等主要活动组成,
完整的可靠性测试过程如图1所示。
图1软件可靠性测试过程 2.1定义运行剖面
要得到准确的软件可靠性估计必须像在现场真实使用一样 对软件进行测试。运行剖面就是定量地刻画软件使用的方式。 软件运行剖面(欧空局):对系统使用条件的定义,即系统 的输入值用其按时间或者它们在可能输入范围内的出现概率 的分布来定义:运行剖面={运行,发生的概率}c 如X、Y为两个不相交的元素,发生的概率分别为0.8、0.2, 则剖面为:{X,0.8}、{Y,0.2}。
以银行的ATM系统为例,剖面定义如图2所示。
图2 ATM活动运行剖面 2.2可靠性测试用例设计
一个典型的测试用例包括以下组成部分:①测试用例标 识;②被测对象;③测试环境及条件;④测试输入;⑤操作步骤; ⑥预期输出;⑦判断准则;⑧测试对象的特殊需求。
可靠性测试的主要目的是评估软件系统的可靠性.因此除 了一般情况之外,还要着重考虑和可靠性密切相关的一些情 况.如表l所示。 表1可靠性测试用例设计应重点考虑的一些特殊情况
序号 测试项目 描述
1 屏蔽用户操作错误 喜 用户常见的错误错作的提示和屏
2 错误提示的准确性对用户的错误提示准确程度
3 冀霉盏 导致系统有无操作错误引起系统异常退出的情况
4数据可靠性
5 异常情况的影响 系统是否对输入数据进行有效性检查, 对冗余数据进行过滤、校验和清洗,保证 数据正确性和可靠性
考察数据和系统受影响程度,受损是否 有补救措施。补救的情况如何,包括:硬 件故障、网络故障、部分软件模块失效。
2.3可靠性测试的实施 可靠性测试的难点在于判断测试用例的运行成功与否。在
控制系统及其类似的软件中,失效通常由详细说明、CPU时间 或者时钟时间来客观定义。而一般应用系统 失效的定义需要 引入主观性因素,不仅取决于程序是否符合需求说明的要求,
也取决于指定的性能是否能达到用户的期望。 软件的可靠性数据是可靠性评价的基础。应使用多台计算 机同时运行软件,增加累计运行时间,来获得更多的可靠性数 据。用时间定义的软件可靠性数据主要有以下几类:①失效时
间数据,发生一次失效所积累经历的时间;②失效间隔时间数 据,两次失效的时间间隔;③分组时间内的失效数,某个时间段 内发生的失效数;④分组时间累积失效数,到某个区间的累积
失效数。此外,要在测试过程中如实、规范地记录这些数据,以
便为得到客观的可靠性评价奠定基础。 2.4软件可靠性评估 软件可靠性的评估过程包括三个阶段的内容:选择可靠性 模型、收集可靠性数据、可靠性评估和预测。 2.4.1 软件可靠性模型
软件可靠性模型的基本组成有:模型假设、性能度量、参数 估计方法和数据要求。下面以广义指数模型为例进行详细介
绍。 广义指数模型,是GB/T 15532—2008《计算机软件测试规 范》推荐的四种软件可靠性模型之一,它将几个众所周知的模 型表归纳为一个形式,用一组公式来表示有指数危险的若干模
型,以简化建模过程。它的主要概念是,失效发生率正比于软件 中残留的故障数,在两次失效之间失效率保持恒定,且每个故 障被排除之后失效率降低相同的量,可以用来预测:①经过给 定的时间将发生的失效数;②软件生存期内发生失效的最大 数;③在给定时间之后将发生失效的最大数;④在给定时间以
前所纠正的故障数;⑤纠正给定数目故障所需的时间。
(1)模型假设 广义指数模型的基本假设是:①失效率正比于程序当前含 有的故障数;②所有失效发生概率相等且相互独立:③每个失
效的严重性级别相同;④软件的运行方式与预期的使用方式相 似;⑤引起失效的故障都被立即纠正且不引入新的故障。
・48・ 软件导刊 2010正
(2)函数表达式 从简单的软件危险函数开始,即
Z(x)= [E『E( )] (1) 其中:x是测定项目进展的时间或资源变量;E。是程序中
将引起失效的初始故障数;Ec是花费x单位的时间或工作量, 能够发现并纠正的故障数:K是比例常数:每个资源单位或者 时间单位,每个残留故障所引起的失效数。
则残留故障数Er可以表示为:
Z( )/K=[点l『丘( )] (2) (3)参数估计 采用矩量法.在两个不同的X值处将均值匹配。设总运行 数为n,成功运行数为r,失效前时间序列为tl、t2、…、tn—r,无
效运行时间序列为T1、,I’2、…、Tr,得到:
)= = (3)
其中:
H:∑ ∑ (4) i=l 1 取两个不同的时刻:
z( ,) K[Eo-Ec( )]
’ z( :)= K[Eo-Ec( z)]
联立(5)、(6)方程式求解,得到参数估计量
: ‘Z(x2) 符合实际的情况。 2.4.2可靠性数据的收集
可靠性数据主要是指软件失效数据.是软件可靠性评价的 基础,主要是在软件测试、实施阶段收集的,在软件工程的需
求、设计和开发阶段的可靠性活动,也会产生影响较大的其他 可靠性数据。可靠性数据的收集工作必须贯穿于整个软件生命
周期。 受软件开发过程中的复杂性以及潜在因素的影响.可靠性
数据的收集工作往往比较困难。首先,需要及早确定所采用的 可靠性模型,以确定需要收集的可靠性数据,并明确定义一些 术语和记录规范,如时间、失效、失效严重度等。同时,还要制定
可实施性较强的可靠性数据收集计划,抽取部分开发人员、质 量保证人员、测试人员、用户业务人员参加。 2-4.3软件可靠性的评估和预测 软件可靠性评估和预测以软件可靠性模型分析为主,同时 作为可靠性模型的补充、完善和修正,也要在模型之外运用一
些统计技术和手段对可靠性数据进行分析。
3结束语
, 软件可靠性是软件质量指标体系中极为重要的质量指标
… 之一,软件可靠性指标的高低直接决定了软件是否能稳定、可 一 靠地工作。软件系统和软件测试过程高度复杂,影响软件可靠
性行为的因素有许多。基于数学模型的软件可靠性测试也不是 万能的.目前不可能将软件系统中存在的错误都排除。但是,经 (7) 过可靠性测试的软件系统可以大大降低因软件失效而造成的 损失
霞 兰  ̄EZ( x2 )一- Z(X l) (8)参考文献
受到建模计算等的限制,各个模型或多或少存在一定的缺 陷。比如广义指数模型,它不考虑每个失效可能依赖于其他失
效、假设故障纠正过程中不引入新的故障等,这些在实际软件 系统中是很难做到的。因此,在选择、设计使用模型的时候我们
应该考虑多方面的因素,既要做合理的假设,也要避免严重不 [1]柳纯录.软件评测师教程[M].北京:清华大学出版社,2005. [2] 蔡开元.软件可靠性工程基础[M].北京:清华大学出版社,1995. [3] 徐忍佐.软件可靠性模型及应用[M].北京:清华大学出版社, 1994. [4]郑人杰.计算机软件测试技术[M].北京:清华大学出版社,1992. (责任编辑:周晓辉)