软件学报

北大核心,INSPEC,JST,Pж(AJ),EI

国内刊号:11-2560/TP

国际刊号:1000-9825

软件学报杂志2025年第4期:基于静态分析的Python第三方库API兼容性问题检测方法

发布日期:

作者:沈阚,黄凯锋,陈碧欢,彭鑫

单位:沈阚,复旦大学 计算机科学技术学院, 上海 20043311,黄凯锋,复旦大学 计算机科学技术学院, 上海 20043302,陈碧欢,复旦大学 计算机科学技术学院, 上海 20043303,彭鑫,复旦大学 计算机科学技术学院, 上海 20043304

关键词:Python;静态分析;第三方库;API兼容性问题;版本演化

基金:国家自然科学基金(62372114); 中国博士后科学基金(2022M720768)

Python丰富的开发生态提供了多种多样的第三方库, 极大地提高了开发者的开发效率和质量. 第三方库开发者通过对代码底层的封装, 使得上层应用开发者只需调用API就可以使用相关功能, 从而快速完成开发任务. 然而, 第三方库API不会保持恒定不变. 由于缺陷修复、代码重构、功能新增等, 第三方库代码会不断更新. 更新后部分API发生了不兼容的更改, 从而导致上层应用运行异常终止或者产生不一致的结果. 因此, Python第三方库API的兼容性问题已成为目前开源生态中亟需解决的问题之一. 目前已有相关研究工作对Python第三方库API兼容性问题展开研究, 但兼容性问题原因的分类覆盖不够完全, 无法输出兼容性问题的细粒度原因. 为此, 对Python第三方库API兼容性问题的表现形式和产生原因开展了实证研究, 并针对性提出了Python不兼容API的静态检测方法. 首先, 针对flask库和pandas库的总共6个版本对, 通过收集版本更新日志、运行回归测试相结合的方法, 共收集108个不兼容API对. 接着, 对收集到的数据开展实证研究, 总结了Python第三方库API兼容性问题的表现形式和产生原因. 最后, 提出了一种基于静态分析技术的Python不兼容API的检测方法, 输出句法层面的不兼容API问题产生原因. 在4个常用Python第三方库的共计12个版本对上进行了实验评估, 结果表明检测方法具有良好的有效性、泛化性、时间性能、空间性能以及易用性.

来源:2025年第4期

《软件学报》期刊编辑部

查看软件学报杂志2025年第4期

联系我们

  • 地址:北京8718信箱
  • 电话:010-62562563
  • E-mail:jos (a) iscas. ac. cn

咨询工作人员