中文

pyMethods2Test:一个将 Python 测试映射到被测焦点方法的数据集

软件工程 2025-02-10 v1

摘要

Python 是增长最快的编程语言之一,目前在众多榜单中名列前茅,最近甚至在 GitHub 上超越了 JavaScript 成为最受欢迎的语言。鉴于其在数据科学和机器学习中的重要性,有效训练大语言模型(LLMs)为 Python 代码生成优质的单元测试用例势在必行。这催生了对一个大规模数据集的需求,以提供训练和测试数据。迄今为止,虽然 Java 等其他语言已有大型数据集,但 Python 尚无公开可用的此类数据集。由于 Python 的命名要求不那么严格,生成这样的数据集面临诸多困难挑战。在本工作中,我们考虑了两种常用的 Python 单元测试框架:Pytest 和 unittest。我们分析了超过 8.8 万个使用这些测试框架的开源 GitHub 项目的大型语料库。通过使用一套精心设计的启发式规则,我们能够定位超过 2200 万个测试方法。然后,我们分析测试和非测试代码,并将单个单元测试映射到其正在测试的被测方法。这提供了从测试到被测方法的显式可追溯性链接。我们的 pyMethods2Test 数据集包含了超过 200 万个这样的被测方法映射,并能够为输入到大语言模型生成有用的上下文。pyMethods2Test 数据集已在 Zenodo 上公开提供:https://doi.org/10.5281/zenodo.14264518

关键词

引用

@article{arxiv.2502.05143,
  title  = {pyMethods2Test: A Dataset of Python Tests Mapped to Focal Methods},
  author = {Idriss Abdelmadjid and Robert Dyer},
  journal= {arXiv preprint arXiv:2502.05143},
  year   = {2025}
}