![Loading...](https://link.springer.com/static/c4a417b97a76cc2980e3c25e2271af3129e08bbe/images/pdf-preview/spacer.gif)
-
Article
Open AccessStyler: learning formatting conventions to repair Checkstyle violations
Ensuring the consistent usage of formatting conventions is an important aspect of modern software quality assurance. To do so, the source code of a project should be checked against the formatting conventions ...
-
Article
Open AccessA comprehensive study of code-removal patches in automated program repair
Automatic Program Repair (APR) techniques can promisingly help reduce the cost of debugging. Many relevant APR techniques follow the generate-and-validate approach, that is, the faulty program is iteratively modi...
-
Article
Open AccessA comprehensive study of bloated dependencies in the Maven ecosystem
Build automation tools and package managers have a profound influence on software development. They facilitate the reuse of third-party libraries, support a clear separation between the application’s code and ...
-
Article
Open AccessAutomated patch assessment for program repair at scale
In this paper, we do automatic correctness assessment for patches generated by program repair systems. We consider the human-written patch as ground truth oracle and randomly generate tests based on it, a tech...
-
Article
An approach and benchmark to detect behavioral changes of commits in continuous integration
When a developer pushes a change to an application’s codebase, a good practice is to have a test case specifying this behavioral change. Thanks to continuous integration (CI), the test is run on subsequent com...
-
Article
FixMiner: Mining relevant fix patterns for automated program repair
Patching is a common activity in software development. It is generally performed on a source code base to address bugs or add new functionalities. In this context, given the recurrence of bugs across projects,...
-
Article
Open AccessA journey among Java neutral program variants
Neutral program variants are alternative implementations of a program, yet equivalent with respect to the test suite. Techniques such as approximate computing or genetic improvement share the intuition that poten...
-
Article
Automatic test improvement with DSpot: a study with ten mature open-source projects
In the literature, there is a rather clear segregation between manually written tests by developers and automatically generated ones. In this paper, we explore a third solution: to automatically improve existi...
-
Article
The open science initiative of the Empirical Software Engineering journal
-
Article
A comprehensive study of pseudo-tested methods
Pseudo-tested methods are defined as follows: they are covered by the test suite, yet no test case fails when the method body is removed, i.e., when all the effects of this method are suppressed. This intrigui...
-
Article
Alleviating patch overfitting with automatic test generation: a study of feasibility and effectiveness for the Nopol repair system
Among the many different kinds of program repair techniques, one widely studied family of techniques is called test suite based repair. However, test suites are in essence input-output specifications and are t...
-
Article
Correctness attraction: a study of stability of software behavior under runtime perturbation
Can the execution of software be perturbed without breaking the correctness of the output? In this paper, we devise a protocol to answer this question from a novel perspective. In an experimental study, we obs...
-
Chapter and Conference Paper
Ultra-Large Repair Search Space with Automatically Mined Templates: The Cardumen Mode of Astor
Astor is a program repair library which has different modes. In this paper, we present the Cardumen mode of Astor, a repair approach based mined templates that has an ultra-large search space. We evaluate the ...
-
Chapter and Conference Paper
A Generative Model for Sparse, Evolving Digraphs
Generating graphs that are similar to real ones is an open problem, while the similarity notion is quite elusive and hard to formalize. In this paper, we focus on sparse digraphs and propose SDG, an algorithm ...
-
Article
A large-scale study of call graph-based impact prediction using mutation testing
In software engineering, impact analysis involves predicting the software elements (e.g., modules, classes, methods) potentially impacted by a change in the source code. Impact analysis is required to optimize...
-
Article
Automatic repair of real bugs in java: a large-scale experiment on the defects4j dataset
Defects4J is a large, peer-reviewed, structured dataset of real-world Java bugs. Each bug in Defects4J comes with a test suite and at least one failing test case that triggers the bug. In this paper, we report...
-
Article
Mashup of metalanguages and its implementation in the Kermeta language workbench
With the growing use of domain-specific languages (DSL) in industry, DSL design and implementation goes far beyond an activity for a few experts only and becomes a challenging task for thousands of software en...
-
Article
Mining software repair models for reasoning on the search space of automated program fixing
This paper is about understanding the nature of bug fixing by analyzing thousands of bug fix transactions of software repositories. It then places this learned knowledge in the context of automated program rep...
-
Article
What should developers be aware of? An empirical study on the directives of API documentation
Application Programming Interfaces (API) are exposed to developers in order to reuse software libraries. API directives are natural-language statements in API documentation that make developers aware of constr...
-
Article
Model-driven generative development of measurement software
Metrics offer a practical approach to evaluate properties of domain-specific models. However, it is costly to develop and maintain measurement software for each domain-specific modeling language. In this paper...