恭喜大连理工大学江贺获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网恭喜大连理工大学申请的专利一种基于多样性导向变异的高级综合工具缺陷检测方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN113268429B 。
龙图腾网通过国家知识产权局官网在2025-03-25发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202110670451.6,技术领域涉及:G06F11/3668;该发明授权一种基于多样性导向变异的高级综合工具缺陷检测方法是由江贺;王尊;周志德;任志磊设计研发完成,并于2021-06-17向国家知识产权局提交的专利申请。
本一种基于多样性导向变异的高级综合工具缺陷检测方法在说明书摘要公布了:本发明属于软件测试技术领域,尤其涉及一种基于多样性导向变异的高级综合工具缺陷检测方法。本发明通过对随机生成的测试用例进行多样性导向变异,得到一系列语句差异性较大的测试用例,以解决在测试高级综合工具过程中高效测试用例产生问题,提高了测试用例多样性,扩大了测试空间,避免了冗余的测试,从而提高高级综合工具缺陷检测效率。
本发明授权一种基于多样性导向变异的高级综合工具缺陷检测方法在权利要求书中公布了:1.一种基于多样性导向变异的高级综合工具缺陷检测方法,其特征在于,具体步骤如下:步骤1:利用代码随机生成器生成一系列代码,从生成的一系列代码中提取代码片段用于插入变异操作,对所提取的代码片段进行分类存储,构建出候选语句池;其中,构造候选语句池时所需要提取的代码片段的类型包括if分支语句、for循环语句、函数调用以及函数体、以及赋值语句;对于生成代码的数量,测试人员可根据需求进行设置;对于代码的生成,使用代码随机生成工具随机生成;步骤2:检测是否达到测试时间限制;若未达到,则使用代码随机生成器生成测试用例种子代码;若已达到,则停止测试;其中,测试时间限制可由测试人员根据需求进行设置,不包含步骤1中提取候选语句所耗时间;步骤3:使用多样性导向变异方法对步骤2中生成的测试用例种子代码进行变异操作,获取一组测试用例变异体集合P;步骤4:检测变异体集合P中所有代码变异体是否均被测试过;若存在未被用于测试的代码变异体,则从未被用于测试的代码变异体中随机选取一个代码变异体作为一个测试用例p,标记为已用于测试,使用编译器编译运行p,并记录相应的输出结果O;若不存在未被使用过的代码变异体,则跳转至步骤2,继续执行;步骤5:对测试用例p进行处理;为了便于Testbench代码调用测试用例p中的顶层函数以及获取到顶层函数的输出结果,将p中main函数更名为result函数,将main函数输出值作为result函数返回值;步骤6:使用待测试的高级综合工具对测试用例p进行综合,获取HDL代码HP;步骤7:使用数字电路仿真器对HDL代码HP进行仿真模拟,获取HP的输出结果O′;对于HDL代码HP的仿真模拟,可使用待测试高级综合工具自身集成的仿真器,或可根据实际需求,使用其他数字电路仿真模拟器对HDL代码HP进行仿真模拟;步骤8:比较O与O′是否一致;若结果一致,则跳转至步骤4,继续执行;若不一致,则进行测试用例约简,生成并存储缺陷报告,并跳转至步骤4,继续执行;对于测试用例约简,可使用C-Reduce代码约简工具,或根据实际需要采用其他工具或自定义工具;步骤3中,所述的多样性导向变异方法执行步骤如下:步骤a:不断地随机从插入if分支语句代码片段、插入for循环语句代码片段、插入函数调用以及函数体代码、插入赋值语句代码、删除if分支语句代码片段、删除for循环语句代码段、删除函数调用以及函数体代码、删除赋值语句代码8类变异算子中选择变异算子,计算所选择变异算子被接受的概率,直至选择出可被接受的变异算子;在前一次变异操作Rn-1基础上,对于当前选择变异算子Rn被接受的概率PRn|Rn-1,使用公式1进行计算;按照u~U0,1均匀采样,若u≤PRn|Rn-1,则接受当前被选择的变异算子; 其中,n为变异的轮数,prob为每次试验成功的概率,positionn为当前选择的变异算子在8类变异算子中的排名,positionn-1为上一轮变异操作中被接受的变异算子在8类变异算子中的排名;步骤b:使用被接受的变异算子对步骤2中获得的种子代码进行变异,获取新的代码变异体;如果被接受的变异算子是插入变异,则从候选语句池中随机选取相应类型的代码片段插入至种子代码中,获取新的代码变异体;如果被接受的变异算子是删除变异,则从种子代码中随机选取相应的代码片段进行删除,获取新的代码变异体;步骤c:计算新的代码变异体与之前已有代码变异体之间的语句距离之和,获取当前代码变异体与已有代码变异体的最小语句距离MINDIST,计算本轮变异平均语句距离增加值,并将平均语句距离增加值作为所选择的变异算子的评分,根据评分降序排序8类变异算子;对于新的代码变异体p和代码变异体集合P中的已有代码变异体Pj的语句距离Distp,Pj,使用公式2进行计算; 其中,Stmpp、StmpPj分别是新的代码变异体p和代码变异体集合P中的已有代码变异体Pj中所包含的代码语句,|·|符号为数量计算;对于新的代码变异体p与变异体集合中所有代码变异体以及种子代码之间的总语句距离TotalDistn,使用公式3进行计算;对于本轮变异平均语句距离增加值ΔTotalDIST,使用公式4进行计算; 其中,n为变异的轮数,num为代码变异体集合P中的代码变异体总数,f为种子代码;步骤d:判断当前代码变异体与已有代码变异体之间最小语句距离MINDIST是否小于语句距离阈值;若是,则跳转至步骤e,继续执行;否则,存储当前代码变异体,跳转至步骤f,继续执行;步骤e:不断随机选择从8类变异算子中选择变异算子,计算其被接受的概率,直至选择出被接受的变异算子;使用被接受的变异算子对当前代码变异体p进行变异,获取新的代码变异体,跳转至步骤c,继续执行;步骤f:检测对步骤2中生成种子代码进行变异后所得到代码变异体的数量是否达到数量要求;若未达到要求,则跳转至步骤a,继续执行;若达到要求,则停止对种子代码进行变异操作;对于每个种子代码产生的代码变异体数量要求,测试人员可根据需求进行设置;对于代码变异体的判断,可使用diff命令检测种子代码文件与变异操作之后生成代码变异体文件的差异性;若两个文件存在差异性,则判断变异操作产生的代码是种子代码的变异体;否则,则不是。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人大连理工大学,其通讯地址为:116024 辽宁省大连市甘井子区凌工路2号;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。