使用代码模型和领域适应生成自动化测试用例
在本文中,我们提出了一种新方法 CodeT,利用预先训练的语言模型自动生成代码示例的测试用例,从而减少人工成本并增加测试场景的覆盖范围,最终实现基于生成的测试用例的代码解决方案选择。
Jul, 2022
我们提出了一种基于大型语言模型的自动测试用例生成方法,证明它们是衡量学生知识的良好指标,使用了一个包含学生编写的 Java 代码的公开数据集,并讨论了以测试用例帮助学生为中心的未来研究方向。
Feb, 2024
使用大型语言模型的代码代理在形式化用户问题为测试用例方面具有重要能力,并且在生成相关测试用例方面表现出众,尤其是在代码修复方面,生成的测试用例是提出代码修复的一个有效过滤器。
Jun, 2024
该研究探讨了三种代码生成模型(CodeGen、Codex 和 GPT-3.5)在单元测试生成中的效果,发现 Codex 模型在 HumanEval 数据集中可以达到 80% 以上的覆盖率,但在 EvoSuite SF110 基准测试中,没有模型的覆盖率超过 2% 且生成的测试代码存在多种测试异味问题。
Apr, 2023
CAT-LM 是一个使用 27 亿参数在 Python 和 Java 项目语料库上进行训练的新颖的预训练信号,通过考虑代码和测试文件之间的映射来生成与开发人员相似的测试代码,并且在生成测试完成时比更大的语言模型和最近的测试特定模型表现更好。
Oct, 2023
AthenaTest 是一种通过学习从实际的焦点方法和开发人员编写的测试用例生成单元测试用例的方法,使用序列到序列学习任务,利用两步训练过程, 通过自然语言和源代码的预训练以及围绕中心方法的聚焦上下文信息来提高验证损失,并且使用公开可用的最大的有监督平行单元测试用例方法语料库对其进行评估。测试结果表明,AthenaTest 方法优于 GPT-3,并具有与 EvoSuite 相当的覆盖率和良好的可读性和理解性。
Sep, 2020
使用 CodeBERT 自动为 Java 代码分配质量评分,同时探索不同模型和训练范式对于代码质量评估的准确性,并使用新颖数据集评估预测的质量,发现基于 Transformer 模型的任务适应预训练方法比其他技术更高效地解决该任务。
Sep, 2023
通过利用结构和语义特性,我们提出了一种自动化方法来推荐对开发人员最相关且最有用的单元测试,从而显著提高软件测试过程的效果和效率。使用神经网络将源代码方法和单元测试转化为分布式表示,并根据嵌入向量的相似度,识别出最相似的嵌入方法和相关单元测试作为最相似的推荐。方法在 Methods2Test 数据集上取得了良好的结果,推荐的测试用例减少了开发人员生成预期测试用例的工作量。
Oct, 2023
TestPilot 是一个利用大语言模型的适应性测试生成技术,可以自动为给定的程序生成单元测试,以帮助确保软件的正确性。用户只需提供函数的特征和实现方法,再提取阅读文档,如果测试失败,则 TestPilot 的自适应组件尝试生成新的测试。在 25 个 npm 软件包上的实验表明,TestPilot 生成的测试达到了 93.1% 的语句覆盖率,平均 58.5% 的测试包含了来自被测试包的至少一个功能性断言。
Feb, 2023