期刊文献+

基于规则的高风险动态类型代码检测研究

Rule-based Technique for Detecting Risky Dynamic Typing Code
下载PDF
导出
摘要 近年来,Python的应用呈爆炸式增长。虽然Python的动态类型特性为开发人员提供了强大的编程抽象能力,但同样也导致代码库中聚集了与类型相关的缺陷。为了减少软件代码中的类型缺陷,文中分析并检测了6种可能导致类型缺陷的高风险动态类型代码。首先,形式化地描述了每种类型的高风险动态类型代码的规则;然后,提出了一种基于规则的高风险动态类型代码检测技术;最后,对25个Python开源软件项目(总规模超过945kLOC)展开了实验评估。结果表明,高风险动态类型代码在开源软件项目中广泛存在,尤其是单个Python函数中可能存在多处变量类型不一致的代码,而基于规则的检测技术在Python软件项目中具有较高的准确率和较好的性能表现。针对高风险动态类型代码的检测技术及实验结论,将为动态类型特性的良性发展以及软件项目的质量保障提供有力的参考和支持。 ions,that same dynamic type system allows for type-related defects to accumulate in code bases.To address these issues,this paper investigates six types of risky dynamic typing code which could incur type-related defects.This paper formally describes the rule of each type of risky dynamic typing code and then proposes a rule-based technique for detecting them.We conduct a study on 25 real-world Python open-source software projects(with the total size of more than 945kLOC).The results show that risky dynamic typing code is widespread in open-source software projects and a single Python method could gather multiple instances of inconsistent variable types,and the rule-based detection technique achieves high detection accuracy and good performance.The technique for detecting risky dynamic typing code and findings from this work will provide a strong reference and support for healthy evolvement of dynamic typing feature and quality assurance of software projects.
作者 陈芝菲 郝洋 陈林 肖亮 CHEN Zhifei;HAO Yang;CHEN Lin;XIAO Liang(School of Computer Science and Engineering,Nanjing University of Science and Technology,Nanjing 210094,China;State Key Laboratory for Novel Software Technology,Nanjing University,Nanjing 210023,China)
出处 《计算机科学》 CSCD 北大核心 2023年第7期27-37,共11页 Computer Science
基金 国家重点研发计划(2022YFF0712100) 江苏省自然科学基金(BK20220937) 江苏省研究生科研与实践创新计划项目(KYCX22_0465)。
关键词 PYTHON 动态类型 类型缺陷 开源软件 高风险动态类型代码 检测技术 Python Dynamic typing Type defects Open-source software Risky dynamic typing code Detection technique
  • 相关文献

参考文献3

二级参考文献13

共引文献14

相关作者

内容加载中请稍等...

相关机构

内容加载中请稍等...

相关主题

内容加载中请稍等...

浏览历史

内容加载中请稍等...
;
使用帮助 返回顶部