一种基于搜索的源代码嵌入深度神经网络测试框架
软件工程
2021-01-21 v1
摘要
过去几年中,深度神经网络(DNNs)在软件工程领域的源代码处理任务(例如克隆检测、代码搜索、注释生成)中的实际应用不断扩展。尽管近期已有不少工作针对图像和语音处理背景下的DNN测试展开,但针对具有独特特征与挑战的源代码处理背景下的DNN测试,迄今进展有限。本文提出一种面向源代码嵌入DNN及其下游处理任务(如代码搜索)的基于搜索的测试框架。为生成新测试输入,我们采用流行的源代码重构工具生成语义等价变体。为更有效地测试,我们利用DNN变异测试引导测试方向。为证明技术的实用性,我们基于多种最先进的代码嵌入方法(即Code2vec、Code2seq和CodeBERT)对流行的源代码处理DNN进行了大规模评估。测试结果表明,我们生成的对抗样本平均可使这些DNN的性能下降5.41%至9.58%。通过使用生成的对抗样本重新训练DNN,其鲁棒性平均可提升23.05%。评估结果还显示,与其他方法相比,我们的对抗测试生成策略对DNN在常规测试数据上性能的影响最小(中位数为3.56%)。
引用
@article{arxiv.2101.07910,
title = {A Search-Based Testing Framework for Deep Neural Networks of Source Code Embedding},
author = {Maryam Vahdat Pour and Zhuo Li and Lei Ma and Hadi Hemmati},
journal= {arXiv preprint arXiv:2101.07910},
year = {2021}
}
备注
ICST 2021