发明名称 |
一种快速的循环扩展检测方法 |
摘要 |
本发明公开了一种快速的循环扩展检测方法,属于软件模型检测技术领域。本方法为:1)限定测试空间中各个变量的取值范围,并将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态;2)随机挑选一个未检测的状态s,调用被测程序,记录该状态s经过被测程序的执行路径p以及动态执行信息;3)根据动态执行信息,依次计算并检测执行路径p的循环扩展相似路径p’,检查路径p’的路径约束条件表示的所有状态是否正确;如果正确则将这些通过检测的状态从测试空间中裁剪掉;如果未通过检测,则打印出错状态并给出反例;4)迭代检查测试空间中的所有状态。本方法减少了执行的测试用例个数,加快检测速度。 |
申请公布号 |
CN102799517A |
申请公布日期 |
2012.11.28 |
申请号 |
CN201110137793.8 |
申请日期 |
2011.05.25 |
申请人 |
中国科学院软件研究所 |
发明人 |
易秋萍;刘剑;沈武威;汪孙律;李斌 |
分类号 |
G06F11/36(2006.01)I |
主分类号 |
G06F11/36(2006.01)I |
代理机构 |
北京君尚知识产权代理事务所(普通合伙) 11200 |
代理人 |
冯艺东 |
主权项 |
一种快速的循环扩展检测方法,其步骤为:1)限定测试空间中各个变量的取值范围,并将测试空间中的状态初始化为被测程序限定范围内所有满足被测程序的前置条件的状态;2)从测试空间中随机挑选一个未检测的状态s,并基于该状态s调用被测程序,记录该状态s经过被测程序的执行路径p,以及动态执行信息;3)根据所收集的动态执行信息,依次计算并检测执行路径p的循环扩展相似路径p’:执行静态分析,检查路径p’的路径约束条件表示的所有状态是否正确;如果所有状态都通过检测,则将这些通过检测的状态从测试空间中裁剪掉;如果存在某个状态未通过检测,则打印该出错状态并给出反例;4)重复步骤2)~3),直到检测完测试空间中的所有状态。 |
地址 |
100190 北京市海淀区中关村南四街4号 |