国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:徐浩然,王勇军,黄志坚,解培岱,范书珲
单位:徐浩然,国防科技大学 计算机学院, 湖南 长沙 41007311,王勇军,国防科技大学 计算机学院, 湖南 长沙 41007302,黄志坚,军事科学院 系统工程研究院, 北京 10009703,解培岱,国防科技大学 计算机学院, 湖南 长沙 41007304,范书珲,国防科技大学 计算机学院, 湖南 长沙 41007305
关键词:软件缺陷;编译器模糊测试;深度学习;前馈神经网络;抽象语法树
基金:国家自然科学基金(61472439);国家重点研发计划(2018YFB0204301)
编译器模糊测试,是测试编译器功能性与安全性的常用技术之一.模糊测试器通过产生语法正确的测试用例,对编译器的深层代码展开测试.近来,基于循环神经网络的深度学习模型被引入编译器模糊测试用例生成过程.针对现有方法生成测试用例的语法正确率不足、生成效率低的问题,提出一种基于前馈神经网络的编译器模糊测试用例生成方法,并设计实现了原型工具FAIR.与现有的基于token序列学习的方法不同,FAIR从抽象语法树中提取代码片段,利用基于自注意力的前馈神经网络捕获代码片段之间的语法关联,通过学习程序设计语言的生成式模型,自动生成多样化的测试用例.实验结果表明,FAIR生成测试用例的解析通过率以及生成效率均优于同类型先进方法.该方法显著提升了检测编译器软件缺陷的能力,已成功检测出GCC和LLVM的20处软件缺陷.此外,该方法具有良好的可移植性,简单移植后的FAIR-JS已在JavaScript引擎中检测到两处软件缺陷.
来源:2022年第6期
《软件学报》期刊编辑部