Network


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

Hotspot


Dive into the research topics where Matias Martinez is active.

Publication


Featured researches published by Matias Martinez.


automated software engineering | 2014

Fine-grained and accurate source code differencing

Jean-R{ 'e}my Falleri; Flor{ 'e}al Morandat; Xavier Blanc; Matias Martinez; Martin Monperrus

At the heart of software evolution is a sequence of edit actions, called an edit script, made to a source code file. Since software systems are stored version by version, the edit script has to be computed from these versions, which is known as a complex task. Existing approaches usually compute edit scripts at the text granularity with only add line and delete line actions. However, inferring syntactic changes from such an edit script is hard. Since moving code is a frequent action performed when editing code, it should also be taken into account. In this paper, we tackle these issues by introducing an algorithm computing edit scripts at the abstract syntax tree granularity including move actions. Our objective is to compute edit scripts that are short and close to the original developer intent. Our algorithm is implemented in a freely-available and extensible tool that has been intensively validated.


Empirical Software Engineering | 2015

Mining software repair models for reasoning on the search space of automated program fixing

Matias Martinez; Martin Monperrus

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 repair. We give extensive empirical results on the nature of human bug fixes at a large scale and a fine granularity with abstract syntax tree differencing. We set up mathematical reasoning on the search space of automated repair and the time to navigate through it. By applying our method on 14 repositories of Java software and 89,993 versioning transactions, we show that not all probabilistic repair models are equivalent.


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.


international symposium on software testing and analysis | 2016

ASTOR: a program repair library for Java (demo)

Matias Martinez; Martin Monperrus

During the last years, the software engineering research community has proposed approaches for automatically repairing software bugs. Unfortunately, many software artifacts born from this research are not available for repairing Java programs. To-reimplement those approaches from scratch is costly. To facilitate experimental replications and comparative evaluations, we present Astor, a publicly available program repair library that includes the implementation of three notable repair approaches (jGenProg, jKali and jMutRepair). We envision that the research community will use Astor for setting up comparative evaluations and explore the design space of automatic repair for Java. Astor offers researchers ways to implement new repair approaches or to modify existing ones. Astor repairs in total 33 real bugs from four large open source projects.


international conference on software maintenance | 2013

Automatically Extracting Instances of Code Change Patterns with AST Analysis

Matias Martinez; Laurence Duchien; Martin Monperrus

A code change pattern represents a kind of recurrent modification in software. For instance, a known code change pattern consists of the change of the conditional expression of an if statement. Previous work has identified different change patterns. Complementary to the identification and definition of change patterns, the automatic extraction of pattern instances is essential to measure their empirical importance. For example, it enables one to count and compare the number of conditional expression changes in the history of different projects. In this paper we present a novel approach for search patterns instances from software history. Our technique is based on the analysis of Abstract Syntax Trees (AST) files within a given commit. We validate our approach by counting instances of 18 change patterns in 6 open-source Java projects.


arXiv: Software Engineering | 2017

Towards the quality improvement of cross-platform mobile applications

Matias Martinez; Sylvain Lecomte

During last ten years, the number of smartphonesand mobile applications has been constantly growing. Android, iOS and Windows Mobile are three mobile platforms that coveralmost all smartphones in the world in 2017. Developing a mobileapp involves first to choose the platforms the app will run, andthen to develop specific solutions (i.e., native apps) for eachchosen platform using platform-related toolkits such as AndroidSDK. A cross-platform mobile application is an app that runs ontwo or more mobile platforms. Several frameworks have beenproposed to simplify the development of cross-platform mobileapplications and to reduce development and maintenance costs. They are called cross-platform mobile app development frameworks. However, to our knowledge, the life-cycle and the quality of cross-platformsmobile applications built using those frameworks havenot been studied in depth. Our main goal is to first study theprocesses of development and maintenance of mobile applicationsbuilt using cross-platform mobile app development frameworks, focusing particularly on the bug-fixing activity. Then, we aim atdefining tools for automated repairing bugs from cross-platformmobile applications.


Empirical Software Engineering | 2018

Alleviating patch overfitting with automatic test generation: a study of feasibility and effectiveness for the Nopol repair system

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

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 thus typically inadequate for completely specifying the expected behavior of the program under repair. Consequently, the patches generated by test suite based repair techniques can just overfit to the used test suite, and fail to generalize to other tests. We deeply analyze the overfitting problem in program repair and give a classification of this problem. This classification will help the community to better understand and design techniques to defeat the overfitting problem. We further propose and evaluate an approach called UnsatGuided, which aims to alleviate the overfitting problem for synthesis-based repair techniques with automatic test case generation. The approach uses additional automatically generated tests to strengthen the repair constraint used by synthesis-based repair techniques. We analyze the effectiveness of UnsatGuided: 1) analytically with respect to alleviating two different kinds of overfitting issues; 2) empirically based on an experiment over the 224 bugs of the Defects4J repository. The main result is that automatic test generation is effective in alleviating one kind of overfitting, issue–regression introduction, but due to oracle problem, has minimal positive impact on alleviating the other kind of overfitting issue–incomplete fixing.


symposium on search based software engineering | 2018

Ultra-Large Repair Search Space with Automatically Mined Templates: The Cardumen Mode of Astor

Matias Martinez; Martin Monperrus

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 capacity of Cardumen to discover test-suite adequate patches (aka plausible patches) over the 356 real bugs from Defects4J [11]. Cardumen finds 8935 patches over 77 bugs of Defects4J. This is the largest number of automatically synthesized patches ever reported, all patches being available in an open-science repository. Moreover, Cardumen identifies 8 unique patches, that are patches for Defects4J bugs that were never repaired in the whole history of program repair.


international conference on software engineering | 2014

Do the fix ingredients already exist? an empirical inquiry into the redundancy assumptions of program repair approaches

Matias Martinez; Westley Weimer; Martin Monperrus

Collaboration


Dive into the Matias Martinez'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

Benoit Baudry

Royal Institute of Technology

View shared research outputs
Researchain Logo
Decentralizing Knowledge