1.一种融入模糊聚类的软件测试方法,其特征在于:该方法包括以下步骤:设某一测试程序为G,程序的输入为X,s为G中某一原语句,对其实施变异之后得到变异语句s′;满足变异测试的必要条件“s!=s′”,即是满足弱变异测试准则,其中“!=”为不等于符号,那么条件语句“if s!=s′”和它的真分支,基于弱变异测试准则称为变异分支,它对应的变异体记为Mi;一个变异体对应一个变异分支;按照同样的方法,得到所有变异体的集合,记为M={M1,M2,…,Mn},n为变异体的个数;将这些变异分支插入G中对应原语句前面,形成的新被测程序,记为G′;X运行G′,如果“if s!=s′”的真分支被执行,那么,基于弱变异准则Mi被杀死;
步骤S1:计算变异体之间的相似度;
步骤S2:构建变异体相似矩阵,对于所有变异体M1,M2,…,Mn之间的相似度,可以建立变异体了相似矩阵Λ;
步骤S3:模糊聚类变异体:
设第i簇为Ci,开始时 设阈值记为T∈(0,1),与Mi相似的变异体个数ηi,初值为0;
S31:ηi=0,i=1,2,...,n;
S32:考察Λ中Mi,i=1,2,...,n对应的行,Mi与每一个Mj,Mj∈M,j=1,2,...,n,Mj≠Mi的αi,j值,如果αi,j≥T,ηi=ηi+1;
S33:基于η1,η2,…,ηn降序排列M1,M2,…,Mn;输出排序后的变异体序列,记为M′1,M′2,…,M′n,有序集合记为S={M′1,M′2,…,M′n};
S34:变量i=1;
S35:从S中选出首元素M′1,作为聚类中心,M′1表示为 更新簇为S36:将 分别从S和M中删除;
S37:考察Λ中 对应的行, 与Mj,Mj∈M,j=1,2,...,n, 的αi,j值,如果αi,j≥T,可以把Mj放入Ci,由此得到,以 为中心的簇 其中|ci|为簇中元素的个数, 为第i个簇中第k个元素;
S38:将 从S中删除;
S39:i=i+1;
S310:判断S是否还有变异体,如果还有变异体,转S34;
S311:输出变异体簇,记为C1,C2,…Cm,其中 为每个簇的聚类中心,m为簇的个数。
2.根据权利要求1所述的一种融入模糊聚类的软件测试方法,其特征在于:所述步骤S1中计算变异体之间的相似度的方法为:定义一个随机变量μi(X)反映X杀死变异体Mi情况采用数理统计的方法计算μi(X),首先,获取一个测试用例集,为此,在程序G输入域内随机生成R个样本,记为X1,X2,...,XR;将Xk,k=1,2,…,R执行程序,考察在弱变异测试准则下它是否能杀死Mi,然后计算μi(Xk)的值;
然后,假设变异体Mi,Mj,i,j=1,2,...,n,i≠j是两个不同的变异体,定义两个随机变量μi(Xk)和μj(Xk)分别反映Mi,Mj被杀死的可能性;那么μj(Xk)=1的概率表示为:Mi和Mj之间的相似度,记为αi,j,由上式可以表示为:由上式可知,αi,j∈[0,1]。
3.根据权利要求1所述的一种融入模糊聚类的软件测试方法,其特征在于:所述步骤S2中构建变异体相似矩阵的方法为:
对于所有变异体M1,M2,…,Mn之间的相似度,建立变异体了相似矩阵Λ,记为: