发明名称 一种基于Markov方法的仿真系统测试用例生成方法
摘要 一种基于Markov方法的仿真系统测试用例生成方法,首先获取仿真系统所有功能操作及各功能操作的转移概率,根据功能操作及其转移概率建立有向图并得到功能操作个数与最长功能操作序列的长度,然后根据功能操作及其转移概率构建的有向图生成多个长度不定的且元素介于0与1之间的数组,最后依次遍历数组元素来选取功能后组成测试用例,并使用得到的测试用例完成测试。本发明方法根据转移概率计算得到的数组来生成测试用例,与现有技术相比覆盖同样的仿真系统功能需要的测试用例少,减少了测试重复率和测试的次数,提高了测试效率,降低了测试的工作量。
申请公布号 CN104679652A 申请公布日期 2015.06.03
申请号 CN201510081876.8 申请日期 2015.02.15
申请人 北京宇航系统工程研究所;中国运载火箭技术研究院 发明人 胡晓军;彭博;陈爱真;王海滨;陶久亮
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 中国航天科技专利中心 11009 代理人 陈鹏
主权项 一种基于Markov方法的仿真系统测试用例生成方法,其特征在于包括如下步骤:(1)获取仿真系统所有的功能操作,记为一级功能1、一级功能2、一级功能3,,,一级功能n,二级功能1、二级功能2、二级功能3,,,二级功能m,三级功能1、三级功能2、三级功能3,,,三级功能k,以此类推,T级功能1、T级功能2、T级功能3,,,T级功能e,其中n为仿真系统所有一级功能操作的个数,m为仿真系统所有二级功能操作的个数,k为仿真系统所有三级功能操作的个数,e为仿真系统所有T级功能操作的个数,其中I级功能为所有I‑1级功能菜单下的功能,I=2,3,,,T;(2)根据进行当前功能操作得到下一步可能进行的功能操作,如果当前功能操作为一级功能,则下一步进行一级功能或二级功能操作,如果当前操作为二级功能,则下一步进行一级功能、二级功能或三级功能操作,如果当前操作为三级功能,则下一步可能进行一级功能、二级功能、三级功能或四级功能操作,以此类推,如果当前操作为I级功能,则下一步可能进行一级功能、二级功能、三级功能,,,I级功能或I+1级功能,遍历I得到仿真系统所有功能,并获取各功能操作之间的转移概率,其中仿真开始时进行的第一步功能操作为一级功能;所述功能操作之间的转移概率为上一功能操作后进行下一功能操作的概率;(3)根据仿真系统所有功能、各功能操作之间的转移概率建立仿真系统功能的有向图,并得到功能总个数为a,最长功能操作序列的长度为b;所述功能操作序列为仿真开始后直至结束进行的一系列功能操作的集合;(4)生成d个取值范围为[0,1]的元素后组成第t个数组{P<sub>1</sub>,P<sub>2</sub>,P<sub>3</sub>,,,P<sub>d</sub>},在步骤(3)得到的有向图中选取转移概率与P<sub>1</sub>大小最接近的一级功能,然后在该一级功能操作后可能进行的一级功能、二级功能操作中选取转移概率与P<sub>2</sub>大小最接近的功能,直至在上一功能操作后可能进行的功能操作中选取转移概率与P<sub>d</sub>大小最接近的功能,将选取得到的功能顺序组成测试用例,使用该测试用例测试仿真系统并统计测试的功能操作个数,记为c,其中d为随机生成的取值范围为[1,2,3,,,b]的正整数,t的初值为1;所述选取转移概率与数组中元素大小最接近的功能时,如果多于1个功能的转移概率与元素大小最接近,则在多于1个功能中随机选取1个;(5)获取测试功能的覆盖率并判断c/a,如果c/a小于覆盖率,则t=t+1并重复步骤(4),如果c/a大于等于覆盖率,则将步骤(4)得到的所有测试用例输出。
地址 100076 北京市丰台区南大红门路1号内35栋