基于测试用例的软件可靠性分析
作者:网络转载 发布时间:[ 2011/1/19 9:36:36 ] 推荐标签:
摘要:软件可靠性问题是软件测试中的重要难题之一,由于程序语言的复杂性以及被测程序的多样性,一直没有一个好的可靠性模型来评价它。鉴于此,提出了一个有关黑盒测试的可靠性分析模型,模型在结合等价类和边界值划分的基础上充分考虑软件复杂性、缺陷后果严重性和信息不足等因素等原因,根据矩阵和数理统计的知识得出相关的可靠性模型,并使用EM算法对该模型的置信下限做出了相应的理论证明。实验表明,该模型在实用性和可靠性方面都取得了较大的进展。
关键词:测试准则;EM算法;测试用例复杂性;软件可靠性模型
一、引言?
随着软件应用的日益广泛及重要性的不断增强,人们对软件质量的要求也越来越高。可靠性作为衡量软件质量的重要特性,其定量评估和预测已成为人们关注和研究的焦点。软件可靠性模型作为可靠性评测的核心和关键,可用于软件生命周期的不同阶段,定量地估计和预测软件可靠性行为。一个好的可靠性模型可以准确评估和预测软件可靠性行为,这对于软件资源分配、软件市场决策有着重要的意义。??
软件可靠性模型这一领域的研究在 20 世纪 70 年代获得较大发展后,很多可靠性模型已经投入使用。可以说,软件可靠性模型已从研究阶段发展到了工程阶段。但是,面对软件自身及其开发过程日益复杂的情形,它仍然呈现出其自身的不足。 首先,在软件可靠性建模方面,传统的软件可靠性模型主要是从时间域和输入域两个方面来考虑软件缺陷发生的概率或缺陷总数,很少从缺陷自身的因素论述;其次,在软件可靠性建模过程中,基本上是根据测试结果直接来推导模型,很少关注软件测试的设计过程;后,在适应性方面也存在着一定的缺陷。 ?
鉴于此,要想建立比较适用的软件可靠性模型,必须改变传统可靠性建模思路,采用新的观点、方法和新的数学工具来研究软件故障过程。论文将测试用例的设计融入到软件可靠性建模过程中去,在充分考虑软件缺陷影响因子和复杂性等因素基础上,采取合适的数学处理方法构建出一个基于测试用例的软件可靠性模型,并结合EM算法对该模型的可靠性作了验证。该模型不但考虑了失效出现的概率,还考虑了失效后可能产生后果的严重性。?
论文主要工作如下:(1)根据等价类、边界值等方法来设计测试用例模型;(2)在一定假设的基础上,通过观测数据推导出测试用例的可靠性并得出相应的软件可靠性;(3)利用EM算法对软件可靠性进行相应的检验。?
二、测试用例模型的构建?
测试用例的设计是软件测试过程中为关键的一个环节,一个软件测试成功与否与其测试用例设计成功与否有很大的关系。所谓测试用例,也是为特定目标开发的测试输入、执行条件和预期结果的集合。也可以说是对软件运行过程中所有可能存在的目标、运动、行动、环境和结果的描述,这些特定目标可以是验证一个特定的程序路径或核实是否符合特定需求。而测试活动要建立必要的前提条件,提供测试用例输入、观察输出,然后将这些输入和输出进行比较,以确定测试是否通过测试某个程序路径或何时满足软件规定的要求。简言之,测试用例是设定输入数据,运行被测试函数,然后判断实际输出是否符合预期结果。?
通常造成软件缺陷的主要原因有:(1)软件设计文档规范不一;(2)测试用例设计过程中引入了人为的错误;(3)测试执行后,复杂的决策条件、循环和分支的覆盖率目标并没有达到等。而一个完整的测试应该包含正面测试(Positive Testing,PT)和负面测试(Negative Testing,NT)。正面测试是验证程序应该执行的工作,而负面测试是验证程序不应该执行的工作。只有面面俱到,才能保证测试的充分性。要想保证测试用例设计质量,必须遵循四个原则:(1)测试准则,每个测试用例应当有一组有限可枚举的待测目标的判定准则;(2)测试用例输入域的划分和输入点集的提取;(3)测试目标的复杂性问题,应尽量化复杂为简单;(4)对测试用例进行测试的力度,是在特定输入条件下进行测试的细分程度和测试的次数。在黑盒测试中,不可能采取穷举式测试。只能选取输入域中有代表性样本点来运行程序,然后通过程序运行的结果(成功率或失效率)来推断出软件可靠性。综上可知,一个好的测试用例既要有完善的输入域也要有代表性的输入点集。?
输入域主要来源于需求规格说明、程序观察和额外的属性规约。假设D表示输入域,S表示规格说明,P表示程序观察,T表示额外的属性规约。则输入域可表示为:D=S∪P∪T。其中额外的属性规约主要是指规格说明中没有但满足负面测试或可能用到的那部分数据。?
输入点的选取对软件测试来说也是至关重要的,为了确保输入点集选取的客观性,特采取有选择性随机输入的方法。其大体过程分为两步:?
1) 提取测试用例的边界值点,构成集合T1;?
2) 在每个相邻边界点中选取n个点进行测试,其中选取测试点个数由测试人员根据具体情况而定,关于相邻边界值点间测试点的选取通过高斯随机函数产生。即:?
其中ij表示输入点,n表示选择点的个数,σ表示所选取点的方差,Id表示所选取点。?
根据上式所得到的Id构成了集合T2。则测试用例的输入域D=T1∪T2。根据边界值和等价类相结合的方法将输入域化分成L个子区域。即D=(D1,D2,…,DL)。?
相关推荐
更新发布
功能测试和接口测试的区别
2023/3/23 14:23:39如何写好测试用例文档
2023/3/22 16:17:39常用的选择回归测试的方式有哪些?
2022/6/14 16:14:27测试流程中需要重点把关几个过程?
2021/10/18 15:37:44性能测试的七种方法
2021/9/17 15:19:29全链路压测优化思路
2021/9/14 15:42:25性能测试流程浅谈
2021/5/28 17:25:47常见的APP性能测试指标
2021/5/8 17:01:11