36 research outputs found

    Final Report on Statistical Debugging for Petascale Environments

    Get PDF

    Software-Defect Localisation by Mining Dataflow-Enabled Call Graphs

    Get PDF
    Defect localisation is essential in software engineering and is an important task in domain-specific data mining. Existing techniques building on call-graph mining can localise different kinds of defects. However, these techniques focus on defects that affect the controlflow and are agnostic regarding the dataflow. In this paper, we introduce dataflow-enabled call graphs that incorporate abstractions of the dataflow. Building on these graphs, we present an approach for defect localisation. The creation of the graphs and the defect localisation are essentially data mining problems, making use of discretisation, frequent subgraph mining and feature selection. We demonstrate the defect-localisation qualities of our approach with a study on defects introduced into Weka. As a result, defect localisation now works much better, and a developer has to investigate on average only 1.5 out of 30 methods to fix a defect

    Suggesting Accurate Method and Class Names

    Get PDF
    Descriptive names are a vital part of readable, and hence maintain-able, code. Recent progress on automatically suggesting names for local variables tantalizes with the prospect of replicating that success with method and class names. However, suggesting names for meth-ods and classes is much more difficult. This is because good method and class names need to be functionally descriptive, but suggesting such names requires that the model goes beyond local context. We introduce a neural probabilistic language model for source code that is specifically designed for the method naming problem. Our model learns which names are semantically similar by assigning them to locations, called embeddings, in a high-dimensional contin-uous space, in such a way that names with similar embeddings tend to be used in similar contexts. These embeddings seem to contain semantic information about tokens, even though they are learned only from statistical co-occurrences of tokens. Furthermore, we introduce a variant of our model that is, to our knowledge, the first that can propose neologisms, names that have not appeared in the training corpus. We obtain state of the art results on the method, class, and even the simpler variable naming tasks. More broadly, the continuous embeddings that are learned by our model have the potential for wide application within software engineering

    Efficient static analysis with path pruning using coverage data

    No full text

    IEEE Transactions on Software Engineering : Vol. 36, No. 1, January - February 2010

    No full text
    1. Better Debugging via Output Tracing and Callstack-Sensitive Slicing 2. DECOR: A Method for the Specification and Detection of Code and Design Smells 3. Directed Explicit State-Space Search in the Generation of Counterexamples for Stochastic Model Checking 4. Effects of Personality on Pair Programming 5. Generating Event Sequence-Based Test Cases Using GUI Runtime State Feedback Etc

    Mining Edge-Weighted Call Graphs to Localise Software Bugs

    No full text

    Reusing debugging knowledge via trace-based bug search

    No full text
    corecore