five

DyPyBench

收藏
arXiv2024-03-01 更新2024-06-21 收录
下载链接:
https://zenodo.org/doi/10.5281/zenodo.10683759
下载链接
链接失效反馈
官方服务:
资源简介:
DyPyBench是由斯图加特大学创建的一个大规模、多样化的Python项目基准数据集。该数据集包含50个流行的开源项目,总计681k行Python代码和30k测试案例。创建过程中,项目从Awesome Python仓库中选取,确保了项目的多样性和代表性。DyPyBench旨在解决动态分析技术在Python领域的评估和比较问题,通过提供一个准备就绪、易于分析的基准,支持动态分析和运行时行为研究,适用于测试、动态分析和规范挖掘等多个应用领域。

DyPyBench is a large-scale, diverse benchmark dataset of Python projects created by the University of Stuttgart. The dataset includes 50 popular open-source projects, totaling 681,000 lines of Python code and 30,000 test cases. During its development, projects were selected from the Awesome Python repository to ensure their diversity and representativeness. DyPyBench aims to address the challenges of evaluating and comparing dynamic analysis techniques in the Python domain. By providing a ready-to-use and easily analyzable benchmark, it supports dynamic analysis and runtime behavior research, and is applicable to multiple application fields such as software testing, dynamic analysis, and specification mining.
提供机构:
斯图加特大学
创建时间:
2024-03-01
搜集汇总
数据集介绍
main_image_url
构建方式
在动态程序分析领域,Python因其广泛的应用和动态特性而备受关注,但长期以来缺乏一个全面且可执行的基准测试套件。DyPyBench的构建过程旨在填补这一空白,其构建方法系统而严谨。研究团队从Awesome Python仓库中精心筛选了50个开源项目,这些项目均拥有超过500个GitHub星标,并覆盖了机器学习、Web开发、数据科学等多样化的应用领域,以确保数据集的代表性。为确保项目的可执行性,团队为每个项目创建了独立的Python虚拟环境,自动化安装了所有依赖项,并配置了基于pytest的测试套件。对于部分需要特殊处理的项目,团队进行了手动调整,例如修复无限循环或内存消耗过大的测试用例。最终,所有项目被封装在一个统一的Docker镜像中,并通过命令行接口提供了一键式设置与执行功能,确保了基准测试的易用性和可复现性。
使用方法
DyPyBench为Python动态分析与软件工程研究提供了高效便捷的实验平台。研究人员可通过其提供的Docker镜像快速部署完整的基准测试环境,或使用命令行工具灵活地安装、配置并执行单个或全部项目。数据集的核心价值在于其与DynaPyt框架的无缝集成,用户能够轻松编写自定义的动态分析脚本,并通过内置命令将其应用于整个基准测试集,从而大规模收集运行时数据,如动态调用图、执行轨迹和运行时值。该数据集已成功应用于多个研究场景:例如,通过对比静态与动态调用图来评估现有分析技术的局限性;为LExecutor等神经网络模型生成大规模训练数据以提升其预测准确性;以及从执行轨迹中挖掘API使用规约,为Python规约挖掘研究奠定基线。这些应用展示了DyPyBench在推动测试、程序分析和机器学习等领域研究方面的实用潜力。
背景与挑战
背景概述
在软件工程领域,Python凭借其动态特性和广泛的应用场景,已成为机器学习、数据分析和网络应用等领域的首选语言。然而,动态程序分析技术的发展长期受限于缺乏一个全面、可执行的Python项目基准测试套件。为填补这一空白,斯图加特大学的Islem Bouzenia、Bajaj Piyush Krishan和Michael Pradel于2024年共同创建了DyPyBench。该数据集作为首个大规模、多样化、即用型且支持动态分析的Python基准测试套件,涵盖了50个热门开源项目,总计68.1万行代码和2.9万个测试用例。其核心研究目标是为Python动态分析技术的开发、评估与比较提供标准化基础,从而推动程序运行时行为研究及相关工具的创新。
当前挑战
DyPyBench致力于解决Python动态程序分析领域缺乏统一评估基准的核心挑战。具体而言,其构建过程面临多重困难:首先,需在保持项目多样性的同时确保其可执行性,这涉及复杂的环境配置、依赖项安装及测试套件适配工作;其次,数据集需整合DynaPyt动态分析框架以实现即用型分析能力,这对工具链的兼容性与稳定性提出了较高要求。此外,数据集还需平衡规模与质量,通过精选不同应用领域的项目来代表Python生态的广度,同时处理测试用例中的硬件依赖、软件环境差异等执行障碍,以保障数据集的可靠性与可复现性。
常用场景
经典使用场景
在动态程序分析领域,Python因其动态特性而成为研究热点,但缺乏可执行基准测试集阻碍了进展。DyPyBench作为首个大规模、多样化、即用型Python基准测试套件,其经典使用场景在于为动态分析工具提供标准化评估平台。通过集成DynaPyt动态分析框架,研究人员能够便捷地对50个开源项目执行动态调用图分析、运行时数据收集及API使用规范挖掘,从而系统比较不同分析技术的性能与精度。
解决学术问题
DyPyBench有效解决了Python动态分析研究中长期存在的基准缺失问题。它通过提供包含681千行代码和30千测试用例的多样化项目集合,为静态与动态调用图对比、神经网络训练数据生成及规范挖掘等研究提供了可靠实验基础。该数据集量化了现有调用图构建技术的局限性,例如揭示PyCG静态分析在Python内置类型方法调用检测中的不足,并为动态分析技术的评估与比较建立了统一标准,推动了Python运行时行为研究的可重复性与科学性。
实际应用
在实际应用层面,DyPyBench为软件工程实践提供了重要支撑。开发团队可利用其动态分析能力检测代码中的性能瓶颈、安全漏洞及类型相关错误;测试工具如Pynguin可基于该基准生成更有效的单元测试案例。此外,数据集通过Docker容器化封装确保了跨平台执行的复现性,使得企业能够在持续集成流程中集成动态分析,优化Python项目的质量监控与维护效率。
数据集最近研究
最新研究方向
在动态程序分析领域,Python因其动态特性与广泛应用而备受关注,但长期以来缺乏可执行的基准测试套件,制约了相关研究的进展。DyPyBench作为首个大规模、多样化、即用型且可分析的Python项目基准,填补了这一空白,为动态分析技术提供了坚实的实验基础。该数据集推动了多个前沿研究方向,包括动态与静态调用图的对比分析,揭示了现有静态分析工具在Python内置类型方法调用识别上的局限性;同时,它支持神经网络模型如LExecutor的训练数据生成,通过大规模运行时数据提升模型预测准确性;此外,基于执行轨迹的API使用规约挖掘为Python软件行为理解提供了新途径。这些研究不仅深化了对Python运行时行为的认知,也为软件测试、缺陷检测及性能优化等热点问题提供了实证支持,对推动动态分析工具的发展与评估具有重要科学意义。
相关研究论文
  • 1
    DyPyBench: A Benchmark of Executable Python Software斯图加特大学 · 2024年
以上内容由遇见数据集搜集并总结生成
5,000+
优质数据集
54 个
任务类型
进入经典数据集
二维码
社区交流群

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

二维码
科研交流群

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

数据驱动未来

携手共赢发展

商业合作