Skip to main content

Software-Bug Localization with Graph Mining

  • Chapter
  • First Online:
Managing and Mining Graph Data

Part of the book series: Advances in Database Systems ((ADBS,volume 40))

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 169.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 219.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 219.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. F. E. Allen. Interprocedural Data Flow Analysis. In Proc. of the IFIP Congress, 1974.

    Google Scholar 

  2. 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.

    Google Scholar 

  3. D. Chakrabarti and C. Faloutsos. Graph Mining: Laws, Generators, and Algorithms. ACM Computing Surveys (CSUR), 38(1):2, 2006.

    Article  Google Scholar 

  4. 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.

    Article  Google Scholar 

  5. Y. Chi, R. Muntz, S. Nijssen, and J. Kok. Frequent Subtree Mining – An Overview. Fundamenta Informaticae, 66(1–2):161–198, 2005.

    MATH  MathSciNet  Google Scholar 

  6. 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.

    Google Scholar 

  7. 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.

    Google Scholar 

  8. I. F. Darwin. Java Cookbook. O’Reilly, 2004.

    Google Scholar 

  9. 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.

    Google Scholar 

  10. R. Diestel. Graph Theory. Springer, 2006.

    Google Scholar 

  11. 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.

    Article  Google Scholar 

  12. 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.

    Google Scholar 

  13. 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.

    Google Scholar 

  14. 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.

    Google Scholar 

  15. 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.

    Article  Google Scholar 

  16. M. R. Garey and D. S. Johnson. Computers and Intractability: A Guide to the Theory of NP-Completeness. W. H. Freeman, 1979.

    Google Scholar 

  17. 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.

    Google Scholar 

  18. 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.

    Article  Google Scholar 

  19. 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.

    Google Scholar 

  20. 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.

    Google Scholar 

  21. 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.

    Google Scholar 

  22. B. Korel and J. Laski. Dynamic Program Slicing. Information Processing Letters, 29(3):155–163, 1988.

    Article  MATH  Google Scholar 

  23. 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.

    Article  Google Scholar 

  24. 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.

    Article  Google Scholar 

  25. 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.

    Google Scholar 

  26. 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.

    Google Scholar 

  27. 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.

    Google Scholar 

  28. 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.

    Article  Google Scholar 

  29. J. R. Quinlan. C4.5: Programs for Machine Learning. Morgan Kaufmann Publishers, 1993.

    Google Scholar 

  30. 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.

    Google Scholar 

  31. I. H. Witten and E. Frank. Data Mining: Practical Machine Learning Tools and Techniques with Java Implementations. Morgan Kaufmann Publishers, 2005.

    Google Scholar 

  32. X. Yan and J. Han. gSpan: Graph-Based Substructure Pattern Mining. In Proc. of the 2nd IEEE Int. Conf. on Data Mining (ICDM), 2002.

    Google Scholar 

  33. 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.

    Google Scholar 

  34. 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.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Frank Eichinger .

Editor information

Editors and Affiliations

Rights and permissions

Reprints 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)

Publish with us

Policies and ethics