Advertisement

Detecting Missing Method Calls in Object-Oriented Software

  • Martin Monperrus
  • Marcel Bruch
  • Mira Mezini
Part of the Lecture Notes in Computer Science book series (LNCS, volume 6183)

Abstract

When using object-oriented frameworks it is easy to overlook certain important method calls that are required at particular places in code. In this paper, we provide a comprehensive set of empirical facts on this problem, starting from traces of missing method calls in a bug repository. We propose a new system, which automatically detects them during both software development and quality assurance phases. The evaluation shows that it has a low false positive rate (<5%) and that it is able to find missing method calls in the source code of the Eclipse IDE.

Keywords

Method Call Real Software Syntactic Pattern Deviant Code Parent Widget 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Engler, D., Chen, D., Hallem, S., Chou, A., Chelf, B.: Bugs as deviant behavior: A general approach to inferring errors in systems code. In: Proceedings of SOSP 2001, vol. 35, pp. 57–72 (2001)Google Scholar
  2. 2.
    Li, Z., Zhou, Y.: Pr-miner: automatically extracting implicit programming rules and detecting violations in large software code. SIGSOFT Softw. Eng. Notes 30(5), 306–315 (2005)CrossRefGoogle Scholar
  3. 3.
    Livshits, B., Zimmermann, T.: Dynamine: finding common error patterns by mining software revision histories. SIGSOFT Softw. Eng. Notes 30(5), 296–305 (2005)CrossRefGoogle Scholar
  4. 4.
    Wasylkowski, A., Zeller, A., Lindig, C.: Detecting object usage anomalies. In: Proceedings of ESEC-FSE 2007, pp. 35–44. ACM, New York (2007)CrossRefGoogle Scholar
  5. 5.
    Robillard, M.P.: Topology analysis of software dependencies. ACM Trans. Softw. Eng. Methodol. 17(4), 1–36 (2008)CrossRefGoogle Scholar
  6. 6.
    Kim, S., Ernst, M.D.: Which warnings should i fix first? In: Proceedings of ESEC/FSE, pp. 45–54. ACM, New York (2007)Google Scholar
  7. 7.
    Baxter, G., Frean, M., Noble, J., Rickerby, M., Smith, H., Visser, M., Melton, H., Tempero, E.: Understanding the shape of java software. In: Proceedings of OOPSLA. ACM, New York (2006)Google Scholar
  8. 8.
    Lienberherr, K.: Formulations and benefits of the law of demeter. ACM SIGPLAN Notices 24(3), 67–78 (1989)CrossRefGoogle Scholar
  9. 9.
    Hovemeyer, D., Pugh, W.: Finding bugs is easy. SIGPLAN Not. 39(12), 92–106 (2004)CrossRefGoogle Scholar
  10. 10.
    Yang, G.: The complexity of mining maximal frequent itemsets and maximal frequent patterns. In: KDD 2004 (2004)Google Scholar
  11. 11.
    Ernst, M.D., Cockrell, J., Griswold, W., Notkin, D.: Dynamically discovering likely program invariants to support program evolution. IEEE Transactions on Software Engineering 27(2), 99–123 (2001)CrossRefGoogle Scholar
  12. 12.
    Hangal, S., Lam, M.S.: Tracking down software bugs using automatic anomaly detection. In: Proceedings of the 24th International Conference on Software Engineering (ICSE 2002), pp. 291–301 (2002)Google Scholar
  13. 13.
    Csallner, C., Smaragdakis, Y., Xie, T.: Dsd-crasher: A hybrid analysis tool for bug finding. ACM Trans. Softw. Eng. Methodol. 17(2), 1–37 (2008)CrossRefGoogle Scholar
  14. 14.
    Yang, J., Evans, D., Bhardwaj, D., Bhat, T., Das, M.: Perracotta: mining temporal api rules from imperfect traces. In: ICSE 2006: Proceedings of the 28th international conference on Software engineering, pp. 282–291. ACM, New York (2006)CrossRefGoogle Scholar
  15. 15.
    Dallmeier, V., Lindig, C., Zeller, A.: Lightweight defect localization for java. In: Black, A.P. (ed.) ECOOP 2005. LNCS, vol. 3586, pp. 528–550. Springer, Heidelberg (2005)Google Scholar
  16. 16.
    Williams, C.C., Hollingsworth, J.K.: Automatic mining of source code repositories to improve bug finding techniques. IEEE Transactions on Software Engineering 31(6), 466–480 (2005)CrossRefGoogle Scholar
  17. 17.
    Chang, R.-Y., Podgurski, A., Yang, J.: Finding what’s not there: A new approach to revealing neglected conditions in software. In: Proceedings of ISSTA 2007 (2007)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2010

Authors and Affiliations

  • Martin Monperrus
    • 1
  • Marcel Bruch
    • 1
  • Mira Mezini
    • 1
  1. 1.Technische Universität Darmstadt 

Personalised recommendations