ReAssert:用于断言生成的深度学习
软件工程
2020-11-20 v1 人工智能
摘要
测试代码的自动生成可减少构建软件所需的时间和精力,同时提高其正确性与鲁棒性。本文提出 RE-ASSERT,一种用于自动生成 JUnit 测试断言的方法,其生成的断言比以往工作更准确且约束更少。这是通过针对各项目 individually 处理、利用精确的代码到测试可追溯性进行学习,并直接从被测方法生成断言语句而无需先编写无断言测试来实现的。我们还利用先进的深度学习模型 Reformer,以及以往工作中的两个模型,通过词法准确率、唯一性和动态分析来评估 ReAssert 与已有方法 ATLAS。我们对 ReAssert 的评估显示,单个项目中多达 44% 的生成断言与真实值完全匹配,对于可编译的生成断言该比例升至 51%。我们通过使用 Reformer 也改进了 ATLAS 的结果,28% 的生成断言与真实值完全匹配。Reformer 还产生了最大比例的唯一断言 (71%),进一步证明 Reformer 产生了最有用的断言。
引用
@article{arxiv.2011.09784,
title = {ReAssert: Deep Learning for Assert Generation},
author = {Robert White and Jens Krinke},
journal= {arXiv preprint arXiv:2011.09784},
year = {2020}
}
备注
10 pages, 6 figures, conference