• Publications
  • Influence
The Oracle Problem in Software Testing: A Survey
TLDR
This paper provides a comprehensive survey of current approaches to the test oracle problem and an analysis of trends in this important area of software testing research and practice.
Suggesting accurate method and class names
TLDR
A neural probabilistic language model for source code that is specifically designed for the method naming problem is introduced, and a variant of the model is introduced that is, to the knowledge, the first that can propose neologisms, names that have not appeared in the training corpus.
Is the cure worse than the disease? overfitting in automated program repair
TLDR
This paper evaluates two well-studied repair tools, GenProg and TrpAutoRepair, on a publicly available benchmark of bugs, each with a human-written patch, and finds that the tools are unlikely to improve the proportion of independent tests passed, and that the quality of the patches is proportional to the coverage of the test suite used during repair.
On the naturalness of software
TLDR
The conjecture that most software is also natural, in the sense that it is created by humans at work, with all the attendant constraints and limitations, and thus, like natural language, it is also likely to be repetitive and predictable is conjecture.
A Survey of Machine Learning for Big Code and Naturalness
TLDR
This article presents a taxonomy based on the underlying design principles of each model and uses it to navigate the literature and discuss cross-cutting and application-specific challenges and opportunities.
Deep learning type inference
TLDR
DeepTyper is proposed, a deep learning model that understands which types naturally occur in certain contexts and relations and can provide type suggestions, which can often be verified by the type checker, even if it could not infer the type initially.
Learning natural coding conventions
TLDR
NATHURALIZE, a framework that learns the style of a codebase, and suggests revisions to improve stylistic consistency is presented, which builds on recent work in applying statistical natural language processing to source code.
The plastic surgery hypothesis
TLDR
A large-scale study of several large Java projects is mounted and a history of 15,723 commits is examined to determine the extent to which these commits are graftable, i.e., can be reconstituted from existing code, and finds an encouraging degree of graftability, surprisingly independent of commit size and type of commit.
Runtime Support for Type-Safe Dynamic Java Classes
TLDR
This paper presents an approach for supporting dynamic evolution of Java programs that can evolve by changing their components, namely classes, during their execution, thereby allowing evolution of both code and state.
Uncertainty, risk, and information value in software requirements and architecture
TLDR
This work presents a systematic method allowing software architects to describe uncertainty about the impact of alternatives on stakeholders' goals; to calculate the consequences of uncertainty through Monte-Carlo simulation; to shortlist candidate architectures based on expected costs, benefits and risks; and to assess the value of obtaining additional information before deciding.
...
...