使用预训练Transformer生成准确的单元测试断言语句
AthenaTest是一种通过学习从实际的焦点方法和开发人员编写的测试用例生成单元测试用例的方法,使用序列到序列学习任务,利用两步训练过程, 通过自然语言和源代码的预训练以及围绕中心方法的聚焦上下文信息来提高验证损失,并且使用公开可用的最大的有监督平行单元测试用例方法语料库对其进行评估。测试结果表明,AthenaTest方法优于GPT-3,并具有与EvoSuite相当的覆盖率和良好的可读性和理解性。
Sep, 2020
在本文中,我们提出了一种新方法CodeT,利用预先训练的语言模型自动生成代码示例的测试用例,从而减少人工成本并增加测试场景的覆盖范围,最终实现基于生成的测试用例的代码解决方案选择。
Jul, 2022
研究提出了利用深度学习进行文本和代码生成的方法,实现了代码测试中自动完成测试语句的新任务,并使用代码语义数据构建了一个名为TeCo的深度学习模型,成功提高了测试语句准确性,且优于现有模型。
Feb, 2023
该研究探讨了三种代码生成模型(CodeGen、Codex和GPT-3.5)在单元测试生成中的效果,发现Codex模型在HumanEval数据集中可以达到80%以上的覆盖率,但在EvoSuite SF110基准测试中,没有模型的覆盖率超过2%且生成的测试代码存在多种测试异味问题。
Apr, 2023
使用Transformer-based代码模型,提出完全自动化的测试框架,能够生成可编译和可读的单元测试,可以补充搜索-based测试生成的测试,并且能够覆盖开发人员编写测试中未覆盖的代码行。
Aug, 2023
CAT-LM是一个使用27亿参数在Python和Java项目语料库上进行训练的新颖的预训练信号,通过考虑代码和测试文件之间的映射来生成与开发人员相似的测试代码,并且在生成测试完成时比更大的语言模型和最近的测试特定模型表现更好。
Oct, 2023
通过利用结构和语义特性,我们提出了一种自动化方法来推荐对开发人员最相关且最有用的单元测试,从而显著提高软件测试过程的效果和效率。使用神经网络将源代码方法和单元测试转化为分布式表示,并根据嵌入向量的相似度,识别出最相似的嵌入方法和相关单元测试作为最相似的推荐。方法在Methods2Test数据集上取得了良好的结果,推荐的测试用例减少了开发人员生成预期测试用例的工作量。
Oct, 2023
通过实验研究了使用大型语言模型(LLMs)ChatGPT在Python程序中生成单元测试脚本的有效性,发现它在覆盖率方面与Pynguin相当,但在生成测试用例方面优于Pynguin;此外,发现ChatGPT能够提供更好的测试覆盖率,此外通过优化ChatGPT的提示工程,可在某些情况下提高覆盖率。
Dec, 2023
本研究针对现有单元测试生成方法在复杂真实软件开发情境下的局限,提出了一种新的测试生成与评估方案。我们的系统\textsc{AgoneTest}专注于类级测试代码的自动生成,并自动化了从测试生成到评估的全过程。研究显示,该系统能够有效提升测试质量,并为多种 Java 项目生成高效的测试套件。
Aug, 2024
本研究解决了自动生成的单元测试对软件工程师理解性的挑战,提出了UTGen方法,将基于搜索的软件测试与大型语言模型结合。研究发现,使用UTGen生成的测试用例,参与者在修复错误时效率提高33%,时间减少20%。
Aug, 2024