基于程序行为切片的测试案例约减方法

    公开(公告)号:CN103559122A

    公开(公告)日:2014-02-05

    申请号:CN201310479195.8

    申请日:2013-10-14

    CPC classification number: G06F11/3688 G06F11/3604 G06F11/3676 G06F11/3684

    Abstract: 本发明提出一种基于程序行为切片的测试案例约减方法,在无需对全部程序路径进行扫描的情况下,生成可以覆盖全部程序行为的测试案例集,缓解程序测试面临的状态空间爆炸问题。在静态分析阶段该方法根据输入的程序代码分析程序的控制流和信息流,提取程序的控制依赖和数据依赖;根据程序的控制依赖和数据依赖,计算程序的潜在依赖;在控制依赖,数据依赖和潜在依赖的基础上,构建程序的组合依赖;在动态执行阶段根据执行路径和依赖关系计算被路径覆盖的程序行为切片和未被覆盖的程序行为切片,根据未被覆盖的程序行为切片来引导符号执行生成能覆盖新的程序切片的路径。相比现有的符号执行方法,本方法可以保证测试案例集的有效性,同时显著减少生成的测试案例数目。

    基于程序约束构建的多线程程序输出唯一性检测与证据生成方法

    公开(公告)号:CN104077226A

    公开(公告)日:2014-10-01

    申请号:CN201410320129.0

    申请日:2014-07-07

    CPC classification number: G06F11/3688 G06F11/36 G06F11/3608 G06F11/3692

    Abstract: 一种基于程序约束构建的多线程程序输出唯一性检测与证据生成方法,根据多线程程序语义构建约束表达式,将输出唯一性验证问题转化为约束求解问题,采用约束求解器检测是否存在不同的输出,并生成说明不同输出的反例执行路径,首先,插桩被检测程序,执行此程序并得到执行路径;其次,根据多线程程序执行语义,将执行路径转化为无量词一阶逻辑表达式,此约束表达式涵盖所有可行的线程交织;然后,针对一次运行的输出结果,构建唯一性验证条件;最后,利用约束求解器验证是否存在一条路径使得输出值与运行结果不一致,本方法可以检测出在给定输入下,多线程程序的输出是否唯一;如果存在输出不唯一的情况,则展示出反例序列以说明其触发过程。

    基于程序控制依赖引导的回归测试案例生成方法

    公开(公告)号:CN103455421A

    公开(公告)日:2013-12-18

    申请号:CN201310362303.3

    申请日:2013-08-19

    Abstract: 本发明提出一种基于程序控制依赖引导的回归测试案例生成方法,可以自动生成对程序修改部分进行有效测试的测试案例。该方法以发生修改的程序代码为测试目标,通过分析程序的控制流和信息流,建立程序控制依赖图;计算各个分支语句到达测试目标代码的概率(到达概率),引导符号执行生成可以保证目标代码被执行的测试案例;计算所有分支语句的可能使得目标代码执行结果无法传播到输出的概率(阻断概率),引导符号执行生成可以保证目标代码执行结果影响输出的测试案例。相比现有回归测试方法,本方法可以保证测试案例的有效性,同时显著提高测试案例生成的效率。

    基于多线程程序约束构建的数据竞争检测与证据生成方法

    公开(公告)号:CN104077144B

    公开(公告)日:2015-06-03

    申请号:CN201410320943.2

    申请日:2014-07-07

    CPC classification number: G06F11/36

    Abstract: 一种基于多线程程序约束构建的数据竞争检测与证据生成方法,根据多线程程序语义构建约束表达式,将数据竞争检测问题转化为约束求解问题,采用约束求解器检测可能存在的数据竞争,并生成触发数据竞争的程序执行路径,首先插桩被检测程序,执行此程序并得到执行路径;其次根据多线程程序执行语义将执行路径转化为无量词一阶逻辑表达式,此约束表达式涵盖所有可行的线程交织;然后根据发生数据竞争时语句间时序关系构建数据竞争候选集合,生成候选发生竞争的条件;最后遍历候选集合判定是否存在数据竞争,如有则生成对应的证据序列,本方法可找出一次执行中所有的数据竞争且不存在误报情况,对每一个数据竞争都生成一个展示了数据竞争触发过程的证据序列。

    基于程序约束构建的多线程程序输出唯一性检测与证据生成方法

    公开(公告)号:CN104077226B

    公开(公告)日:2015-05-13

    申请号:CN201410320129.0

    申请日:2014-07-07

    CPC classification number: G06F11/3688 G06F11/36 G06F11/3608 G06F11/3692

    Abstract: 一种基于程序约束构建的多线程程序输出唯一性检测与证据生成方法,根据多线程程序语义构建约束表达式,将输出唯一性验证问题转化为约束求解问题,采用约束求解器检测是否存在不同的输出,并生成说明不同输出的反例执行路径,首先,插桩被检测程序,执行此程序并得到执行路径;其次,根据多线程程序执行语义,将执行路径转化为无量词一阶逻辑表达式,此约束表达式涵盖所有可行的线程交织;然后,针对一次运行的输出结果,构建唯一性验证条件;最后,利用约束求解器验证是否存在一条路径使得输出值与运行结果不一致,本方法可以检测出在给定输入下,多线程程序的输出是否唯一;如果存在输出不唯一的情况,则展示出反例序列以说明其触发过程。

    基于多线程程序约束构建的数据竞争检测与证据生成方法

    公开(公告)号:CN104077144A

    公开(公告)日:2014-10-01

    申请号:CN201410320943.2

    申请日:2014-07-07

    CPC classification number: G06F11/36

    Abstract: 一种基于多线程程序约束构建的数据竞争检测与证据生成方法,根据多线程程序语义构建约束表达式,将数据竞争检测问题转化为约束求解问题,采用约束求解器检测可能存在的数据竞争,并生成触发数据竞争的程序执行路径,首先插桩被检测程序,执行此程序并得到执行路径;其次根据多线程程序执行语义将执行路径转化为无量词一阶逻辑表达式,此约束表达式涵盖所有可行的线程交织;然后根据发生数据竞争时语句间时序关系构建数据竞争候选集合,生成候选发生竞争的条件;最后遍历候选集合判定是否存在数据竞争,如有则生成对应的证据序列,本方法可找出一次执行中所有的数据竞争且不存在误报情况,对每一个数据竞争都生成一个展示了数据竞争触发过程的证据序列。

    基于程序控制依赖引导的回归测试案例生成方法

    公开(公告)号:CN103455421B

    公开(公告)日:2016-08-10

    申请号:CN201310362303.3

    申请日:2013-08-19

    Abstract: 本发明提出一种基于程序控制依赖引导的回归测试案例生成方法,可以自动生成对程序修改部分进行有效测试的测试案例。该方法以发生修改的程序代码为测试目标,通过分析程序的控制流和信息流,建立程序控制依赖图;计算各个分支语句到达测试目标代码的概率(到达概率),引导符号执行生成可以保证目标代码被执行的测试案例;计算所有分支语句的可能使得目标代码执行结果无法传播到输出的概率(阻断概率),引导符号执行生成可以保证目标代码执行结果影响输出的测试案例。相比现有回归测试方法,本方法可以保证测试案例的有效性,同时显著提高测试案例生成的效率。

    基于程序行为切片的测试案例约减方法

    公开(公告)号:CN103559122B

    公开(公告)日:2016-04-27

    申请号:CN201310479195.8

    申请日:2013-10-14

    CPC classification number: G06F11/3688 G06F11/3604 G06F11/3676 G06F11/3684

    Abstract: 本发明提出一种基于程序行为切片的测试案例约减方法,在无需对全部程序路径进行扫描的情况下,生成可以覆盖全部程序行为的测试案例集,缓解程序测试面临的状态空间爆炸问题。在静态分析阶段该方法根据输入的程序代码分析程序的控制流和信息流,提取程序的控制依赖和数据依赖;根据程序的控制依赖和数据依赖,计算程序的潜在依赖;在控制依赖,数据依赖和潜在依赖的基础上,构建程序的组合依赖;在动态执行阶段根据执行路径和依赖关系计算被路径覆盖的程序行为切片和未被覆盖的程序行为切片,根据未被覆盖的程序行为切片来引导符号执行生成能覆盖新的程序切片的路径。相比现有的符号执行方法,本方法可以保证测试案例集的有效性,同时显著减少生成的测试案例数目。

Patent Agency Ranking