发明名称 一种基于混合策略的测试数据生成方法
摘要 一种基于混合策略的测试数据生成方法,综合利用多种技术的特点融合为测试数据的生成方法。虽然近来各种各样的测试数据生成机制层出不穷,每种技术还是有自己的局限性,例如囿于本身特点每种技术只对有限的几种数据结构适用性与精确性较强。以上的特点导致了单一测试数据生成技术不能广泛而精确地得到试用。我们的方法结合了随机策略,动态符号执行和搜索策略建立数据生成流程,构成了一个可以利用多种技术的优点而进行的高可靠性高拓展性的测试数据生成方法。
申请公布号 CN104536877A 申请公布日期 2015.04.22
申请号 CN201410709716.9 申请日期 2014.11.28
申请人 江苏苏测软件检测技术有限公司;南京大学 发明人 周骏贵;徐宝文;刘子聪;陈振宇;张驰;濮力;程秀才;谢佩章;王婧宇
分类号 G06F11/36(2006.01)I 主分类号 G06F11/36(2006.01)I
代理机构 南京天翼专利代理有限责任公司 32112 代理人 奚铭
主权项 一种基于混合策略的测试数据生成方法,其特征是利用混合测试数据生成技术制定生成流程:利用随机策略生成测试的基础数据,利用动态符号执行完成对于满足路径约束条件的整型数据的计算,利用基于搜索的策略完成对于其他类型数值型数据的精化以及对于字符串或用户自定义类型数据的获取,实现自动化的测试数据生成,包括以下步骤:1)随机策略生成初始数据,利用初始数据进行程序的动态执行,并记录路径约束;2)将步骤1)记录的路径约束的最后一个谓词进行反转,使其程序逻辑转向最后一个分支的另一边,生成一个新的路径约束,如果新生成的路径约束可解,则将新生成的路径约束对应的测试数据作为引导数据,进入步骤3),之后迭代进行步骤2)‑5)直至到达极优解或使定时器超时而至死锁,进而保留结果并重启步骤1);如果新生成的路径约束不可解则直接重启步骤1),重新生成初始引导数据;3)将步骤2)生成的路径约束基于不同的数据类型进行解析与拆解,分别提取出不同类型的数据结构,包括pcf、pcs和pco,其中pcf是路径约束中包含浮点类型数据的部分,pcs和pco分别是包含字符串类型和其他类型的约束片段;4)对于不同数据类型基于搜索的策略有不同的处理方法:对于浮点类型的数据结构,使用交替变量法来精化浮点数的精度;对于字符串类型的数据结构,利用基因算法来解决对于字符串类型的处理问题;对于其他类型的数据结构,提供自定义的精化算法接口,用于用户针对数据类型自定义匹配函数,如果用户并没有定义对应数据结构的精化规则,默认对数据结构利用搜索的策略进行精化;5)将步骤2)得到的路径约束中的变量替换为经步骤4)精化后的具体数值,简化路径约束,使之更容易被约束求解器计算而得到可行解,再利用约束求解器对简化后的路径约束进行求解,生成的测试数据作为下一次迭代的输入数据,进行下一轮的生成和精化。
地址 210000 江苏省南京市雨花台区宁双路28号汇智大厦7楼