Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
10.5555/1883978.1883982acmotherconferencesArticle/Chapter ViewAbstractPublication PagesecoopConference Proceedingsconference-collections
Article

Detecting missing method calls in object-oriented software

Published: 21 June 2010 Publication History
  • Get Citation Alerts
  • 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.

    References

    [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)
    [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)
    [3]
    Livshits, B., Zimmermann, T.: Dynamine: finding common error patterns by mining software revision histories. SIGSOFT Softw. Eng. Notes 30(5), 296-305 (2005)
    [4]
    Wasylkowski, A., Zeller, A., Lindig, C.: Detecting object usage anomalies. In: Proceedings of ESEC-FSE 2007, pp. 35-44. ACM, New York (2007)
    [5]
    Robillard, M.P.: Topology analysis of software dependencies. ACM Trans. Softw. Eng. Methodol. 17(4), 1-36 (2008)
    [6]
    Kim, S., Ernst, M.D.:Which warnings should i fix first? In: Proceedings of ESEC/FSE, pp. 45-54. ACM, New York (2007)
    [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)
    [8]
    Lienberherr, K.: Formulations and benefits of the law of demeter. ACM SIGPLAN Notices 24(3), 67-78 (1989)
    [9]
    Hovemeyer, D., Pugh, W.: Finding bugs is easy. SIGPLAN Not. 39(12), 92-106 (2004)
    [10]
    Yang, G.: The complexity of mining maximal frequent itemsets and maximal frequent patterns. In: KDD 2004 (2004)
    [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)
    [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)
    [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)
    [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)
    [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)
    [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)
    [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)

    Cited By

    View all
    • (2024)Poirot: Deep Learning for API Misuse DetectionProceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings10.1145/3639478.3643080(302-303)Online publication date: 14-Apr-2024
    • (2024)Scaling Code Pattern Inference with Interactive What-If AnalysisProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639193(1-12)Online publication date: 20-May-2024
    • (2020)API-misuse detection driven by fine-grained API-constraint knowledge graphProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416551(461-472)Online publication date: 21-Dec-2020
    • Show More Cited By

    Recommendations

    Comments

    Information & Contributors

    Information

    Published In

    cover image ACM Other conferences
    ECOOP'10: Proceedings of the 24th European conference on Object-oriented programming
    June 2010
    599 pages
    ISBN:3642141064
    • Editor:
    • Theo D'Hondt

    Sponsors

    • Google Inc.

    In-Cooperation

    Publisher

    Springer-Verlag

    Berlin, Heidelberg

    Publication History

    Published: 21 June 2010

    Check for updates

    Qualifiers

    • Article

    Contributors

    Other Metrics

    Bibliometrics & Citations

    Bibliometrics

    Article Metrics

    • Downloads (Last 12 months)0
    • Downloads (Last 6 weeks)0

    Other Metrics

    Citations

    Cited By

    View all
    • (2024)Poirot: Deep Learning for API Misuse DetectionProceedings of the 2024 IEEE/ACM 46th International Conference on Software Engineering: Companion Proceedings10.1145/3639478.3643080(302-303)Online publication date: 14-Apr-2024
    • (2024)Scaling Code Pattern Inference with Interactive What-If AnalysisProceedings of the IEEE/ACM 46th International Conference on Software Engineering10.1145/3597503.3639193(1-12)Online publication date: 20-May-2024
    • (2020)API-misuse detection driven by fine-grained API-constraint knowledge graphProceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering10.1145/3324884.3416551(461-472)Online publication date: 21-Dec-2020
    • (2018)API library-based identification and documentation of usage patternsInternational Journal of Computer Applications in Technology10.1504/IJCAT.2018.09406558:1(63-79)Online publication date: 1-Jan-2018
    • (2018)DeepBugs: a learning approach to name-based bug detectionProceedings of the ACM on Programming Languages10.1145/32765172:OOPSLA(1-25)Online publication date: 24-Oct-2018
    • (2018)Identifying software components from object-oriented APIs based on dynamic analysisProceedings of the 26th Conference on Program Comprehension10.1145/3196321.3196349(189-199)Online publication date: 28-May-2018
    • (2018)Are code examples on an online Q&A forum reliable?Proceedings of the 40th International Conference on Software Engineering10.1145/3180155.3180260(886-896)Online publication date: 27-May-2018
    • (2018)Visualizing API Usage Examples at ScaleProceedings of the 2018 CHI Conference on Human Factors in Computing Systems10.1145/3173574.3174154(1-12)Online publication date: 21-Apr-2018
    • (2017)Bayesian specification learning for finding API usage errorsProceedings of the 2017 11th Joint Meeting on Foundations of Software Engineering10.1145/3106237.3106284(151-162)Online publication date: 21-Aug-2017
    • (2016)Symbolic automata for representing big codeActa Informatica10.1007/s00236-015-0234-153:4(327-356)Online publication date: 1-Jun-2016
    • Show More Cited By

    View Options

    Get Access

    Login options

    View options

    Media

    Figures

    Other

    Tables

    Share

    Share

    Share this Publication link

    Share on social media