[发明专利]基于反馈的SMT求解器性能测试用例约简方法在审

专利信息
申请号: 202110767566.7 申请日: 2021-07-07
公开(公告)号: CN113377675A 公开(公告)日: 2021-09-10
发明(设计)人: 任志磊;王笑爽;范晓飞;周奕;江贺 申请(专利权)人: 大连理工大学
主分类号: G06F11/36 分类号: G06F11/36
代理公司: 大连理工大学专利中心 21200 代理人: 温福雪
地址: 116024 辽*** 国省代码: 辽宁;21
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 反馈 smt 求解 性能 测试 用例约简 方法
【权利要求书】:

1.一种基于反馈的SMT求解器性能测试用例约简方法,其特征在于,具体步骤如下:

步骤1:验证输入的测试用例是否可以触发性能故障;

对于待约简的测试用例,首先对测试用例进行手动验证;将测试用例输入到SMT求解器,检测其是否可以触发性能故障;如果该测试用例可以触发性能故障,对该测试用例进行约简;否则输出该测试用例不符合约简条件的信息;

步骤2:将测试用例解析为Instance类实例;

将触发性能缺陷的测试用例解析为可操作的Instance类实例;Instance类包括四个部分:set logic,declare,assert和check sat;set logic部分指定了测试用例使用的语法为字符串理论;declare部分声明了可能使用到的变量及其类型;assert部分使用一个列表存储抽象语法树,每一个语法树都是一条断言语句;check sat部分是测试用例的固定语法,让求解器检查测试用例的满足性;

步骤3:设置代码覆盖率相似度阈值,设置测试用例在SMT求解器中的执行时间;测试时间限制可由测试人员根据需求进行设置;

步骤4:使用二分搜索法约简测试用例断言数目,具体步骤如下:

步骤4.1:首先存储测试用例副本,将Dmin设置为0,Dmax设置为需要约简的测试用例断言总数;

步骤4.2:比较Dmax和Dmin,如果Dmax小于或等于Dmin的值,则此时测试用例断言数目达到了最小,结束循环并保存该测试用例;否则转到步骤4.3;

步骤4.3:从测试用例中随机取出新测试用例的断言数D=1/2(Dmax+Dmin);将新的测试用例输入求解器运行并获取代码覆盖率信息,比较新测试用例与原测试用例的覆盖率相似度,如果覆盖率相似度能达到相似度阈值,转到步骤4.4;如果覆盖率相似度小于相似度阈值,转到步骤4.5;

步骤4.4:将Dmax设置为D的值,转到步骤4.2;

步骤4.5:将Dmin值设置为D的值,转到步骤4.2;

步骤5:使用替换节点的方法约简断言数目最小化的测试用例公式嵌套深度;一个测试用例中具有多个断言,每个断言被编码为抽象语法树AST;对每个断言编码成的AST进行顺序遍历并进行节点的替换;具体步骤如下:

步骤5.1:顺序遍历测试用例中的断言,判断该断言是否为测试用例中最后一个断言;若该断言是测试用例中最后一个断言,转入步骤5.2;否则转到步骤5.3;

步骤5.2:该测试用例的公式嵌套深度达到了最小,即此时该测试用例拥有最少断言数和最小嵌套深度的断言,为最简测试用例;保存该最简测试用例并结束循环;

步骤5.3:顺序替换断言中的节点;使用节点的同类型常量替换该节点生成新的测试用例,并将该测试用例在SMT求解器中运行,收集覆盖信息;

步骤5.4:比较新测试用例覆盖率与原测试用例覆盖率相似度,若相似度达到阈值,或者该节点是AST的最后一个节点,转到步骤5.1;若没有达到相似度阈值,将该节点替换回原来的节点,并继续替换AST中的下一个节点,转到步骤5.3。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于大连理工大学,未经大连理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202110767566.7/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top