NPEX: Repairing Java']Java Null Pointer Exceptions without Tests

被引:7
|
作者
Lee, Junhee [1 ]
Hong, Seongjoon [1 ]
Oh, Hakjoo [1 ]
机构
[1] Korea Univ, Seoul, South Korea
基金
新加坡国家研究基金会;
关键词
CODE;
D O I
10.1145/3510003.3510186
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present NPEX, a new technique for repairing Java null pointer exceptions (NPEs) without tests. State-of-the-art NPE repair techniques rely on test suites written by developers for patch validation. Unfortunately, however, those are typically future test cases that are unavailable at the time bugs are reported or insufficient to identify correct patches. Unlike existing techniques, NPEX does not require test cases; instead, NPEX automatically infers the repair specification of the buggy program and uses the inferred specification to validate patches. The key idea is to learn a statistical model that predicts how developers would handle NPEs by mining null-handling patterns from existing codebases, and to use a variant of symbolic execution that can infer the repair specification from the buggy program using the model. We evaluated NPEX on real-world NPEs collected from diverse open-source projects. The results show that NPEX significantly outperforms the current state-of-the-art.
引用
收藏
页码:1532 / 1544
页数:13
相关论文
共 50 条
  • [31] How (Not) toWrite Java']Java Pointer Analyses after 2020
    Thakur, Manas
    PROCEEDINGS OF THE 2020 ACM SIGPLAN INTERNATIONAL SYMPOSIUM ON NEW IDEAS, NEW PARADIGMS, AND REFLECTIONS ON PROGRAMMING AND SOFTWARE (ONWARD! '20), 2020, : 134 - 145
  • [32] An approach for search based testing of null pointer exceptions
    Delft University of Technology, Netherlands
    不详
    不详
    Proc. - IEEE Int. Conf. Softw. Test., Verif., Validation, ICST, (160-169):
  • [33] Efficient and Effective Handling of Exceptions in Java']Java Points-to Analysis
    Kastrinis, George
    Smaragdakis, Yannis
    COMPILER CONSTRUCTION, CC 2013, 2013, 7791 : 41 - 60
  • [34] Exceptions in Java']Java and Eiffel: Two extremes in exception design and application
    Kiniry, Joseph R.
    ADVANCED TOPICS IN EXCEPTION HANDLING TECHNIQUES, 2006, 4119 : 288 - 300
  • [35] Testing java exceptions: An instrumentation technique
    Martins, Alexandre L.
    Hanazumi, Simone
    De Melo, Ana C.V.
    Proceedings - IEEE 38th Annual International Computers, Software and Applications Conference Workshops, COMPSACW 2014, 2014, : 626 - 631
  • [36] Pointer analysis of multithreaded Java programs
    Nanda, Mangala Gowri
    Ramesh, S.
    Proc ACM Symp Appl Computing, 1600, (1068-1075):
  • [37] Dynamic Patch Generation for Null Pointer Exceptions using Metaprogramming
    Durieux, Thomas
    Cornu, Benoit
    Seinturier, Lionel
    Monperrus, Martin
    2017 IEEE 24TH INTERNATIONAL CONFERENCE ON SOFTWARE ANALYSIS, EVOLUTION, AND REENGINEERING (SANER), 2017, : 349 - 358
  • [38] Automated Java']Java exceptions explanation using natural language generation techniques
    Assiri, Fatmah Yousef
    Elazhary, Hanan
    COMPUTER APPLICATIONS IN ENGINEERING EDUCATION, 2020, 28 (03) : 626 - 644
  • [39] SHARP: Fast Incremental Context-Sensitive Pointer Analysis for Java']Java
    Liu, Bozhen
    Huang, Jeff
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2022, 6 (OOPSLA):
  • [40] Secure information flow and pointer confinement in a Java']Java-like language
    Banerjee, A
    Naumann, DA
    15TH IEEE COMPUTER SECURITY FOUNDATION WORKSHOP, PROCEEDINGS, 2002, : 253 - 267