首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

一种基于搜索的SMT求解器故障定位方法 

买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!

申请/专利权人:大连理工大学

摘要:本发明属于软件测试领域,具体为一种基于搜索的SMT求解器故障定位方法。首先使用遗传算法搜索变异规则列表对测试程序进行变异,得到一组不触发故障的变异测试程序。然后,使用基于频谱的方法通过比较触发故障的测试程序和不触发故障的变异测试程序的执行路径对可疑文件进行排名,得到文件排名列表。本发明能够对SMT求解器的故障进行定位分析,从而可以帮助开发者更快地找到SMT求解器的故障原因,方便了调试工作,提高了求解器的质量。

主权项:1.一种基于搜索的SMT求解器故障定位方法,其特征在于,主要步骤如下:步骤1:获取触发SMT求解器故障的程序;步骤2:获取触发故障时SMT求解器的代码覆盖信息;使用故障SMT求解器编译触发故障的程序,并获取故障SMT求解器执行过程中的代码覆盖信息;其中代码覆盖信息包括SMT求解器执行时所涉及的文件及文件中被执行的代码语句;步骤3:为SMT求解器的测试程序设计变异规则;SMT求解器的每个测试程序都可以转换为一棵抽象语法树,在抽象语法树节点级别设计变异规则,节点类型包括变量、常量、操作符、字符串函数;因此,对SMT求解器的测试程序设计四种变异类别:变量变异、常量变异、操作符变异和字符串函数变异;对于变量,每个变量都可以改变为测试程序中的另一个兼容的变量;对于操作符,每个操作符都可以改变为另一个类型相同的操作符;常量变异分为字符串型常量变异和数值型常量变异,对于字符串型常量,使用空字符串对其他字符串进行替换,对于数值型常量,对其进行加1或减1操作;对于字符串函数,将其替换为输入输出相同的其他字符串函数;步骤4:搜索变异规则列表生成不触发故障的测试程序;将故障SMT求解器、触发故障的程序、代码覆盖信息以及设计的变异规则作为遗传算法的输入,利用遗传算法自动搜索变异规则得到变异规则列表;对于变异规则列表中的每个变异规则,遍历触发故障的程序对应的抽象语法树,若抽象语法树上存在节点与变异规则对应,则对该节点进行变异,否则该变异规则列表不能对测试程序进行变异;得到变异测试程序后,使用故障SMT求解器与另一个流行的SMT求解器求解变异测试程序结果,若结果一致,说明该变异测试程序不再触发故障,否则丢弃该变异测试程序;步骤5:计算文件可疑度;由步骤4生成不触发故障的变异测试程序后,分析其覆盖情况,以定位故障;对每一个参与编译过程的文件进行打分,该得分表示文件的可疑度,可疑值越高表示该文件越有可能含有故障;具体如下:SMT求解器文件的某一条语句s的可疑值的计算方法如公式1所示,其中,efs表示执行语句s且编译失败的原程序的数量,nfs表示未运行语句s且编译失败的变异程序的数量,eps表示运行了语句s并编译成功的变异程序的数量; 每一个参与编译的SMT求解器文件的可疑值的计算方法如公式2所示,其中,nf表示在编译过程中,SMT求解器文件f涉及到的全部语句的数量; 步骤6:报告可疑文件;在计算全部文件的可疑值后,将全部文件按照可疑值从大到小的顺序排序;文件的可疑值越大,文件含有故障的概率就越大;因此,开发人员通过分析排名列表中的文件快速定位故障。

全文数据:

权利要求:

百度查询: 大连理工大学 一种基于搜索的SMT求解器故障定位方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。