【技术实现步骤摘要】
一种基于多样性导向变异的高级综合工具缺陷检测方法
本专利技术属于软件测试
,尤其涉及一种基于多样性导向变异的高级综合工具缺陷检测方法。
技术介绍
近些年来,FPGA(FieldProgrammableGateArray)技术得到了越来越多的重视。FPGA器件所固有的灵活性、并行性以及可集成性,使其成为通信、航天、医疗、军工等领域的关键核心器件,成为保障国家战略安全的重要支撑基础。因此,高效、可靠地完成FPGA设计开发工作至关重要。在FPGA设计开发过程中,设计人员编写的设计代码需要依次经过高级综合(High-LevelSynthesis,HLS)、逻辑综合(RTLSynthesis)等过程,最终被转化为网表级硬件描述语言(HardwareDescriptionLanguage,HDL)代码,供后续开发过程使用。高级综合过程处于FPGA设计开发过程起点的位置,其可以将高级语言编写的算法代码(如C/C++代码)转为硬件描述语言代码,如Verilog代码、VHDL代码等。高级综合工具对高级综合过程起到了重要的支撑作用 ...
【技术保护点】
1.一种基于多样性导向变异的高级综合工具缺陷检测方法,其特征在于,具体步骤如下:/n步骤1:利用代码随机生成器生成一系列代码,从生成的一系列代码中提取代码片段用于插入变异操作,对所提取的代码片段进行分类存储,构建出候选语句池;/n其中,构造候选语句池时所需要提取的代码片段的类型主要有if分支语句、for循环语句、函数调用以及函数体、以及赋值语句;对于生成代码的数量,测试人员可根据需求进行设置;对于代码的生成,使用代码随机生成工具随机生成;/n步骤2:检测是否达到测试时间限制;若未达到,则使用代码随机生成器生成测试用例种子代码;若已达到,则停止测试;/n其中,测试时间限制可由 ...
【技术特征摘要】
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被接受的概率P(Rn|Rn-1),使用公式(...
【专利技术属性】
技术研发人员:江贺,王尊,周志德,任志磊,
申请(专利权)人:大连理工大学,
类型:发明
国别省市:辽宁;21
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。