432 citations · 1.6k across the 30 of their papers we have counts for
33 papers
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…
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…