TDD-Bench-Verified
收藏github2024-11-27 更新2024-11-28 收录
下载链接:
https://github.com/IBM/TDD-Bench-Verified
下载链接
链接失效反馈官方服务:
资源简介:
TDD-Bench-Verified是一个用于生成测试驱动开发(TDD)测试用例的新基准数据集。每个实例包含一个自然语言的问题描述和问题解决前的代码库版本。预测结果应包括在旧代码库上失败的测试用例,并在新代码库上通过。数据集包含449个实例,并提供了一个基于Docker的评估工具来评估预测结果。
TDD-Bench-Verified is a novel benchmark dataset designed for generating Test-Driven Development (TDD) test cases. Each instance consists of a natural language problem description and the initial version of the codebase prior to problem resolution. The required prediction should include test cases that fail against the initial codebase but pass when executed on the updated codebase. The dataset comprises 449 instances, and provides a Docker-based evaluation tool for assessing prediction outcomes.
创建时间:
2024-11-27
原始信息汇总
TDD-Bench-Verified 数据集概述
数据集简介
- 名称: TDD-Bench-Verified
- 类型: 用于测试驱动开发(TDD)的测试用例生成基准
- 描述:
- 该数据集包含449个实例,每个实例由自然语言的issue描述和代码库的原始版本组成。
- 目标是生成一组测试用例,这些测试用例在代码库的原始版本上失败,但在代码库的新版本上通过。
- 数据集提供了一个基于Docker的评估工具,用于评估生成的测试用例的失败到通过标准和代码覆盖率。
数据集结构
- 实例: 每个实例包含以下信息:
d_issue: 自然语言的issue描述c_old: 代码库的原始版本c_new: 代码库的新版本(用于验证测试用例)
- 预测: 每个实例的预测结果包含一组测试用例,这些测试用例应在
c_old上失败,在c_new上通过。
数据集使用
-
安装:
-
使用Docker进行可重复的评估。
-
通过以下命令从源代码构建数据集: bash git clone https://github.ibm.com/tfahmed/TDD-Bench-Verified.git cd TDD-Bench-Verified pip install -e .
-
生成包含完整数据集的
TDD_Bench.json文件: bash python dataset_preparation.py
-
-
测试安装:
- 运行以下命令测试安装: bash python -m tddbench.harness.run_evaluation --predictions_path gold --max_workers 1 --instance_ids astropy__astropy-14995 --run_id validate-gold
-
评估模型预测:
- 使用评估工具评估模型生成的测试补丁:
bash
python -m tddbench.harness.run_evaluation
--dataset_name TDD_Bench.json
--predictions_path <path_to_predictions> --max_workers <num_workers> --run_id <run_id>
- 使用评估工具评估模型生成的测试补丁:
bash
python -m tddbench.harness.run_evaluation
--dataset_name TDD_Bench.json
依赖项
- Python版本: 3.11或更高版本
- 依赖库:
- beautifulsoup4
- datasets
- docker
- ghapi
- python-dotenv
- requests
- unidiff
- tqdm
- pytest
- cldk
搜集汇总
数据集介绍

构建方式
TDD-Bench-Verified数据集的构建基于SWE-bench Verified,旨在为测试驱动开发(TDD)生成测试用例。每个实例由自然语言的问题描述和代码库的原始版本组成,即在问题被解决之前的代码状态。预测结果包括一组在原始代码上应失败而在新代码上应通过的测试。构建过程中,模型需在不查看新代码的情况下预测这些测试,这为大型语言模型(LLMs)提出了挑战。数据集包含449个实例,并配备了一个基于Docker的评估工具,用于验证预测结果的准确性和代码覆盖率。
特点
TDD-Bench-Verified数据集的主要特点在于其强调测试驱动开发的核心原则,即先写测试后写代码。这种设计使得测试更加关注接口而非实现细节,从而提高了代码的可信度和清晰度。此外,数据集的评估工具通过Docker确保了评估的可重复性和一致性,这对于跨平台和跨环境的实验尤为重要。数据集还提供了详细的实例描述和代码库状态,使得研究者能够深入分析和验证模型的预测能力。
使用方法
使用TDD-Bench-Verified数据集时,首先需按照Docker设置指南安装Docker,并从源代码构建数据集。通过运行dataset_preparation.py脚本生成包含完整数据集的TDD_Bench.json文件。随后,可以使用评估工具对模型生成的测试补丁进行评估,通过指定预测路径和运行ID来验证测试的失败到通过情况。评估结果包括TDD分数和失败到通过的实例数量,确保了模型在测试驱动开发中的实际应用效果。
背景与挑战
背景概述
TDD-Bench-Verified数据集是为测试驱动开发(TDD)生成测试用例的新基准。TDD是一种‘先测试,后编码’的实践,开发者先编写测试,再编写相应的代码。这使得测试最初失败,并在代码更改后通过。与‘先编码,后测试’的常见做法相比,TDD使需求更清晰,增强了对编写代码的信心,并强调接口而非实现细节。该数据集源自SWE-bench Verified,包含449个实例,每个实例由自然语言的问题描述和问题解决前的代码库版本组成。预测结果是一组在旧代码库上失败但在新代码库上通过的测试。
当前挑战
TDD-Bench-Verified数据集的主要挑战在于其预测任务的复杂性。模型需要在不查看新代码库的情况下预测测试用例,这对大型语言模型(LLMs)构成挑战。此外,数据集的构建过程中,确保测试用例的准确性和代码覆盖率也是一大挑战。评估过程中,需要验证每个预测的失败到通过标准,并测量代码更改的覆盖率,这要求高精度的测试和评估机制。
常用场景
经典使用场景
在软件开发领域,TDD-Bench-Verified数据集的经典使用场景主要集中在测试驱动开发(TDD)的自动化测试生成。该数据集通过提供自然语言描述的软件问题及其对应的代码库版本,使得研究人员和开发者能够训练模型,预测在代码变更前应失败的测试用例,并在代码变更后通过这些测试。这种场景不仅强化了测试的预见性,还提升了代码变更后的质量保证。
解决学术问题
TDD-Bench-Verified数据集解决了测试驱动开发中自动化测试生成的问题,特别是在大型语言模型(LLMs)的应用上。通过提供详细的自然语言问题描述和代码库版本,该数据集帮助研究者开发和验证能够预测测试用例的模型,从而在学术界推动了自动化测试生成技术的发展。这不仅提升了软件开发的效率,还增强了代码变更后的可靠性。
衍生相关工作
基于TDD-Bench-Verified数据集,研究者们开发了多种相关的经典工作。例如,一些研究聚焦于优化测试用例生成的算法,以提高预测的准确性和覆盖率;另一些工作则探索了如何将这些自动化测试集成到现有的开发流程中,以实现更高效的持续集成和持续交付(CI/CD)。这些衍生工作不仅丰富了测试驱动开发的理论基础,还推动了其在实际应用中的广泛采用。
以上内容由遇见数据集搜集并总结生成



