【EMI方法实现】EMI的实现包括对测试代码进行O0编译,生成执行文件并提取覆盖信息,然后根据这些信息随机剪枝测试代码的AST,构造出新的等价程序变体。对比同一编译器的不同优化等级(如O1、O2、O3)对这些等价程序的输出结果,以检测编译器的误编译问题。【EMI方法贡献】本文提出并实现了EMI测试框架Orion,...
一书中所带的编译器前端的Windows版命令行测试方法: 参考编译器前端(Front)所带的makefile文件,在命令行中输入: java main.Main <tests/$$i.t >tmp/$$i.i 其中$$i.t代表测试文件,而$$i.i为输出文件,如tests文件夹中prog0.t,输出为tmp文件夹中的prog0.i。 另外,Windows版命令行中如何执行makefile文件...
方法 算法(1)揭示了EMI的思想,主要是先用O0对测试代码编译生成执行文件,提取出执行文件的覆盖信息,然后根据这些覆盖信息,对测试代码的AST进行剪枝(具体剪枝策略见算法(2),其实就是随机删除一些执行的时候dead code的部分的语句)构成新的等价的变体程序,然后比较同一个编译器O1、O2、O3等对这些等价程序输出结果是否...
对于JavaScript引擎中的JIT编译器,测试样本成功率和覆盖率同样是衡量模糊测试性能的重要指标。其中测试样本成功率指成功进行JIT优化并执行优化代码的样本的比例,而覆盖率指JIT编译器部分的覆盖率。当今针对JavaScript引擎的模糊测试工具对JIT引擎的测试样本成功率不高。原因为:(1)JIT引擎需要特殊的条件进行触发,并不是所有...
语言模型生成多段能够调用一个或多个指定深度学习API的代码片段,以构成模糊测试的初始代码种子集合;根据指定深度学习API的文档进行传参的约束提取,得到API约束文件;基于API约束文件对初始代码种子进行变异,得到测试代码片段;通过比较测试代码片段在待测深度学习编译器与参考编译器的编译结果,得到待测深度学习编译器的测试...
编译器模糊测试,是测试编译器功能性与安全性的常用技术之一.模糊测试器通过产生语法正确的测试用例,对编译器的深层代码展开测试.近来,基于循环神经网络的深度学习模型被引入编译器模糊测试用例生成过程.针对现有方法生成测试用例的语法正确率不足,生成效率低...
编译器自动化测试的方法,该方法在C源文件中嵌入汇编,通过C编译器,汇编器,链接器编译得到的HEX文件后,结合下位机硬件仿真器来验证预期的结果,从而达到验证CSCC编译器的目的.本发明实现C编译器快速自动化测试,同时结合整个IDE的开发环境,也间接测试了整个C编译器工具链的正确性,解决C编译器手动编译,进入仿真设置繁琐...
摘要: 基于Java编译器的MC/DC测试覆盖方法设计,主要对Java文件中存在的条件表达式实现MC/DC测试覆盖算法,并对其条件语句进行插桩,生成插桩文件,针对后续的具体测试用例检查是否满足MC/DC测试覆盖算法以及覆盖率统计.关键词:Java编译器 MC/DC 插桩技术 DOI: 10.11907/rjdk.161755 ...
摘要 本文提供了一种RUST编程语言编译器的自动化测试方法及系统,其中,所述方法包括获得第一源代码程序;根据所述第一源代码程序构建RUST语言的抽象语法树;通过活代码变例算法在所述RUST语言的抽象语法树中进行等效模数输入,生成所述第一源代码程序的测试用例,根据所述第一源代码程序的测试用例进行自动化测试。解决了现...
在线编译器,方法实时测试分享代码 前端在线编译器:https://stackblitz.com/ .net core 在线编译器:https://dotnetfiddle.net/ https://gistlyn.com/ 如果您觉得本文对你有用,不妨帮忙点个赞,或者在评论里给我一句赞美,小小成就都是今后继续为大家编写优质文章的动力,百小僧拜谢! 欢迎您持续关注我的博客:)...