Please use this identifier to cite or link to this item: http://hdl.handle.net/10397/114191
PIRA download icon_1.1View/Download Full Text
DC FieldValueLanguage
dc.contributorDepartment of Computingen_US
dc.creatorZhang, Hen_US
dc.creatorPei, Yen_US
dc.creatorLiang, Sen_US
dc.creatorTan, SHen_US
dc.date.accessioned2025-07-15T08:44:11Z-
dc.date.available2025-07-15T08:44:11Z-
dc.identifier.urihttp://hdl.handle.net/10397/114191-
dc.language.isoenen_US
dc.publisherAssociation for Computing Machineryen_US
dc.rightsThis work is licensed under a Creative Commons Attribution 4.0 International License (https://creativecommons.org/licenses/by/4.0/).en_US
dc.rights© 2024 Copyright held by the owner/author(s).en_US
dc.rightsThe following publication Zhang, H., Pei, Y., Liang, S., & Tan, S. H. (2024). Understanding and Detecting Annotation-Induced Faults of Static Analyzers. Proc. ACM Softw. Eng., 1(FSE), Article 33 is available at https://doi.org/10.1145/3643759.en_US
dc.titleUnderstanding and detecting annotation-induced faults of static analyzersen_US
dc.typeConference Paperen_US
dc.identifier.spage722en_US
dc.identifier.epage744en_US
dc.identifier.volume1en_US
dc.identifier.issueFSEen_US
dc.identifier.doi10.1145/3643759en_US
dcterms.abstractStatic analyzers can reason about the properties and behaviors of programs and detect various issues without executing them. Hence, they should extract the necessary information to understand the analyzed program well. Annotation has been a widely used feature for different purposes in Java since the introduction of Java 5. Annotations can change program structures and convey semantics information without awareness of static analyzers, consequently leading to imprecise analysis results. This paper presents the first comprehensive study of annotation-induced faults (AIF) by analyzing 246 issues in six open-source and popular static analyzers (i.e., PMD, SpotBugs, CheckStyle, Infer, SonarQube, and Soot). We analyzed the issues' root causes, symptoms, and fix strategies and derived ten findings and some practical guidelines for detecting and repairing annotation-induced faults. Moreover, we developed an automated testing framework called AnnaTester based on three metamorphic relations originating from the findings. AnnaTester generated new tests based on the official test suites of static analyzers and unveiled 43 new faults, 20 of which have been fixed. The results confirm the value of our study and its findings.en_US
dcterms.accessRightsopen accessen_US
dcterms.bibliographicCitationProceedings of the ACM on Software Engineering, July 2024, v. 1, no. FSE, 33, p. 722-744en_US
dcterms.isPartOfProceedings of the ACM on Software Engineeringen_US
dcterms.issued2024-07-
dc.identifier.eissn2994-970Xen_US
dc.identifier.artn33en_US
dc.description.validate202507 bcchen_US
dc.description.oaVersion of Recorden_US
dc.identifier.FolderNumbera3888-
dc.identifier.SubFormID51562-
dc.description.fundingSourceSelf-fundeden_US
dc.description.pubStatusPublisheden_US
dc.description.oaCategoryCCen_US
dc.relation.rdatahttps://annaresearch.github.io/en_US
Appears in Collections:Conference Paper
Files in This Item:
File Description SizeFormat 
3643759.pdf426.11 kBAdobe PDFView/Open
Open Access Information
Status open access
File Version Version of Record
Access
View full-text via PolyU eLinks SFX Query
Show simple item record

Page views

148
Citations as of Feb 9, 2026

Downloads

68
Citations as of Feb 9, 2026

Google ScholarTM

Check

Altmetric


Items in DSpace are protected by copyright, with all rights reserved, unless otherwise indicated.