输入域主要来源于需求规格说明、程序观察和额外的属性规约。假设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)。?
2测试用例可靠性评估?
2.1基本概念?
软件可靠性模型通常分为三种:时间域可靠性模型、输入域可靠性模型和混合可靠性模型。实际上,软件黑盒测试的过程是从输入域着手,反复有选择性地随机抽取输入点集,通过观察其输入和输出之间的映射关系得出其可靠性。下面给出一些测试过程中常用到的概念和度量。?
定义1测试准则:测试准则是关于一组有限可枚举的待测试目标(待测试的软件部分)的判定规则,如果测试通过了判定规则的判定,则认为达到了测试准则,否则就没有。假设i表示输入数据,且i∈D,output表示输出数据,也就是说如果输入数据i满足 output=f(i)(i∈D),就认为达到了判定准则,否则就没有。
定义2测试子域:把测试用例的输入域D按照上述二个步骤划分成L个互不相交的子域D1,D2,…,DL,即D=D1∪D2∪…∪DL,且Di∩Dj=?(i≠j且i,j=1,2,…,L),则Di称为测试子域。?
定义3测试可靠性因子:为了更好的判断输入和输出是否满足映射关系,特此引入功能性可靠因子c,其中c=1或c=0。当c=1时,表示输入和输出符合其映射关系;当c=0时,表示输入和输出不满足其映射关系。?
定义4缺陷影响因子:不同的缺陷对软件可靠性的影响不一样。通常测试人员将缺陷分为如下几个级别:致命、严重、一般、轻微、建议。对应不同的级别应给予相应权重来描述它,以表示它对测试结果的影响。其中缺陷影响因子用γi表示,这里i=5,表示5 个级别。根据经验可设γ=(10,5,2,1,0.5)。?
软件就好比一辆汽车,不同的缺陷、故障(缺陷因子不同)会产生不同的结果,就像座位和车刹的故障一样,同样是缺陷,但产生的结果不同。作为软件的可靠性来说,应该把缺陷因子考虑到其中,这样才能更好地度量和评价软件可靠性。?
假设输入i产生缺陷的概率为P(i),其中i∈D,根据定义3可将c表示为i的函数c(i),它满足c(i)=1或c(i)=0,根据定义4可将缺陷影响因子γ表示为i的函数γ(i)。则测试用例的可靠性可用(1)式表示:?
2.2测试用例的可靠性评估
在软件测试可靠性评估领域,所有的结果都是在一定假设条件下产生的,不论是JM模型、Musa模型或者NHPP模型,都是在一定的假设基础上进行的。?
根据等价类原理可知测试向量所产生的缺陷在各个子域内出现的概率是均等的。同时,软件的复杂性在观测数据矩阵中也得到了很好的体现。根据等价类原理,可以计算出相应的可靠性模型。?
推论1对任意一功能点进行一次有选择性的随机测试,其可靠度可表示为:?
其中γi表示第i个缺陷影响因子,c/ij表示观测结果。?
证明假设对任意一个功能向量F进行测试,其输入点集为:?
根据其映射规则,通过定义3可以得出一组相应的矩阵C。它可表示为式(2)。?
根据定义4可知每组输入可能产生5种等级的缺陷,而每种等级的缺陷对软件可靠度造成的影响是不一样的,因此可把矩阵C分解成一个新矩阵C/,C/中包含了5种缺陷影响因子的信息。由于论文主要是计算软件的可靠性,在定义3中已规定当输入和输出满足映射关系时,c取1,否则取0。所以C/表示式(3)。?
根据矩阵C/和(1)式可以得出软件无缺陷运行的概率如(4)式所示。?
原文转自:http://www.uml.org.cn/Test/200903242.asp