[发明专利]概率有限状态机变异测试用例生成方法有效
申请号: | 202010825454.8 | 申请日: | 2020-08-17 |
公开(公告)号: | CN111930631B | 公开(公告)日: | 2022-09-09 |
发明(设计)人: | 陆建波;廖伟志;李松钊 | 申请(专利权)人: | 南宁师范大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 北京远大卓悦知识产权代理有限公司 11369 | 代理人: | 邓雪明 |
地址: | 530001 广西壮族*** | 国省代码: | 广西;45 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 概率 有限状态机 变异 测试 生成 方法 | ||
1.一种概率有限状态机变异测试用例生成方法,其特征在于,包括:
步骤一、定义PFSM原始状态机,生成PFSM原始状态机的测试用例集;
步骤二、再定义多种变异操作及对应的变异体;所述变异操作至少包括:改变概率、改变迁移目标状态;
步骤三、根据变异操作,利用假设检验方法和PFSM原始状态机的测试用例集,选出能够杀死对应变异体的测试用例,生成用于杀死变异体的测试用例集;
其中,步骤一的概率有限状态机PFSM定义为一个五元组(S,s0,X,Y,h);
其中S是一个有限状态集;s0∈S为状态机的初始状态;X是一个有限输入符号集;Y是一个有限输出符号集;h:S×X→S×Y×(0,1]为迁移关系函数;
设s1,s2∈S,x∈X且y∈Y,用(s1,x,y,s2,p)表示在状态s1下,当输入为x,则输出为y且从状态s1转移到状态s2的概率为p;同时满足对每个s∈S,x∈X都有其中P(s,x,y,s*)为当PFSM在状态s下输入x时转移到s*且输出y的概率;
定义函数pM:S×X→S×Y×(0,1]如下:
从状态si始在输入序列的作用下,输出为而且转移到状态sj的概率其中:
FSM=(S,s0,X,Y,h-p)为PFSM的原始有限状态机,其中h-p为S×X→S×Y,且FSM中存在迁移(s1,a,b,s2)当且仅当在PFSM中存在(s1,a,b,s2,p);
根据基于Wp方法的有限状态机测试用例生成算法,获得以下数据:
1)状态机各个状态s0,s1,…,sn-1的状态识别集合W0,W1,…,Wn-1;
2)使状态机从初始状态转移到各个状态的输入序列集合即状态覆盖集合Q={in0i|in0i为使状态机从初始状态转移到各状态的输入序列};
3)迁移覆盖集合P;
4)测试用例集Π;
步骤二中,针对改变概率的变异操作,具体为:
设定在概率有限状态机PFSM中,以状态si为起始且输入为xi1的迁移分别为:(si,xi1,yi1,si1,pi1),(si,xi1,yi2,si2,pi2),...,(si,xi1,yim,sim,pim);
而在变异体PFSM*中以状态si为起始且输入为xi1的迁移分别为:(si,xi1,yi1,si1,pi1*),(si,xi1,yi2,si2,pi2*),...(si,xi1,yim,sim,pim*);
并且至少PFSM中存在迁移(si,xi1,yij,sij,pij)而PFSM*中存在迁移(si,xi1,yij,sij,pij*)使得pij≠pij*(1≤j≤m),则PFSM*为PFSM基于改变概率出的变异体,其中
由于在PFSM的原始状态机存在in0i∈Q,因此在PFSM中存在从状态s0到si的一条路径path(s0,si),设PFSM所经历的迁移序列如下:
(s0,xk1,yk1,sk1,pk1)(sm1,xk2,yk2,sk2,pk2)…(sm(n-1),xkn,ykn,si,pkn),该迁移序列对应的输入序列xk1.xk2……xkn记为path(s0,si)_in,输出序列yk1.yk2……ykn记为path(s0,si)_out,概率序列pk1pk2…pkn记path(s0,si)_pro,且满足path(s0,si)_in=in0i∈Q,其中Q为基于Wp方法所获得的PFSM原始状态机的状态覆盖集;
检测判定PFSM*中的迁移(si,xi1,yij,sij,pij*)与PFSM中的迁移(si,xi1,yij,sij,pij)是否满足pij≠pij*;以path(s0,si)_in.xi1作为输入运行于PFSM*若干次并统计输出序列的子串等于path(s0,si)_out且输出序列最后一个字符为yij的次数sumij,即当PFSM*处于状态si且输入xi1时输出yij的次数;
根据假设检验方法:若允许pij与pij*的误差在ξ之间,即满足pij-ξpij*pij+ξ,则在path(s0,si)_in作用下到达状态si的样本数sum*需满足下式1
其中p=pk1×pk2×...×pkm,可信度取0.95,则z0=1.96,由上式1可得式2:
sum*≥3.8416p(1-p)/ξ2;
即当样本数sum*≥3.8416p(1-p)/ξ2,如果满足pij-ξsumij/sum*pij+ξ,则得到pij与pij*一致的结论,否则有pij≠pij*;
因此,如果PFSM*中的迁移(si,xi1,yij,sij,pij*)与PFSM中的迁移(si,xi1,yij,sij,pij)满足pij≠pij*且误差超过ξ,则当以path(s0,si)_in.xi1作为输入运行于PFSM*次数达3.8416p(1-p)/ξ2时pij-ξsumij/sum*pij+ξ不成立,即可杀死变异体PFSM*;
使用一个二元组path(s0,si)_in.xi1,sum*表示最多运行sum*次输入序列path(s0,si)_in.xi1可杀死所述变异体PFSM*并确定所改变概率的测试用例;
则用于杀死基于PFSM改变概率的变异体的测试用例集Πpro_change={path(s0,si)_in.xij,sum*|i为PFSM任意状态si的下标值,xij为以状态si为起始迁移的输入},其中sum*的求解方法为sum*≥3.8416p(1-p)/ξ2;
步骤二中,针对改变迁移目标状态的变异操作,具体为:
设定概率有限状态机PFSM的迁移t=(si,x,y,si,p)在其变异体PFSM*中为t*=(si,x,y,sk,p),其中j≠k,即迁移t的目标状态si变成sk,则称PFSM*为PFSM基于改变迁移目标状态的变异体;
对于PFSM的原始有限状态机FSM,如果其迁移(si,x,y,si)的目标状态si变成sk,即得到一个与FSM不同的有限状态机,记为FSM*,其中测试用例集Π中存在输入序列使得其中分别为FSM,FSM*在输入序列的作用下产生的一个输出序列;
首先在测试用例集Π中找出头部为path(s0,si)_in的任一字符串的输入序列构成集合Ω,然后在Ω中找出满足的输入序列
由于Ω中的输入序列y越长则的可能性越大,另一方面其测试的代价也更高,为此定义输入序列优先值如式3:
其中为输入序列的长度,maxlen为Ω中最长输入序列的长度值,α∈(0,1)为序列长度在优先值中的权重;Ω中优先值大的输入序列将被优先运行于FSM*以检测该序列是否为杀死变异体的输入序列。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南宁师范大学,未经南宁师范大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202010825454.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:中红外飞秒光纤激光光源系统
- 下一篇:一种用于柴油机发电机组的安装机构