Abstract
In the recent past, a number of frequent subgraph mining algorithms has been proposed They allow for analyses in domains where data is naturally graphstructured. However, caused by scalability problems when dealing with large graphs, the application of graph mining has been limited to only a few domains. In software engineering, debugging is an important issue. It is most challenging to localize bugs automatically, as this is expensive to be done manually. Several approaches have been investigated, some of which analyze traces of repeated program executions. These traces can be represented as call graphs. Such graphs describe the invocations of methods during an execution. This chapter is a survey of graph mining approaches for bug localization based on the analysis of dynamic call graphs. In particular, this chapter first introduces the subproblem of reducing the size of call graphs, before the different approaches to localize bugs based on such reduced graphs are discussed. Finally, we compare selected techniques experimentally and provide an outlook on future issues.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
F. E. Allen. Interprocedural Data Flow Analysis. In Proc. of the IFIP Congress, 1974.
T. Asai, K. Abe, S. Kawasoe, H. Arimura, H. Sakamoto, and S. Arikawa. Efficient Substructure Discovery from Large Semi-structured Data. In Proc. of the 2nd SIAM Int. Conf. on Data Mining (SDM), 2002.
D. Chakrabarti and C. Faloutsos. Graph Mining: Laws, Generators, and Algorithms. ACM Computing Surveys (CSUR), 38(1):2, 2006.
R.-Y. Chang, A. Podgurski, and J. Yang. Discovering Neglected Conditions in Software by Mining Dependence Graphs. IEEE Transactions on Software Engineering, 34(5):579–596, 2008.
Y. Chi, R. Muntz, S. Nijssen, and J. Kok. Frequent Subtree Mining – An Overview. Fundamenta Informaticae, 66(1–2):161–198, 2005.
V. Dallmeier, C. Lindig, and A. Zeller. Lightweight Defect Localization for Java. In Proc. of the 19th European Conf. on Object-Oriented Programming (ECOOP), 2005.
V. Dallmeier and T. Zimmermann. Extraction of Bug Localization Benchmarks from History. In Proc. of the 22nd IEEE/ACM Int. Conf. on Automated Software Engineering (ASE), 2007.
I. F. Darwin. Java Cookbook. O’Reilly, 2004.
G. Di Fatta, S. Leue, and E. Stegantova. Discriminative Pattern Mining in Software Fault Detection. In Proc. of the 3rd Int. Workshop on Software Quality Assurance (SOQUA), 2006.
R. Diestel. Graph Theory. Springer, 2006.
T. G. Dietterich, P. Domingos, L. Getoor, S. Muggleton, and P. Tadepalli. Structured Machine Learning: The Next Ten Years. Machine Learning, 73(1):3–23, 2008.
F. Eichinger and K. Bohm. Towards Scalability of Graph-Mining Based Bug Localisation. In Proc. of the 7th Int. Workshop on Mining and Learning with Graphs (MLG), 2009.
F. Eichinger, K. Bohm, and M. Huber. Improved Software Fault Detection with Graph Mining. In Proc. of the 6th Int. Workshop on Mining and Learning with Graphs (MLG), 2008.
F. Eichinger, K. Bohm, and M. Huber. Mining Edge-Weighted Call Graphs to Localise Software Bugs. In Proc. of the European Conf. on Machine Learning and Principles and Practice of Knowledge Discovery in Databases (ECML PKDD), 2008.
M. D. Ernst, J. Cockrell, W. G. Griswold, and D. Notkin. Dynamically Discovering Likely Program Invariants to Support Program Evolution. IEEE Transactions on Software Engineering, 27(2):99–123, 2001.
M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, 1979.
S. L. Graham, P. B. Kessler, and M. K. Mckusick. gprof: A Call Graph Execution Profiler. In Proc. of the ACM SIGPLAN Symposium on Compiler Construction, 1982.
M. J. Harrold, R. Gupta, and M. L. Soffa. A Methodology for Controlling the Size of a Test Suite. ACM Transactions on Software Engineering and Methodology (TOSEM), 2(3):270–285, 1993.
W. Jiang, J. Vaidya, Z. Balaporia, C. Clifton, and B. Banich. Knowledge Discovery from Transportation Network Data. In Proc. of the 21st Int. Conf. on Data Engineering (ICDE), 2005.
J. A. Jones, M. J. Harrold, and J. Stasko. Visualization of Test Information to Assist Fault Localization. In Proc. of the 24th Int. Conf. on Software Engineering (ICSE), 2002.
P. Knab, M. Pinzger, and A. Bernstein. Predicting Defect Densities in Source Code Files with Decision Tree Learners. In Proc. of the Int. Workshop on Mining Software Repositories (MSR), 2006.
B. Korel and J. Laski. Dynamic Program Slicing. Information Processing Letters, 29(3):155–163, 1988.
B. Liblit, A. Aiken, A. X. Zheng, and M. I. Jordan. Bug Isolation via Remote Program Sampling. ACM SIGPLAN Notices, 38(5):141–154, 2003.
C. Liu, X. Yan, L. Fei, J. Han, and S. P. Midkiff. SOBER: Statistical Model-Based Bug Localization. SIGSOFT Software Engineering Notes, 30(5):286–295, 2005.
C. Liu, X. Yan, H. Yu, J. Han, and P. S. Yu. Mining Behavior Graphs for “Backtrace” of Noncrashing Bugs. In Proc. of the 5th SIAM Int. Conf. on Data Mining (SDM), 2005.
N. Nagappan, T. Ball, and A. Zeller. Mining Metrics to Predict Component Failures. In Proc. of the 28th Int. Conf. on Software Engineering (ICSE), 2006.
S. Nowozin, K. Tsuda, T. Uno, T. Kudo, and G. Bakir. Weighted Substructure Mining for Image Analysis. In Proc. of the Conf. on Computer Vision and Pattern Recognition (CVPR), 2007.
K. J. Ottenstein and L. M. Ottenstein. The Program Dependence Graph in a Software Development Environment. SIGSOFT Software Engineering Notes, 9(3):177–184, 1984.
J. R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.
A. Schroter, T. Zimmermann, and A. Zeller. Predicting Component Failures at Design Time. In Proc. of the 5th Int. Symposium on Empirical Software Engineering, 2006.
I. H. Witten and E. Frank. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. Morgan Kaufmann Publishers, 2005.
X. Yan and J. Han. gSpan: Graph-Based Substructure Pattern Mining. In Proc. of the 2nd IEEE Int. Conf. on Data Mining (ICDM), 2002.
X. Yan and J. Han. CloseGraph: Mining Closed Frequent Graph Patterns. In Proc. of the 9th ACM Int. Conf. on Knowledge Discovery and Data Mining (KDD), 2003.
T. Zimmermann, N. Nagappan, and A. Zeller. Predicting Bugs from History. In T. Mens and S. Demeyer, editors, Software Evolution, pages 69–88. Springer, 2008.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag US
About this chapter
Cite this chapter
Eichinger, F., Bo̶hm, K. (2010). Software-Bug Localization with Graph Mining. In: Aggarwal, C., Wang, H. (eds) Managing and Mining Graph Data. Advances in Database Systems, vol 40. Springer, Boston, MA. https://doi.org/10.1007/978-1-4419-6045-0_17
Download citation
DOI: https://doi.org/10.1007/978-1-4419-6045-0_17
Published:
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4419-6044-3
Online ISBN: 978-1-4419-6045-0
eBook Packages: Computer ScienceComputer Science (R0)