activity
20152023
most citedNopol: Automatic Repair of Conditional Statement Bugs in Java Programs

432 citations · 1.6k across the 30 of their papers we have counts for

collaborators

33 papers

cs.CR2023

SmartBugs 2.0: An Execution Framework for Weakness Detection in Ethereum Smart Contracts

Monika di Angelo, Thomas Durieux, João F. Ferreira +1

Smart contracts are blockchain programs that often handle valuable assets. Writing secure smart contracts is far from trivial, and any vulnerability may lead to significant financi…

cs.CR2023★ 1 cited

Evolution of Automated Weakness Detection in Ethereum Bytecode: a Comprehensive Study

Monika di Angelo, Thomas Durieux, João F. Ferreira +1

Blockchain programs (also known as smart contracts) manage valuable assets like cryptocurrencies and tokens, and implement protocols in domains like decentralized finance (DeFi) an…

cs.SE2023★ 2 cited

Parfum: Detection and Automatic Repair of Dockerfile Smells

Thomas Durieux

Docker is a popular tool for developers and organizations to package, deploy, and run applications in a lightweight, portable container. One key component of Docker is the Dockerfi…

cs.SE2021★ 1 cited

Automatic Diversity in the Software Supply Chain

Nicolas Harrand, Thomas Durieux, David Broman +1

Despite its obvious benefits, the increased adoption of package managers to automate the reuse of libraries has opened the door to a new class of hazards: supply chain attacks. By…

cs.SE2021★ 5 cited

Megadiff: A Dataset of 600k Java Source Code Changes Categorized by Diff Size

Martin Monperrus, Matias Martinez, He Ye +3

This paper presents Megadiff, a dataset of source code diffs. It focuses on Java, with strict inclusion criteria based on commit message and diff size. Megadiff contains 663 029 Ja…

cs.SE2021

A Longitudinal Analysis of Bloated Java Dependencies

César Soto-Valero, Thomas Durieux, Benoit Baudry

We study the evolution and impact of bloated dependencies in a single software ecosystem: Java/Maven. Bloated dependencies are third-party libraries that are packaged in the applic…

cs.SE2021

A large-scale study on human-cloned changes for automated program repair

Fernanda Madeiral, Thomas Durieux

Research in automatic program repair has shown that real bugs can be automatically fixed. However, there are several challenges involved in such a task that are not yet fully addre…

cs.SE2021

The Behavioral Diversity of Java JSON Libraries

Nicolas Harrand, Thomas Durieux, David Broman +1

JSON is an essential file and data format in do-mains that span scientific computing, web APIs or configuration management. Its popularity has motivated significant software develo…

cs.SE2021★ 1 cited

DUETS: A Dataset of Reproducible Pairs ofJava Library-Clients

Thomas Durieux, César Soto-Valero, Benoit Baudry

Software engineering researchers look for software artifacts to study their characteristics or to evaluate new techniques. In this paper, we introduce DUETS, a new dataset of softw…

cs.SE2020★ 2 cited

Coverage-Based Debloating for Java Bytecode

César Soto-Valero, Thomas Durieux, Nicolas Harrand +1

Software bloat is code that is packaged in an application but is actually not necessary to run the application. The presence of software bloat is an issue for security, for perform…

cs.SE2020★ 29 cited

SmartBugs: A Framework to Analyze Solidity Smart Contracts

João F. Ferreira, Pedro Cruz, Thomas Durieux +1

Over the last few years, there has been substantial research on automated analysis, testing, and debugging of Ethereum smart contracts. However, it is not trivial to compare and re…

cs.SE2020★ 35 cited

Empirical Study of Restarted and Flaky Builds on Travis CI

Thomas Durieux, Claire Le Goues, Michael Hilton +1

Continuous Integration (CI) is a development practice where developers frequently integrate code into a common codebase. After the code is integrated, the CI server runs a test sui…

cs.SE2019★ 72 cited

Automated Classification of Overfitting Patches with Statically Extracted Code Features

He Ye, Jian Gu, Matias Martinez +2

Automatic program repair (APR) aims to reduce the cost of manually fixing software defects. However, APR suffers from generating a multitude of overfitting patches, those patches t…

cs.SE2019★ 398 cited

Empirical Review of Automated Analysis Tools on 47,587 Ethereum Smart Contracts

Thomas Durieux, João F. Ferreira, Rui Abreu +1

Over the last few years, there has been substantial research on automated analysis, testing, and debugging of Ethereum smart contracts. However, it is not trivial to compare and re…

cs.SE2019★ 30 cited

Repairnator patches programs automatically

Martin Monperrus, Simon Urli, Thomas Durieux +3

Repairnator is a bot. It constantly monitors software bugs discovered during continuous integration of open-source software and tries to fix them automatically. If it succeeds in s…

cs.SE2019★ 5 cited

Empirical Review of Java Program Repair Tools: A Large-Scale Experiment on 2,141 Bugs and 23,551 Repair Attempts

Thomas Durieux, Fernanda Madeiral, Matias Martinez +1

In the past decade, research on test-suite-based automatic program repair has grown significantly. Each year, new approaches and implementations are featured in major software engi…

cs.SE2019★ 7 cited

Critical Review of BugSwarm for Fault Localization and Program Repair

Thomas Durieux, Rui Abreu

Benchmarks play an important role in evaluating the efficiency and effectiveness of solutions to automate several phases of the software development lifecycle. Moreover, if well de…

cs.SE2019★ 21 cited

An Analysis of 35+ Million Jobs of Travis CI

Thomas Durieux, Rui Abreu, Martin Monperrus +2

Travis CI handles automatically thousands of builds every day to, amongst other things, provide valuable feedback to thousands of open-source developers. In this paper, we investig…

cs.SE2018★ 2 cited

Production-Driven Patch Generation

Thomas Durieux, Youssef Hamadi, Martin Monperrus

We present an original concept for patch generation: we propose to do it directly in production. Our idea is to generate patches on-the-fly based on automated analysis of the failu…

cs.SE2018★ 94 cited

Dynamic Patch Generation for Null Pointer Exceptions using Metaprogramming

Thomas Durieux, Benoit Cornu, Lionel Seinturier +1

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 nu…

cs.SE2018★ 432 cited

Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs

Jifeng Xuan, Matias Martinez, Favio Demarco +5

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 in…

cs.SE2018★ 258 cited

Automatic Repair of Real Bugs in Java: A Large-Scale Experiment on the Defects4J Dataset

Matias Martinez, Thomas Durieux, Romain Sommerard +2

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…

cs.SE2018★ 58 cited

Alleviating Patch Overfitting with Automatic Test Generation: A Study of Feasibility and Effectiveness for the Nopol Repair System

Zhongxing Yu, Matias Martinez, Benjamin Danglot +2

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-ou…

cs.SE2018★ 2 cited

Human-competitive Patches in Automatic Program Repair with Repairnator

Martin Monperrus, Simon Urli, Thomas Durieux +3

Repairnator is a bot. It constantly monitors software bugs discovered during continuous integration of open-source software and tries to fix them automatically. If it succeeds to s…