five

CLOVER

收藏
arXiv2025-02-13 更新2025-02-26 收录
下载链接:
http://arxiv.org/abs/2502.08806v1
下载链接
链接失效反馈
官方服务:
资源简介:
CLOVER是一个针对单元测试用例生成的基准数据集,由Salesforce AI Research创建。该数据集基于12个Python仓库中的845个问题,涵盖了从简单的断言完成到跨多个文件特定代码块的测试用例编写等任务。数据集通过自动化的管道进行构建,包含了从数据收集到最终评估的整个过程,旨在评估模型在生成可执行单元测试用例方面的能力。

CLOVER is a benchmark dataset for unit test case generation, developed by Salesforce AI Research. This dataset comprises 845 problems sourced from 12 Python repositories, covering tasks ranging from simple assertion completion to authoring test cases for specific code blocks across multiple files. Constructed through an automated pipeline that encompasses the full workflow from data collection to final evaluation, this dataset is designed to assess models' capabilities in generating executable unit test cases.
提供机构:
Salesforce AI Research
创建时间:
2025-02-13
搜集汇总
数据集介绍
main_image_url
构建方式
CLOVER数据集的构建旨在模拟现实世界中的软件测试场景,通过分析12个Python仓库中的845个问题,涵盖从4k到128k token的上下文长度。数据集的构建过程包括从GitHub上抓取许可的仓库,配置执行环境,提取和验证现有代码库中的测试用例,并将这些问题结构化为三个具有挑战性的任务。这些任务基于代码测试框架,并使用覆盖信息提出了一种构建检索上下文的方法。为了评估模型在长上下文中的性能,数据集还提供了每个例子的Oracle上下文。
特点
CLOVER数据集的特点包括涵盖广泛的上下文长度,从简单的断言完成到跨多个文件的特定代码块覆盖的测试用例生成。数据集还包括三个独特的任务,分别是模拟代码补全工具的Task I,要求覆盖和测试源代码中特定方法或类的Task II,以及要求提高代码覆盖率的Task III。此外,CLOVER数据集还引入了上下文利用率作为评估模型有效利用扩展上下文的能力的指标。
使用方法
CLOVER数据集的使用方法包括执行生成的代码并捕获行覆盖率,以提供对模型有效性的实际衡量。数据集的评估包括10个开源模型和4个专有模型。为了评估模型在现实上下文中的性能,数据集还提供了每个例子的Oracle上下文。CLOVER数据集还支持代码代理,并提供API和任务指令。数据集还包括了一个用于执行代码的沙盒环境,并打包在Docker镜像中,以保持最小干预,确保过程可扩展到更多的仓库。
背景与挑战
背景概述
软件测试是软件开发周期中的关键环节,然而生成测试用例对于工程师来说仍然是一项例行任务。为了评估模型在特定条件下生成和完成测试用例的能力,本文提出了一个基准,CLOVER。该基准涵盖了从简单的断言补全到跨多个文件的特定代码块覆盖的测试用例编写任务,这些任务基于12个Python仓库,分析了845个问题,上下文长度从4k到128k tokens不等。通过使用代码测试框架,本文提出了一种利用覆盖率信息构建检索上下文的方法。尽管模型在短上下文中表现出可比的性能,但在16k上下文中出现了明显的差异。值得注意的是,像GPT-4o和Claude 3.5这样的模型能够有效地利用相关代码片段;然而,即使在提供了神谕上下文的情况下,所有模型在复杂的任务III上的得分都低于35%,这突出了基准的重要性以及模型改进的潜力。基准被容器化,以便跨任务执行代码,并将发布代码、数据和构建方法。
当前挑战
CLOVER数据集相关的挑战包括:1)模型在解决领域问题(例如:ImageNet数据集解决的领域问题是图像分类)的挑战;2)构建过程中所遇到的挑战。具体挑战如下:1)模型在生成可执行测试用例方面存在困难,即使提供了神谕上下文。2)所有模型在处理16k上下文时都遇到了性能下降的问题,这表明模型在处理长上下文方面存在困难。3)开源模型和闭源模型在长上下文处理、上下文利用和指令遵循能力方面存在显著差距,这表明模型在这些方面还有很大的改进空间。4)CLOVER基准目前仅限于Python和特定的pytest工具,尚未探索使用代码代理来解决基准中的问题。
常用场景
经典使用场景
CLOVER数据集作为软件测试领域的基准,主要应用于评估大型语言模型(LLMs)在生成和完成测试用例方面的能力。该数据集涵盖了从简单的断言补全到跨多个文件的特定代码块覆盖的测试用例生成任务,基于12个Python仓库,分析了845个问题,上下文长度从4k到128k token不等。CLOVER数据集利用代码测试框架,提出了一种使用覆盖信息构建检索上下文的方法。在短上下文中,模型表现出可比的性能,但在16k上下文中,差异显著。特别是,像GPT-4o和Claude 3.5这样的模型能够有效地利用相关片段,但在即使提供了神谕上下文的情况下,所有模型在复杂的Task III上的得分都低于35%,这突出了基准的重要性以及模型改进的潜力。
实际应用
CLOVER数据集在实际应用中具有广泛的应用前景。它可以用于评估和选择最适合特定任务的LLMs,从而提高测试用例生成的效率和质量。此外,CLOVER数据集还可以用于改进LLMs的上下文处理、上下文利用和指令遵循能力,使其在软件测试中更加实用和高效。因此,CLOVER数据集为实际软件测试提供了一种新的解决方案,有望提高软件测试的自动化水平和效率。
衍生相关工作
CLOVER数据集衍生了许多相关工作,例如,它为LLMs在软件测试中的应用提供了新的研究方向,包括长上下文处理、上下文利用和指令遵循能力的研究。此外,CLOVER数据集还可以用于开发新的软件测试工具和框架,例如,可以基于CLOVER数据集开发一种自动化的测试用例生成工具,从而提高软件测试的自动化水平和效率。因此,CLOVER数据集为相关领域的研究和应用提供了重要的参考和借鉴。
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

面向社区/商业的数据集话题

二维码
科研交流群

面向高校/科研机构的开源数据集话题

数据驱动未来

携手共赢发展

商业合作