中文

PCART:Python API参数兼容性问题的自动修复

软件工程 2025-12-24 v6

摘要

在现代软件开发中,Python第三方库扮演着关键角色,尤其是在深度学习和科学计算等领域。然而,这些库中的API参数在演化过程中经常发生变化,导致依赖特定版本的客户端应用程序出现兼容性问题。Python灵活的参数传递机制进一步加剧了这一问题,因为不同的传递方式可能导致不同的API兼容性。目前,没有工具能够自动检测和修复Python API参数兼容性问题。为填补这一空白,我们引入了PCART,这是第一个完全自动化API提取、代码插桩、API映射建立、兼容性评估、修复和验证的解决方案。PCART处理多种类型的Python API参数兼容性问题,包括参数添加、删除、重命名、重排序以及位置参数向关键字参数的转换。为了评估PCART,我们构建了PCBENCH,这是一个大规模基准测试,包含从33个流行Python库的844个参数变更API中变异出的47,478个测试用例。评估结果表明,PCART既有效又高效,显著优于现有工具(MLCatchUp和Relancer)以及大型语言模型ChatGPT(GPT-4o),在检测API参数兼容性问题方面达到了96.51%的F1分数,修复精度为91.97%。在来自GitHub的30个真实Python项目上的进一步评估证实了PCART的实用性。我们相信PCART能够显著减少程序员维护Python API更新的时间,并推动Python API兼容性问题修复的自动化。

关键词

引用

@article{arxiv.2406.03839,
  title  = {PCART: Automated Repair of Python API Parameter Compatibility Issues},
  author = {Shuai Zhang and Guanping Xiao and Jun Wang and Huashan Lei and Gangqiang He and Yepang Liu and Zheng Zheng},
  journal= {arXiv preprint arXiv:2406.03839},
  year   = {2025}
}

备注

Accepted by IEEE Transactions on Software Engineering