JDExtractor:一种在Java项目中有效提取缺陷相关方法的自动化方法

IF 3.1 2区 计算机科学 Q3 COMPUTER SCIENCE, SOFTWARE ENGINEERING
Tianyang Liu, Jiawei Ye, Weixing Ji
{"title":"JDExtractor:一种在Java项目中有效提取缺陷相关方法的自动化方法","authors":"Tianyang Liu,&nbsp;Jiawei Ye,&nbsp;Weixing Ji","doi":"10.1007/s10515-025-00563-z","DOIUrl":null,"url":null,"abstract":"<div><p>High-quality repositories containing real-world defects are essential for developing defect-related algorithms. Although plenty of defect repositories exist, they often fail to capture the context of inter-procedural defects, which include all methods in the propagation path from the defect-source method to the defect-triggering method. This limitation is particularly critical for the Null Pointer Exception (NPE), a common defect that often propagates across multiple methods in Java systems. To address this problem, we propose a novel and automatic approach, called <i>JDExtractor</i>, to extract defect-related methods from real applications. The main challenge is how to identify all defect-related methods efficiently and accurately. <i>JDExtractor</i> tackles this challenge by constructing a method-level data graph using the principle of Java type compatibility and simplifying the data graph using filtering criteria. Data flow analysis helps construct a coarse-grained method-level data graph, which reflects the potential patterns of inter-procedural data interaction, thereby ensuring analysis efficiency. Afterward, filtering analysis simplifies the data graph based on the propagation properties of inter-procedural defects, thus ensuring analysis accuracy. Evaluation results suggest that both the static slicing tool WALA and the dynamic slicing tool Slicer4J yield several false positives, whereas <i>JDExtractor</i> successfully extracts defect-related methods and defect propagation paths with fewer false positives in a short time. Moreover, <i>JDExtractor</i> has been applied to open source projects on GitHub, ultimately extracting defect-related methods for 67 defects from 319 compiled open source applications.</p></div>","PeriodicalId":55414,"journal":{"name":"Automated Software Engineering","volume":"33 1","pages":""},"PeriodicalIF":3.1000,"publicationDate":"2025-10-18","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":"{\"title\":\"JDExtractor: an automated approach for efficient extraction of defect-related methods in Java projects\",\"authors\":\"Tianyang Liu,&nbsp;Jiawei Ye,&nbsp;Weixing Ji\",\"doi\":\"10.1007/s10515-025-00563-z\",\"DOIUrl\":null,\"url\":null,\"abstract\":\"<div><p>High-quality repositories containing real-world defects are essential for developing defect-related algorithms. Although plenty of defect repositories exist, they often fail to capture the context of inter-procedural defects, which include all methods in the propagation path from the defect-source method to the defect-triggering method. This limitation is particularly critical for the Null Pointer Exception (NPE), a common defect that often propagates across multiple methods in Java systems. To address this problem, we propose a novel and automatic approach, called <i>JDExtractor</i>, to extract defect-related methods from real applications. The main challenge is how to identify all defect-related methods efficiently and accurately. <i>JDExtractor</i> tackles this challenge by constructing a method-level data graph using the principle of Java type compatibility and simplifying the data graph using filtering criteria. Data flow analysis helps construct a coarse-grained method-level data graph, which reflects the potential patterns of inter-procedural data interaction, thereby ensuring analysis efficiency. Afterward, filtering analysis simplifies the data graph based on the propagation properties of inter-procedural defects, thus ensuring analysis accuracy. Evaluation results suggest that both the static slicing tool WALA and the dynamic slicing tool Slicer4J yield several false positives, whereas <i>JDExtractor</i> successfully extracts defect-related methods and defect propagation paths with fewer false positives in a short time. Moreover, <i>JDExtractor</i> has been applied to open source projects on GitHub, ultimately extracting defect-related methods for 67 defects from 319 compiled open source applications.</p></div>\",\"PeriodicalId\":55414,\"journal\":{\"name\":\"Automated Software Engineering\",\"volume\":\"33 1\",\"pages\":\"\"},\"PeriodicalIF\":3.1000,\"publicationDate\":\"2025-10-18\",\"publicationTypes\":\"Journal Article\",\"fieldsOfStudy\":null,\"isOpenAccess\":false,\"openAccessPdf\":\"\",\"citationCount\":\"0\",\"resultStr\":null,\"platform\":\"Semanticscholar\",\"paperid\":null,\"PeriodicalName\":\"Automated Software Engineering\",\"FirstCategoryId\":\"94\",\"ListUrlMain\":\"https://link.springer.com/article/10.1007/s10515-025-00563-z\",\"RegionNum\":2,\"RegionCategory\":\"计算机科学\",\"ArticlePicture\":[],\"TitleCN\":null,\"AbstractTextCN\":null,\"PMCID\":null,\"EPubDate\":\"\",\"PubModel\":\"\",\"JCR\":\"Q3\",\"JCRName\":\"COMPUTER SCIENCE, SOFTWARE ENGINEERING\",\"Score\":null,\"Total\":0}","platform":"Semanticscholar","paperid":null,"PeriodicalName":"Automated Software Engineering","FirstCategoryId":"94","ListUrlMain":"https://link.springer.com/article/10.1007/s10515-025-00563-z","RegionNum":2,"RegionCategory":"计算机科学","ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"Q3","JCRName":"COMPUTER SCIENCE, SOFTWARE ENGINEERING","Score":null,"Total":0}
引用次数: 0

摘要

包含真实缺陷的高质量存储库对于开发与缺陷相关的算法至关重要。尽管存在大量缺陷存储库,但是它们经常不能捕获过程间缺陷的上下文,其中包括从缺陷源方法到缺陷触发方法传播路径中的所有方法。这个限制对于空指针异常(NPE)尤其重要,这是Java系统中经常跨多个方法传播的常见缺陷。为了解决这个问题,我们提出了一种新的自动方法,称为JDExtractor,用于从实际应用程序中提取与缺陷相关的方法。主要的挑战是如何有效而准确地识别所有与缺陷相关的方法。JDExtractor通过使用Java类型兼容性原则构建方法级数据图并使用过滤标准简化数据图来解决这一挑战。数据流分析有助于构建粗粒度的方法级数据图,反映过程间数据交互的潜在模式,从而保证分析效率。然后,过滤分析根据过程间缺陷的传播特性对数据图进行简化,从而保证了分析的准确性。评估结果表明,静态切片工具WALA和动态切片工具Slicer4J都产生了几个假阳性,而JDExtractor在短时间内成功地提取了与缺陷相关的方法和缺陷传播路径,假阳性较少。此外,JDExtractor已被应用于GitHub上的开源项目,最终从319个编译的开源应用程序中提取了针对67个缺陷的缺陷相关方法。
本文章由计算机程序翻译,如有差异,请以英文原文为准。

JDExtractor: an automated approach for efficient extraction of defect-related methods in Java projects

JDExtractor: an automated approach for efficient extraction of defect-related methods in Java projects

High-quality repositories containing real-world defects are essential for developing defect-related algorithms. Although plenty of defect repositories exist, they often fail to capture the context of inter-procedural defects, which include all methods in the propagation path from the defect-source method to the defect-triggering method. This limitation is particularly critical for the Null Pointer Exception (NPE), a common defect that often propagates across multiple methods in Java systems. To address this problem, we propose a novel and automatic approach, called JDExtractor, to extract defect-related methods from real applications. The main challenge is how to identify all defect-related methods efficiently and accurately. JDExtractor tackles this challenge by constructing a method-level data graph using the principle of Java type compatibility and simplifying the data graph using filtering criteria. Data flow analysis helps construct a coarse-grained method-level data graph, which reflects the potential patterns of inter-procedural data interaction, thereby ensuring analysis efficiency. Afterward, filtering analysis simplifies the data graph based on the propagation properties of inter-procedural defects, thus ensuring analysis accuracy. Evaluation results suggest that both the static slicing tool WALA and the dynamic slicing tool Slicer4J yield several false positives, whereas JDExtractor successfully extracts defect-related methods and defect propagation paths with fewer false positives in a short time. Moreover, JDExtractor has been applied to open source projects on GitHub, ultimately extracting defect-related methods for 67 defects from 319 compiled open source applications.

求助全文
通过发布文献求助,成功后即可免费获取论文全文。 去求助
来源期刊
Automated Software Engineering
Automated Software Engineering 工程技术-计算机:软件工程
CiteScore
4.80
自引率
11.80%
发文量
51
审稿时长
>12 weeks
期刊介绍: This journal details research, tutorial papers, survey and accounts of significant industrial experience in the foundations, techniques, tools and applications of automated software engineering technology. This includes the study of techniques for constructing, understanding, adapting, and modeling software artifacts and processes. Coverage in Automated Software Engineering examines both automatic systems and collaborative systems as well as computational models of human software engineering activities. In addition, it presents knowledge representations and artificial intelligence techniques applicable to automated software engineering, and formal techniques that support or provide theoretical foundations. The journal also includes reviews of books, software, conferences and workshops.
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
确定
请完成安全验证×
copy
已复制链接
快去分享给好友吧!
我知道了
右上角分享
点击右上角分享
0
联系我们:info@booksci.cn Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。 Copyright © 2023 布克学术 All rights reserved.
京ICP备2023020795号-1
ghs 京公网安备 11010802042870号
Book学术文献互助
Book学术文献互助群
群 号:604180095
Book学术官方微信