Casper: Automatic tracking of null dereferences to inception with causality traces

  title={Casper: Automatic tracking of null dereferences to inception with causality traces},
  author={Benoit Cornu and Earl T. Barr and Lionel Seinturier and Monperrus Martin},
  journal={J. Syst. Softw.},
4 Citations

Figures and Tables from this paper

Granullar: gradual nullable types for Java
Granullar enables combining a checked core with untrusted libraries in a safe manner, improving on the practicality of such a system.
When Traceability Goes Awry: an Industrial Experience Report
The concept of traceability between artifacts is considered an enabler for software project success. This concept has received plenty of attention from the research community and is by many perceived
Empirical studies on software traceability: A mapping study
A secondary study on this large corpus of primary studies, focusing on empirical studies on software traceability, without setting any further restrictions in terms of investigating a specific domain or concrete artifacts, suggests that requirements artifacts are dominant in traceability.
GitHub Marketplace for Practitioners and Researchers to Date: A Systematic Analysis of the Knowledge Mobilization Gap in Open Source Software Automation
This study mines and provides a descriptive overview of the GitHub Marketplace, performs a systematic mapping of research studies in automation for open source software, and compares the state of the art with theState of the practice on the automation tools.


Algorithms for Automatically Computing the Causal Paths of Failures
An automated debugging technique that explains a failure by computing its causal path leading from the root cause to the failure is proposed and two algorithms aiming at efficiency are proposed.
Comparative causality: Explaining the differences between executions
  • Nick Sumner, X. Zhang
  • Computer Science
    2013 35th International Conference on Software Engineering (ICSE)
  • 2013
The proposed causal inference technique features a novel execution model that avoids undesirable entangling of the replaced state and the original state; it properly handles differences of omission by symmetrically analyzing both executions; it also leverages a recently developed slicing technique to limit the scope of causality testing while ensuring that no relevant state causes can be missed.
Null dereference analysis in practice
Whether it would be useful to extend the Java type system to distinguish between nullable and nonnull types, and prohibit unchecked dereferences of nullable types is discussed.
An Approach for Search Based Testing of Null Pointer Exceptions
A search-based test data generation approach aimed at automatically identify NPEs and it outperforms random testing and is able to identify real NPE bugs some of which are posted in the bug-tracking system of the Apache libraries.
Generating sound and effective memory debuggers
This work presents a new approach for constructing debuggers based on declarative specification of bug conditions and root causes, and automatic generation of debugger code, and believes that other kinds of declaratively-specified, provably-correct, auto-generated debuggers can be constructed with little effort.
Tracking bad apples: reporting the origin of null and undefined value errors
This paper presents efficient origin tracking of unusable values; it shows how to record where these values come into existence, correctly propagate them, and report them if they cause an error.
Isolating cause-effect chains from computer programs
  • A. Zeller
  • Computer Science
    SIGSOFT '02/FSE-10
  • 2002
This work shows how the Delta Debugging algorithm isolates the relevant variables and values of a program state by systematically narrowing the state difference between a passing run and a failing run by assessing the outcome of altered executions to determine wether a change in the program state makes a difference in the test outcome.
Precise null-pointer analysis
  • F. Spoto
  • Computer Science
    Software & Systems Modeling
  • 2009
In Java, C or C++, attempts to dereference the null value result in an exception or a segmentation fault. Hence, it is important to identify those program points where this undesired behaviour might
Have things changed now?: an empirical study of bug characteristics in modern open source software
This study analyzes bug characteristics by first sampling hundreds of real world bugs in two large, representative open-source projects and finds several new interesting characteristics, including memory-related bugs have decreased and security bugs are increasing.