高菲
摘要 :软件可靠性测试是旨在保证用户可以正常运行软件,软件设计者需要在开发阶段对软件的可靠性水平进行评价,并验证产品软件达到开发者预定的可靠性要求的有效途径。从软件可靠性测试中暴露出来的,软件不同功能存在的不同程度的缺陷,开发者对其进行相应的纠错和排错措施后,可以令软件的可靠性产生不同程度的提高。
关键词 :软件测试需求分析 流程 应用分析
软件的可靠性测试旨在发现程序中对软件可靠性存在影响的隐患。软件可靠性测试前需要确定软件操作的流程,而如何准确定位每一步操作的位置也是一项亟待解决的难题。与此同时,很多测试方法对于软件可靠性测试中存在的数据失效故障,也未做级别考虑,造成不同程度的故障,被同等以待,并且将这些故障模型直接输入在软件可靠性模型中,也未显示出故障的影响程度,势必会造成测试评估结果与实际使用过程中产生问题的吻合程度低,最终导致软件可靠性模型有效性降低。本文通过对软件可靠性测试的流程和在软件可靠性模型中应用的对比分析,来发现该过程有效解决问题的着手点,并提出相应的改进措施。
一、 软件可靠性测试的内涵
1、软件可靠性测试定义
软件可靠性是指测试人员在与用户类似的运行条件下,并在运行时间内,测得的软件不会引起系统运行失效的频率。可靠性测试即指在该软件较为普遍的使用环境中,为得到软件正常运行的概率而对软件运行有效性进行的测试,这个测试过程也是为保证软件能够正常运行所进行的一项验证性测试。常用方法是按照实际应用的预估数据对软件使用情况描述并对软件功能进行随机测试,规定测试软件有三个时间段:(1)软件开发阶段(2)确认测试阶段(3)软件部署阶段
二、 对软件的可靠性测试流程设计分析
软件可靠性测试是旨在保证用户可以正常运行软件,软件设计者需要在开发阶段对软件的可靠性水平进行评价,并验证产品软件达到开发者预定的可靠性要求的有效途径。从软件可靠性测试中暴露出来的,软件不同功能存在的不同程度的缺陷,开发者对其进行相应的纠错和排错措施后,可以令软件的可靠性产生不同程度的提高。软件可靠性测试共分为两种:可靠性验证测试和可靠性增长测试,这两种测试的主要区别在于,验证性测试对软件测试过程中表现出的故障不进行改正,而本文为了便于研究仅取用验证性测试的流程分析数据。
1、 可靠性测试需求分析
软件可靠性测试的目的是为了发现软件在开发过程中出现的错误而对程序采取执行措施的过程,同时软件的测试是要根据软件开发过程的不同时期的需要和程序整体结构的完整性而精心设计的测试用例集合,通过对这些测试用例的运行情况分析以发现程序中设计上或者程序中的错误。
2、 可靠性测试先期条件
完善的软件可靠性测试流程设计,对提高软件可靠性测试的工作效率有极大的帮助作用,这个作用主要表现在这几点:(1)合理划分和整体规划软件可靠性测试的工作进程,有利于参与软件可靠性测试的人员明确自己的职责内容,有利于测试人员按照设计计划井然有序地完成各自的测试任务;(2)根据软件可靠性测试的积累经验表明,软件内容复杂、缺陷类型多样,测试手段也需要随之变化,因此很难在规定时间内完成全部测试工作;所以在这种条件下,我们需要以个设计合理的流程计划来帮助测试如期顺利完成;(3)流程化、工程化的软件可靠性测试流程, 有利于软件测试的管理人员对软件可靠性测试的过程科学地规划,并统筹管理。综上所述,不难发现软件可靠性测试的必备条件,除了有效的测试环境、必备的功能测试软件和和谐的测试人员团队,更需要有一个可靠的测试流程。
3、 可靠性测试流程
基于对上述可靠性测试的需求分析和概念理解,我们可将可靠性测试流程暂定义为三部分:可靠性测试准备、可靠性测试执行和可靠性测试结果分析。
测试执行阶段的步骤简单,仅分为运行、数据收集和测试停止,但是每个步骤需要注意的问题还有很多:
运行部分工作需要注意测试过程虽然只需要根据准备工作时生成的脚本运行,但是需要注意测试工具在测试进行时是否能够自动记录下测试用例执行的时间数据和软件缺陷信息,保证能够为测试分析提供足够数量的原始数据。同时,测试工作人员需要尽可能的详细的编写测试日志,要包括:测试编号、用例编号、测试标题、测试人员签名、计划和实际的运行时间、产生问题的单号等。
三、 可靠性测试应用举例
测试的内容涵盖软件的安装方便性、服务可靠性、软件应用性能、维护便捷性以及软件运行文档等方面的失效率测试。
1、 正交试验法
正交法是以概率论和数理统计做理论基础,并利用现成正交表格安排的多因素实验法。这种试验法中的正交表形式整齐、搭配均衡,其标记形式为。其中L代表正交表符号、n代表实验次数,或正交表的行數、t代表正交表列数、q代表单个因子水平数。
2、 对比实例算法优缺点
正交法的优点是它的均衡性和整齐可比性可以使用较少的实验次数达到相同优化目的,也可以最大程度地避免其他因子的干扰,使得同一个因子在不同的水平之间具有可比性;统一抽样的方式具有代表性,确保每个类均被测试并达到一定的程度;测试用例融入到统一抽样的方法中,使得测试人员有可能对各因素的优先级进行附加测试。
虽然正交实验法的特性使得它在可靠性测试中具有较好的测试效果,但是这种测试方法仍存在需要改进的地方:软件测试中的正交实验法需要将全部因素的组合情况以穷举法全部列出,代价较高;测试水平仅为基类之间的交互,导致用例少;在这种实验方法下,测试人员的测试用例选取数目较为任意,并非统计的随机抽样。
3、 改进正交测试方法
本文拟用一种针对正交实验测试法的改良措施——测试用例精简算法,对测试需求集进行规则简约并去掉冗余测试用例,进而得到测试用例的精简集合。其步骤如下:
(1)根据正交实验设计对操作剖面简化结构,并第一次获取测试用例集合;
(2)从双方签订协议中提取软件测试需求并生成测试需求与测试用例关系结构,并根据次关系结构精简冗余测试用例,第二次得到简约后的测试用例集合;
(3)重新建立操作剖面并对关键操作过程进行监督。
4、 改进效果分析
我们以某一电机的操作控制系统软件做效果分析实例。该电机系统的主要功能项为系统初始化、电机控制功能和紧急关闭功能。使用普通的算法时,整个测试过程使用986个测试用例,在测试过程中,共有7个失效用例,编号分别为306、361、386、543、683、890。从失效发生的频数可以推得可靠性估计值为0.9929。在使用了改进后的正交化实验算法后,我们仅使用了631个测试用例得到4个失效用例,计算得出可靠性估计值为0.9936。
四 、可靠性测试的发展分析
软件的可靠性测试的理论和方法研究方式多种多样,但是为保证实施和运用的关键性措施是对软件特性和对软件测试中出错的规律进行良好的分析和研究,并对已有的估算方法和估算模型进行个性化改良,否则软件的可靠性测试评测将会因为使用手法死板而最终走向“死胡同”。在今后可靠性测试的研究领域需要有更多的资源投入,对测试进行前期的估算和后期数据的评测起支持性作用的软件—软件可靠性测试将会是目前和未来一段时间内重要的研究方向。截至目前为止,在国内外对该项研究的内容中,对计算机硬件和计算机软件分别进行可靠性评估并最后整合为整个系统的可靠性评估的概念是个空白,也是软件可靠性测试在提高和优化方法中可以选择的另外一条途径。
参考文献:
[1] 陈春秀,马力. 软件可靠性测试技术研究[J]. 计算机工程与设计. 2010(21).
[2] 于琛琛,刘瑞方. 软件可靠性测试方法探析[J]. 国防技术基础. 2009(11).