国内刊号:31-1289/TP
国际刊号:1000-3428
发布日期:
作者:黄晓伟, 范贵生, 虞慧群, 杨星光
单位:1. 华东理工大学 计算机科学与工程系, 上海 200237;2. 上海市计算机软件测评重点实验室, 上海 201112
关键词:软件质量保障,软件缺陷预测,代码表征,抽象语法树,深度学习
基金:国家自然科学基金(61702334,61772200);上海市浦江人才计划(17PJ1401900);上海市自然科学基金(17ZR1406900,17ZR1429700);华东理工大学教育科研基金(ZH1726108)。
在实际软件项目开发过程中,软件缺陷预测能辅助测试人员找到项目中可能存在缺陷的位置,并通过抽象语法树(AST)获取项目模块中隐藏的结构和语义信息,此类信息有助于提高缺陷预测精度。提出基于重子节点抽象语法树的缺陷预测方法,在提取节点信息时保留节点的类型信息和对应代码语义的值信息,并使用特殊字符串代替没有值信息的节点。通过树链剖分思想将AST分割为重子节点和轻子节点,优先选择重子节点作为序列化向量中的节点,同时利用深度学习网络学习节点序列中的源代码结构和语言实现软件缺陷预测。实验结果表明,与DFS方法相比,该方法在基于注意力机制的循环神经网络深度学习模型上的F1值和AUC值平均提升约3%和4%,具有更好的缺陷预测效果。
来源:2021年第12期
《计算机工程》期刊编辑部