Exploiting Abstract Syntax Trees to Locate Software Defects

作者: Thomas Joshua Shippey

DOI: 10.18745/TH.16365

关键词:

摘要: Context. Software defect prediction aims to reduce the large costs involved with faults in a software system. A wide range of traditional metrics have been evaluated as potential indicators. These are derived from source code or development process. Studies shown that no metric clearly out performs another and identifying defect-prone using has reached performance ceiling. Less studied, these being natural language code. newer, less finer grained promise within prediction. Aims. The aim this dissertation is study relationship between short Java constructs faultiness To introduces concept sequence snippet. Sequences created by abstract syntax tree. ordering nodes tree creates sequences, while small subsequences snippets. tries find snippets faulty non-faulty This also looks at evolution system matures, discover whether significantly associated change over time. Methods. achieve dissertation, two main techniques developed; finding defective extracting sequences Finding split into areas fix insertion points. points an implementation bug-linking algorithm developed, called S + e . Two algorithms were developed extract analysed binomial test which ones performed on five different datasets; ArgoUML, AspectJ three releases Eclipse.JDT.core Results. There significant associations some Frequently occurring fault-prone include those identifiers, method calls variables. always 201 across all systems. technique unable any seems evolves more becoming evolved analysed. Conclusions. introduced engineering use offers promising approach potentially Unlike previous approaches, based comprehensive analysis low level features allow full set defects be identified. Initial research related faults. provided additional empirical evidence already researched bad located systems, although indicators transfer successfully one rare.

参考文章(131)
Foyzur Rahman, Christian Bird, Premkumar Devanbu, Clones: What is that smell? 2010 7th IEEE Working Conference on Mining Software Repositories (MSR 2010). pp. 72- 81 ,(2010) , 10.1109/MSR.2010.5463343
Barbara A. Kitchenham, Emilia Mendes, Guilherme H. Travassos, Cross versus Within-Company Cost Estimation Studies: A Systematic Review IEEE Transactions on Software Engineering. ,vol. 33, pp. 316- 329 ,(2007) , 10.1109/TSE.2007.1001
Nachiappan Nagappan, Thomas Ball, Andreas Zeller, Mining metrics to predict component failures Proceeding of the 28th international conference on Software engineering - ICSE '06. pp. 452- 461 ,(2006) , 10.1145/1134285.1134349
S. Lessmann, B. Baesens, C. Mues, S. Pietsch, Benchmarking Classification Models for Software Defect Prediction: A Proposed Framework and Novel Findings IEEE Transactions on Software Engineering. ,vol. 34, pp. 485- 496 ,(2008) , 10.1109/TSE.2008.35
Jacek Ratzinger, Harald Gall, Martin Pinzger, Quality Assessment Based on Attribute Series of Software Evolution working conference on reverse engineering. pp. 80- 89 ,(2007) , 10.1109/WCRE.2007.39
Jens Krinke, Is Cloned Code More Stable than Non-cloned Code? source code analysis and manipulation. pp. 57- 66 ,(2008) , 10.1109/SCAM.2008.14
R. Subramanyam, M.S. Krishnan, Empirical analysis of CK metrics for object-oriented design complexity: implications for software defects IEEE Transactions on Software Engineering. ,vol. 29, pp. 297- 310 ,(2003) , 10.1109/TSE.2003.1191795
M. Fischer, M. Pinzger, H. Gall, Populating a Release History Database from version control and bug tracking systems international conference on software maintenance. pp. 23- 32 ,(2003) , 10.1109/ICSM.2003.1235403
N. Ohlsson, H. Alberg, Predicting fault-prone software modules in telephone switches IEEE Transactions on Software Engineering. ,vol. 22, pp. 886- 894 ,(1996) , 10.1109/32.553637
Nils Göde, Rainer Koschke, Frequency and risks of changes to clones international conference on software engineering. pp. 311- 320 ,(2011) , 10.1145/1985793.1985836