【技术实现步骤摘要】
基于迭代的区间运算的软件测试用例自动生成方法及系统
本专利技术涉及软件测试技术,尤其涉及一种基于迭代的区间运算的软件测试用例自动生成方法及系统。
技术介绍
软件测试是在软件投入运行前,对软件需求分析、设计规格说明和编码的最终复审,是软件质量保证的关键步骤。统计表明,软件测试与维护的费用要占到整个软件开发费用的50%以上。在软件测试中,不少测试方法包含着大量的人工操作,这些操作在手工完成时令人厌烦且容易出错,更有甚者,用手工计算已经超出了问题的范围或者用手工方法是完全行不通的。为了减少人工测试的成本并提高测试的可靠性,研究人员一直致力于实现测试自动化,而其中一个重要的活动就是自动生成测试用例。在众多的软件测试方法中,面向路径的测试用例生成问题(简称为问题Q)可以描述为:给定一个程序或者程序模块P和P中任意一条路径W,一个变量xi如果出现在程序模块P的一个输入声明中或者是P的一个输入参数,则称xi为P的一个输入变量。输入变量xi的定义域Dxi为xi所有可能的取值集合。一个输入向量x={x1,x2,…,xm}∈(Dx1×Dx2×…×Dxm)称为程序模块P的一个程序输入,简称为P的一个输入,其中m为P中输入变量的个数。设P的所有输入数据表示为解空间D,求x∈D,其目标是在测试结束时,使得以x为输入运行程序模块P,程序沿路径W运行。研究表明,对于任意的P和W,不存在通用的有效算法求解x,并且无法保证W一定是可达路径,在生成测试用例过程中需要对W的可达性进行判断。目前路径W的测试用例生成主要是靠人工来完成,需要大量的时间。在很多情况下,如果路径W比较复杂,例如,包括的 ...
【技术保护点】
基于迭代的区间运算的软件测试用例自动生成方法,其特征在于,所述方法包括:S1、读取待测程序中的预定路径,通过遍历所述待测程序的控制流图得到所述预定路径的各个变量的变量取值区间;S2、将所述变量取值区间通过迭代的区间运算遍历所述控制流图,得到各个所述变量的初始稳定变量取值区间;S3、对所述初始稳定变量取值区间中的无穷变量取值区间进行初始化处理,得到有界变量取值区间,并将所述有界变量取值区间通过迭代的区间运算遍历所述控制流图,并将运算结果保存到所述初始稳定变量取值区间;S4、根据预设的机制对变量进行排序,并确定当前变量;S5、对所述当前变量的初始稳定变量取值区间进行回退运算、迭代的区间运算及回溯运算,生成测试用例;S6、对生成的所述测试用例进行验证。
【技术特征摘要】
1.基于迭代的区间运算的软件测试用例自动生成方法,其特征在于,所述方法包括:S1、读取待测程序中的预定路径,通过遍历所述待测程序的控制流图得到所述预定路径的各个变量的变量取值区间;S2、将所述变量取值区间通过迭代的区间运算遍历所述控制流图,得到各个所述变量的初始稳定变量取值区间;S3、对所述初始稳定变量取值区间中的无穷变量取值区间进行初始化处理,得到有界变量取值区间,并将所述有界变量取值区间通过迭代的区间运算遍历所述控制流图,并将运算结果保存到所述初始稳定变量取值区间;S4、根据预设的机制对变量进行排序,并确定当前变量;S5、对所述当前变量的初始稳定变量取值区间进行回退运算、迭代的区间运算及回溯运算,生成测试用例;S6、对生成的所述测试用例进行验证;所述步骤S2具体包括:S21、将各个所述变量以及对应的变量取值区间传入所述控制流图的入口节点,通过遍历所述控制流图进行区间运算;S22、当任一所述变量的当前区间运算发生矛盾,则判定路径不可达,结束所述当前区间运算;S23、当所有所述变量的当前区间运算不矛盾,判断当前区间运算结果与上一次区间运算的结果是否相同;S24、如果任一所述变量的当前区间运算结果和所述上一次区间运算结果不同,判断任一所述变量的当前区间运算的结果与所述上一次区间运算的结果相比是否有缩小,若有缩小则将所有所述变量的当前区间运算结果设置为新的输入条件,返回步骤S21继续进行区间运算,若没有缩小,结束当前区间运算;S25、如果所有所述变量的当前区间运算结果和所述上一次区间运算结果相同,则将各个所述变量的当前变量取值区间进行压缩并保存到所述各个变量的初始稳定变量取值区间中。2.根据权利要求1所述的软件测试用例自动生成方法,其特征在于,所述步骤S3具体包括:S31、对各个所述变量的初始稳定变量取值区间中的无穷变量取值区间按照区间初始化策略进行压缩,形成各个所述变量的有界变量取值区间;S32、将各个所述变量和对应的有界变量取值区间传入到所述控制流图的入口节点,通过遍历所述控制流图进行区间运算;S33、当任一所述变量的当前区间运算发生矛盾则将发生矛盾的有界变量取值区间的边界进行放大,然后重新执行步骤S32;S34、当所有所述变量的当前区间运算不矛盾,判断当前区间运算结果与上一次区间运算的结果是否相同;S35、如果任一所述变量的当前区间运算结果和所述上一次区间运算结果不同,判断任一所述变量的当前区间运算的结果比所述上一次区间运算的结果是否有缩小,若有缩小则将所有所述变量的当前区间运算结果设置为新的输入条件,返回步骤S32继续进行区间运算,若没有缩小,结束当前区间运算;S36、如果所有所述变量的当前区间运算结果和上一次区间运算结果相同,则将各个所述变量的当前区间运算压缩并保存到所述初始稳定变量取值区间。3.根据权利要求1所述的软件测试用例自动生成方法,其特征在于,所述步骤S5具体包括:S51、为所述当前变量选择回退值;S52,将所述回退值传入所述控制流图的入口节点,通过遍历所述控制流图进行区间运算;S53、判断当前区间运算是否发生矛盾,发生则进行步骤S54,否则执行步骤S56;S54、根据矛盾信息选取下一回退值,然后执行步骤S52判断是否发生矛盾,当所述当前变量的所有回退值的区间运算都发生矛盾时,执行步骤S55;S55、对当前变量进行回溯,然后重新为所述当前变量选取回退值,并执行步骤S52,当回溯后的所述当前变量的所有回退值的区间运算都发生矛盾时,结束运算;S56、当区间运算不矛盾,判断当前区间运算结果与上一次区间运算的结果是...
【专利技术属性】
技术研发人员:王雅文,邢颖,宫云战,张旭舟,黄俊飞,金大海,
申请(专利权)人:北京邮电大学,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。