Network


Latest external collaboration on country level. Dive into details by clicking on the dots.

Hotspot


Dive into the research topics where Thomas Durieux is active.

Publication


Featured researches published by Thomas Durieux.


IEEE Transactions on Software Engineering | 2017

Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs

Jifeng Xuan; Matias Martinez; Favio Demarco; Maxime Clement; Sebastian R. Lamelas Marcote; Thomas Durieux; Daniel Le Berre; Martin Monperrus

We propose Nopol, an approach to automatic repair of buggy conditional statements (i.e., if-then-else statements). This approach takes a buggy program as well as a test suite as input and generates a patch with a conditional expression as output. The test suite is required to contain passing test cases to model the expected behavior of the program and at least one failing test case that reveals the bug to be repaired. The process of Nopol consists of three major phases. First, Nopol employs angelic fix localization to identify expected values of a condition during the test execution. Second, runtime trace collection is used to collect variables and their actual values, including primitive data types and objected-oriented features (e.g., nullness checks), to serve as building blocks for patch generation. Third, Nopol encodes these collected data into an instance of a Satisfiability Modulo Theory (SMT) problem; then a feasible solution to the SMT instance is translated back into a code patch. We evaluate Nopol on 22 real-world bugs (16 bugs with buggy if conditions and six bugs with missing preconditions) on two large open-source projects, namely Apache Commons Math and Apache Commons Lang. Empirical analysis on these bugs shows that our approach can effectively fix bugs with buggy if conditions and missing preconditions. We illustrate the capabilities and limitations of Nopol using case studies of real bug fixes.


foundations of software engineering | 2017

Automatic repair of real bugs in java: a large-scale experiment on the defects4j dataset

Matias Martinez; Thomas Durieux; Romain Sommerard; Jifeng Xuan; Martin Monperrus

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 on an experiment to explore the effectiveness of automatic test-suite based repair on Defects4J. The result of our experiment shows that the considered state-of-the-art repair methods can generate patches for 47 out of 224 bugs. However, those patches are only test-suite adequate, which means that they pass the test suite and may potentially be incorrect beyond the test-suite satisfaction correctness criterion. We have manually analyzed 84 different patches to assess their real correctness. In total, 9 real Java bugs can be correctly repaired with test-suite based repair. This analysis shows that test-suite based repair suffers from under-specified bugs, for which trivial or incorrect patches still pass the test suite. With respect to practical applicability, it takes on average 14.8 minutes to find a patch. The experiment was done on a scientific grid, totaling 17.6 days of computation time. All the repair systems and experimental results are publicly available on Github in order to facilitate future research on automatic repair.


ieee international conference on software analysis evolution and reengineering | 2017

Dynamic patch generation for null pointer exceptions using metaprogramming

Thomas Durieux; Benoit Cornu; Lionel Seinturier; Martin Monperrus

Null pointer exceptions (NPE) are the number one cause of uncaught crashing exceptions in production. In this paper, we aim at exploring the search space of possible patches for null pointer exceptions with metaprogramming. Our idea is to transform the program under repair with automated code transformation, so as to obtain a metaprogram. This metaprogram contains automatically injected hooks, that can be activated to emulate a null pointer exception patch. This enables us to perform a fine-grain analysis of the runtime context of null pointer exceptions. We set up an experiment with 16 real null pointer exceptions that have happened in the field. We compare the effectiveness of our metaprogramming approach against simple templates for repairing null pointer exceptions.


automation of software test | 2016

DynaMoth: dynamic code synthesis for automatic program repair

Thomas Durieux; Martin Monperrus

Automatic software repair is the process of automatically fixing bugs. The Nopol repair system repairs Java code using code synthesis. We have designed a new code synthesis engine for Nopol based on dynamic exploration, it is called DynaMoth. The main design goal is to be able to generate patches with method calls. We evaluate DynaMoth over 224 of the Defects4J dataset. The evaluation shows that Nopol with DynaMoth is capable of synthesizing patches and enables Nopol to repair new bugs of the dataset.


arXiv: Software Engineering | 2015

Automatic Repair of Real Bugs: An Experience Report on the Defects4J Dataset

Thomas Durieux; Matias Martinez; Martin Monperrus; Romain Sommerard; Jifeng Xuan


arXiv: Software Engineering | 2017

Test Case Generation for Program Repair: A Study of Feasibility and Effectiveness

Zhongxing Yu; Matias Martinez; Benjamin Danglot; Thomas Durieux; Martin Monperrus


ieee international conference on software analysis evolution and reengineering | 2018

Dissection of a bug dataset: Anatomy of 395 patches from Defects4J

Victor Sobreira; Thomas Durieux; Fernanda Madeiral; Martin Monperrus; Marcelo de Almeida Maia


arXiv: Software Engineering | 2015

NPEFix: Automatic Runtime Repair of Null Pointer Exceptions in Java

Benoit Cornu; Thomas Durieux; Lionel Seinturier; Martin Monperrus


Archive | 2016

IntroClassJava: A Benchmark of 297 Small and Buggy Java Programs

Thomas Durieux; Martin Monperrus


Archive | 2017

The Patches of the Nopol Automatic Repair System on the Bugs of Defects4J version 1.1.0

Martin Monperrus; Thomas Durieux; Benjamin Danglot; Zhongxing Yu; Matias Martinez; Simon Urli

Collaboration


Dive into the Thomas Durieux's collaboration.

Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar
Top Co-Authors

Avatar

Marcelo de Almeida Maia

Federal University of Uberlandia

View shared research outputs
Researchain Logo
Decentralizing Knowledge