Skip to main content

Showing 51–100 of 140 results for author: Monperrus, M

.
  1. arXiv:1912.06914  [pdf, other

    cs.SE

    Automatic Observability for Dockerized Java Applications

    Authors: Long Zhang, Deepika Tiwari, Brice Morin, Benoit Baudry, Martin Monperrus

    Abstract: Docker is a virtualization technique heavily used in the industry to build cloud-based systems. In the context of Docker, a system is said to be observable if engineers can get accurate information about its running state in production. In this paper, we present a novel approach, called POBS, to automatically improve the observability of Dockerized Java applications. POBS is based on automated tra… ▽ More

    Submitted 9 July, 2021; v1 submitted 14 December, 2019; originally announced December 2019.

  2. arXiv:1912.02015  [pdf, ps, other

    cs.SE cs.CR cs.LG

    Using Sequence-to-Sequence Learning for Repairing C Vulnerabilities

    Authors: Zimin Chen, Steve Kommrusch, Martin Monperrus

    Abstract: Software vulnerabilities affect all businesses and research is being done to avoid, detect or repair them. In this article, we contribute a new technique for automatic vulnerability fixing. We present a system that uses the rich software development history that can be found on GitHub to train an AI system that generates patches. We apply sequence-to-sequence learning on a big dataset of code chan… ▽ More

    Submitted 4 December, 2019; originally announced December 2019.

  3. Automated Classification of Overfitting Patches with Statically Extracted Code Features

    Authors: He Ye, Jian Gu, Matias Martinez, Thomas Durieux, Martin Monperrus

    Abstract: 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 that fail to correctly repair the defect beyond making the tests pass. This paper presents a novel overfitting patch detection system called ODS to assess the correctness of APR patches. ODS first statically compares a pa… ▽ More

    Submitted 6 August, 2021; v1 submitted 26 October, 2019; originally announced October 2019.

    Journal ref: IEEE Transactions on Software Engineering, 2021

  4. Repairnator patches programs automatically

    Authors: Martin Monperrus, Simon Urli, Thomas Durieux, Matias Martinez, Benoit Baudry, Lionel Seinturier

    Abstract: 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 synthesizing a valid patch, Repairnator proposes the patch to the human developers, disguised under a fake human identity. To date, Repairnator has been able to producepatches that were accepted by the human developers an… ▽ More

    Submitted 4 May, 2022; v1 submitted 11 October, 2019; originally announced October 2019.

    Comments: arXiv admin note: substantial text overlap with arXiv:1810.05806

    Journal ref: Ubiquity, Association for Computing Machinery, July (2), pp.1-12, 2019

  5. Scalable Comparison of JavaScript V8 Bytecode Traces

    Authors: Javier Cabrera-Arteaga, Martin Monperrus, Benoit Baudry

    Abstract: The comparison and alignment of runtime traces are essential, e.g., for semantic analysis or debugging. However, naive sequence alignment algorithms cannot address the needs of the modern web: (i) the bytecode generation process of V8 is not deterministic; (ii) bytecode traces are large. We present STRAC, a scalable and extensible tool tailored to compare bytecode traces generated by the V8 Java… ▽ More

    Submitted 8 October, 2019; originally announced October 2019.

    Comments: 10 pages, 6 figures, 2 tables,

    Journal ref: Proceedings of the SPLASH workshop on Virtual Machines and Language Implementations (VMIL), 2019

  6. Automated Patch Assessment for Program Repair at Scale

    Authors: He Ye, Matias Martinez, Martin Monperrus

    Abstract: 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 technique proposed by Shamshiri et al., called Random testing with Ground Truth (RGT) in this paper. We build a curated dataset of 638 patches for Defects4J generated by 14 state-of-the-art repai… ▽ More

    Submitted 7 May, 2021; v1 submitted 30 September, 2019; originally announced September 2019.

    Journal ref: Empirical Software Engineering, 2021

  7. arXiv:1909.04770  [pdf, other

    cs.SE

    Suggestions on Test Suite Improvements with Automatic Infection and Propagation Analysis

    Authors: Oscar Luis Vera-Pérez, Benjamin Danglot, Martin Monperrus, Benoit Baudry

    Abstract: An extreme transformation removes the body of a method that is reached by one test case at least. If the test suite passes on the original program and still passes after the extreme transformation, the transformation is said to be undetected, and the test suite needs to be improved. In this work we propose a technique to automatically determine which of the following three reasons prevent the dete… ▽ More

    Submitted 10 September, 2019; originally announced September 2019.

  8. The Strengths and Behavioral Quirks of Java Bytecode Decompilers

    Authors: Nicolas Harrand, César Soto-Valero, Martin Monperrus, Benoit Baudry

    Abstract: During compilation from Java source code to bytecode, some information is irreversibly lost. In other words, compilation and decompilation of Java code is not symmetric. Consequently, the decompilation process, which aims at producing source code from bytecode, must establish some strategies to reconstruct the information that has been lost. Modern Java decompilers tend to use distinct strategies… ▽ More

    Submitted 19 August, 2019; originally announced August 2019.

    Comments: 11 pages, 6 figures, 9 listings, 3 tables

    Journal ref: Proceedings of the 19th IEEE International Working Conference on Source Code Analysis and Manipulation (SCAM 2019)

  9. Observability and Chaos Engineering on System Calls for Containerized Applications in Docker

    Authors: Jesper Simonsson, Long Zhang, Brice Morin, Benoit Baudry, Martin Monperrus

    Abstract: In this paper, we present a novel fault injection system called ChaosOrca for system calls in containerized applications. ChaosOrca aims at evaluating a given application's self-protection capability with respect to system call errors. The unique feature of ChaosOrca is that it conducts experiments under production-like workload without instrumenting the application. We exhaustively analyze all ki… ▽ More

    Submitted 29 January, 2021; v1 submitted 30 July, 2019; originally announced July 2019.

    Journal ref: Future Generation Computer Systems, 2021

  10. arXiv:1907.09282  [pdf, other

    cs.SE cs.LG cs.PL

    Learning the Relation between Code Features and Code Transforms with Structured Prediction

    Authors: Zhongxing Yu, Matias Martinez, Zimin Chen, Tegawendé F. Bissyandé, Martin Monperrus

    Abstract: To effectively guide the exploration of the code transform space for automated code evolution techniques, we present in this paper the first approach for structurally predicting code transforms at the level of AST nodes using conditional random fields (CRFs). Our approach first learns offline a probabilistic model that captures how certain code transforms are applied to certain AST nodes, and then… ▽ More

    Submitted 2 June, 2023; v1 submitted 22 July, 2019; originally announced July 2019.

    Journal ref: IEEE Transactions on Software Engineering, 2023

  11. iFixR: Bug Report driven Program Repair

    Authors: Anil Koyuncu, Kui Liu, Tegawendé F. Bissyandé, Dongsun Kim, Martin Monperrus, Jacques Klein, Yves Le Traon

    Abstract: Issue tracking systems are commonly used in modern software development for collecting feedback from users and developers. An ultimate automation target of software maintenance is then the systematization of patch generation for user-reported bugs. Although this ambition is aligned with the momentum of automated program repair, the literature has, so far, mostly focused on generate-and-validate se… ▽ More

    Submitted 12 July, 2019; originally announced July 2019.

    Comments: Accepted by FSE 2019

    Journal ref: Proceedings of the 27th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering, 2019

  12. Explainable Software Bot Contributions: Case Study of Automated Bug Fixes

    Authors: Martin Monperrus

    Abstract: In a software project, esp. in open-source, a contribution is a valuable piece of work made to the project: writing code, reporting bugs, translating, improving documentation, creating graphics, etc. We are now at the beginning of an exciting era where software bots will make contributions that are of similar nature than those by humans. Dry contributions, with no explanation, are often ignored or… ▽ More

    Submitted 7 May, 2019; originally announced May 2019.

    Journal ref: Proceedings of 2019 IEEE/ACM International Workshop on Bots in Software Engineering (BotSE)

  13. An Analysis of 35+ Million Jobs of Travis CI

    Authors: Thomas Durieux, Rui Abreu, Martin Monperrus, Tegawendé F. Bissyandé, Luís Cruz

    Abstract: 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 investigate Travis CI to firstly understand who is using it, and when they start to use it. Secondly, we investigate how the developers use Travis CI and finally, how frequently the developers change the Travis CI configurations… ▽ More

    Submitted 28 September, 2019; v1 submitted 20 April, 2019; originally announced April 2019.

    Journal ref: Proceedings of the International Conference on Software Maintenance and Evolution (ICSME), 2019

  14. arXiv:1904.03061  [pdf, other

    cs.LG cs.PL cs.SE stat.ML

    A Literature Study of Embeddings on Source Code

    Authors: Zimin Chen, Martin Monperrus

    Abstract: Natural language processing has improved tremendously after the success of word embedding techniques such as word2vec. Recently, the same idea has been applied on source code with encouraging results. In this survey, we aim to collect and discuss the usage of word embedding techniques on programs and source code. The articles in this survey have been collected by asking authors of related work and… ▽ More

    Submitted 5 April, 2019; originally announced April 2019.

  15. Styler: learning formatting conventions to repair Checkstyle violations

    Authors: Benjamin Loriot, Fernanda Madeiral, Martin Monperrus

    Abstract: Ensuring the consistent usage of formatting conventions is an important aspect of modern software quality assurance. While formatting convention violations can be automatically detected by format checkers implemented in linters, there is no satisfactory solution for repairing them. Manually fixing formatting convention violations is a waste of developer time and code formatters do not take into ac… ▽ More

    Submitted 19 August, 2022; v1 submitted 2 April, 2019; originally announced April 2019.

    Journal ref: Empirical Software Engineering, Springer, 2022

  16. An Approach and Benchmark to Detect Behavioral Changes of Commits in Continuous Integration

    Authors: Benjamin Danglot, Martin Monperrus, Walter Rudametkin, Benoit Baudry

    Abstract: 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 commits to check that they do no introduce a regression for that behavior. In this paper, we propose an approach that detects behavioral changes in commits. As input, it takes a program, its tes… ▽ More

    Submitted 16 December, 2019; v1 submitted 22 February, 2019; originally announced February 2019.

    Journal ref: Empirical Software Engineering, Springer Verlag, 2019

  17. arXiv:1902.02703  [pdf, other

    cs.SE

    D&C: A Divide-and-Conquer Approach to IR-based Bug Localization

    Authors: Anil Koyuncu, Tegawendé F. Bissyandé, Dongsun Kim, Kui Liu, Jacques Klein, Martin Monperrus, Yves Le Traon

    Abstract: Many automated tasks in software maintenance rely on information retrieval techniques to identify specific information within unstructured data. Bug localization is such a typical task, where text in a bug report is analyzed to identify file locations in the source code that can be associated to the reported bug. Despite the promising results, the performance offered by IR-based bug localization t… ▽ More

    Submitted 7 February, 2019; originally announced February 2019.

  18. Bears: An Extensible Java Bug Benchmark for Automatic Program Repair Studies

    Authors: Fernanda Madeiral, Simon Urli, Marcelo Maia, Martin Monperrus

    Abstract: Benchmarks of bugs are essential to empirically evaluate automatic program repair tools. In this paper, we present Bears, a project for collecting and storing bugs into an extensible bug benchmark for automatic repair studies in Java. The collection of bugs relies on commit building state from Continuous Integration (CI) to find potential pairs of buggy and patched program versions from open-sourc… ▽ More

    Submitted 17 January, 2019; originally announced January 2019.

    Comments: Proceedings of the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER '19)

    Journal ref: Proceedings of the 26th IEEE International Conference on Software Analysis, Evolution and Reengineering, 2019

  19. A Journey Among Java Neutral Program Variants

    Authors: Nicolas Harrand, Simon Allier, Marcelino Rodriguez-Cancio, Martin Monperrus, Benoit Baudry

    Abstract: Neutral program variants are functionally similar to an original program, yet implement slightly different behaviors. Techniques such as approximate computing or genetic improvement share the intuition that potential for enhancements lies in these acceptable behavioral differences (e.g., enhanced performance or reliability). Yet, the automatic synthesis of neutral program variants, through specula… ▽ More

    Submitted 22 June, 2019; v1 submitted 8 January, 2019; originally announced January 2019.

    Comments: Previously, this work appeared as arXiv:1509.00144v2, which was incorrectly submitted as a replacement

    Journal ref: Journal Genetic Programming and Evolvable Machines, Springer, 2019

  20. arXiv:1901.01808  [pdf, other

    cs.SE cs.LG stat.ML

    SequenceR: Sequence-to-Sequence Learning for End-to-End Program Repair

    Authors: Zimin Chen, Steve Kommrusch, Michele Tufano, Louis-Noël Pouchet, Denys Poshyvanyk, Martin Monperrus

    Abstract: This paper presents a novel end-to-end approach to program repair based on sequence-to-sequence learning. We devise, implement, and evaluate a system, called SequenceR, for fixing bugs based on sequence-to-sequence learning on source code. This approach uses the copy mechanism to overcome the unlimited vocabulary problem that occurs with big code. Our system is data-driven; we train it on 35,578 s… ▽ More

    Submitted 9 September, 2019; v1 submitted 24 December, 2018; originally announced January 2019.

    Comments: 21 pages, 15 figures

    Journal ref: IEEE Transactions on Software Engineering, 2019

  21. TripleAgent: Monitoring, Perturbation and Failure-obliviousness for Automated Resilience Improvement in Java Applications

    Authors: Long Zhang, Martin Monperrus

    Abstract: In this paper, we present a novel resilience improvement system for Java applications. The unique feature of this system is to combine automated monitoring, automated perturbation injection, and automated resilience improvement. The latter is achieved thanks to the failure-oblivious computing, a concept introduced in 2004 by Rinard and colleagues. We design and implement the system as agents for t… ▽ More

    Submitted 27 August, 2019; v1 submitted 27 December, 2018; originally announced December 2018.

    Journal ref: Proceedings of the IEEE International Symposium on Software Reliability Engineering, 2019

  22. Impact of Tool Support in Patch Construction

    Authors: Anil Koyuncu, Tegawendé F. Bissyandé, Dongsun Kim, Jacques Klein, Martin Monperrus, Yves Le Traon

    Abstract: In this work, we investigate the practice of patch construction in the Linux kernel development, focusing on the differences between three patching processes: (1) patches crafted entirely manually to fix bugs, (2) those that are derived from warnings of bug detection tools, and (3) those that are automatically generated based on fix patterns. With this study, we provide to the research community c… ▽ More

    Submitted 18 December, 2018; originally announced December 2018.

    Journal ref: Proceedings of ISSTA 2017

  23. A Large-Scale Study of Call Graph-based Impact Prediction using Mutation Testing

    Authors: Vincenzo Musco, Martin Monperrus, Philippe Preux

    Abstract: 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 the testing effort. In this paper, we propose an evaluation technique to predict impact propagation. Based on 10 open-source Java projects and 5 classical mutation operators, we create 17,00… ▽ More

    Submitted 15 December, 2018; originally announced December 2018.

    Journal ref: Software Quality Journal, Volume 25, Issue 3, pp 921-950, 2017

  24. Production-Driven Patch Generation

    Authors: Thomas Durieux, Youssef Hamadi, Martin Monperrus

    Abstract: 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 failure context. By doing this in production, the repair process has complete access to the system state at the point of failure. We propose to perform live regression testing of the generated patches directly on the producti… ▽ More

    Submitted 8 December, 2018; originally announced December 2018.

    Comments: arXiv admin note: substantial text overlap with arXiv:1609.06848

    Journal ref: Proceedings of the 2017 International Conference on Software Engineering, New Ideas and Emerging Results Track

  25. Dynamic Patch Generation for Null Pointer Exceptions using Metaprogramming

    Authors: Thomas Durieux, Benoit Cornu, Lionel Seinturier, Martin Monperrus

    Abstract: 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, tha… ▽ More

    Submitted 2 December, 2018; originally announced December 2018.

    Comments: IEEE International Conference on Software Analysis, Evolution and Reengineering, 2017

    Journal ref: Proceedings of IEEE International Conference on Software Analysis, Evolution and Reengineering (SANER), 2017

  26. How to Design a Program Repair Bot? Insights from the Repairnator Project

    Authors: Simon Urli, Zhongxing Yu, Lionel Seinturier, Martin Monperrus

    Abstract: Program repair research has made tremendous progress over the last few years, and software development bots are now being invented to help developers gain productivity. In this paper, we investigate the concept of a " program repair bot " and present Repairnator. The Repairnator bot is an autonomous agent that constantly monitors test failures, reproduces bugs, and runs program repair tools agains… ▽ More

    Submitted 24 November, 2018; originally announced November 2018.

    Journal ref: Proceedings of ICSE, Software Engineering in Practice, 2018

  27. Automatic Test Improvement with DSpot: a Study with Ten Mature Open-Source Projects

    Authors: Benjamin Danglot, Oscar Luis Vera-Pérez, Benoit Baudry, Martin Monperrus

    Abstract: 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 existing test cases written by developers. We present the concept, design, and implementation of a system called \dspot, that takes developer-written test cases as input (junit tests in Java) and s… ▽ More

    Submitted 20 November, 2018; originally announced November 2018.

    Journal ref: Empirical Software Engineering, Springer Verlag, 2019

  28. arXiv:1811.05703  [pdf, other

    cs.SE

    The Remarkable Role of Similarity in Redundancy-based Program Repair

    Authors: Zimin Chen, Martin Monperrus

    Abstract: Recently, there have been original attempts to use the concept of "code similarity" in program repair, suggesting that similarity analysis has an important role in the repair process. However, there is no dedicated work to characterize and quantify the role of similarity in redundancy-based program repair, where the patch is composed from source code taken from somewhere else. This is where our pa… ▽ More

    Submitted 16 May, 2019; v1 submitted 14 November, 2018; originally announced November 2018.

  29. Nopol: Automatic Repair of Conditional Statement Bugs in Java Programs

    Authors: Jifeng Xuan, Matias Martinez, Favio Demarco, Maxime Clément, Sebastian Lamelas, Thomas Durieux, Daniel Le Berre, Martin Monperrus

    Abstract: 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 th… ▽ More

    Submitted 10 November, 2018; originally announced November 2018.

    Comments: IEEE Transactions on Software Engineering, 2016

    Journal ref: IEEE Transactions on Software Engineering, 2016

  30. Descartes: A PITest Engine to Detect Pseudo-Tested Methods - Tool Demonstration

    Authors: Oscar Luis Vera-Pérez, Martin Monperrus, Benoit Baudry

    Abstract: Descartes is a tool that implements extreme mutation operators and aims at finding pseudo-tested methods in Java projects. It leverages the efficient transformation and runtime features of PIT. The demonstration compares Descartes with Gregor, the default mutation engine provided by PIT, in a set of real open source projects. It considers the execution time, number of mutants created and the relat… ▽ More

    Submitted 7 November, 2018; originally announced November 2018.

    Journal ref: ACM/IEEE International Conference on Automated Software Engineering, Tool demonstration track, 2018

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

    Authors: Matias Martinez, Thomas Durieux, Romain Sommerard, Jifeng Xuan, Martin Monperrus

    Abstract: 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 ge… ▽ More

    Submitted 4 November, 2018; originally announced November 2018.

    Comments: Empirical Software Engineering, Springer, 2016. arXiv admin note: substantial text overlap with arXiv:1505.07002

    Journal ref: Empirical Software Engineering, Springer, 2016

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

    Authors: Zhongxing Yu, Matias Martinez, Benjamin Danglot, Thomas Durieux, Martin Monperrus

    Abstract: 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 overfi… ▽ More

    Submitted 24 October, 2018; originally announced October 2018.

    Journal ref: Empirical Software Engineering (Springer), 2018

  33. Coming: a Tool for Mining Change Pattern Instances from Git Commits

    Authors: Matias Martinez, Martin Monperrus

    Abstract: Software repositories such as Git have become a relevant source of information for software engineer researcher. For instance, the detection of Commits that fulfill a given criterion (e.g., bugfixing commits) is one of the most frequent tasks done to understand the software evolution. However, to our knowledge, there is not open-source tools that, given a Git repository, returns all the instances… ▽ More

    Submitted 19 October, 2018; originally announced October 2018.

    Journal ref: Proceedings of International Conference on Software Engineering, Tool track, 2019

  34. arXiv:1810.05806  [pdf, other

    cs.SE

    Human-competitive Patches in Automatic Program Repair with Repairnator

    Authors: Martin Monperrus, Simon Urli, Thomas Durieux, Matias Martinez, Benoit Baudry, Lionel Seinturier

    Abstract: 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 synthesize a valid patch, Repairnator proposes the patch to the human developers, disguised under a fake human identity. To date, Repairnator has been able to produce 5 patches that were accepted by the human developers a… ▽ More

    Submitted 13 October, 2018; originally announced October 2018.

  35. FixMiner: Mining Relevant Fix Patterns for Automated Program Repair

    Authors: Anil Koyuncu, Kui Liu, Tegawendé F. Bissyandé, Dongsun Kim, Jacques Klein, Martin Monperrus, Yves Le Traon

    Abstract: 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, the associated similar patches can be leveraged to extract generic fix actions. While the literature includes various approaches leveraging similarity among patches to guide program repair,… ▽ More

    Submitted 30 September, 2019; v1 submitted 3 October, 2018; originally announced October 2018.

    Comments: 31 pages, 11 figures

    Journal ref: Empirical Software Engineering, Springer Verlag, 2020

  36. IntRepair: Informed Repairing of Integer Overflows

    Authors: Paul Muntean, Martin Monperrus, Hao Sun, Jens Grossklags, Claudia Eckert

    Abstract: Integer overflows have threatened software applications for decades. Thus, in this paper, we propose a novel technique to provide automatic repairs of integer overflows in C source code. Our technique, based on static symbolic execution, fuses detection, repair generation and validation. This technique is implemented in a prototype named IntRepair. We applied IntRepair to 2,052C programs (approx.… ▽ More

    Submitted 10 October, 2019; v1 submitted 12 July, 2018; originally announced July 2018.

    Comments: Accepted for publication at the IEEE TSE journal. arXiv admin note: text overlap with arXiv:1710.03720

    Journal ref: IEEE Transactions on Software Engineering, 2019

  37. A Comprehensive Study of Pseudo-tested Methods

    Authors: Oscar Luis Vera-Pérez, Benjamin Danglot, Martin Monperrus, Benoit Baudry

    Abstract: 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 intriguing concept was coined in 2016, by Niedermayr and colleagues, who showed that such methods are systematically present, even in well-tested projects with high statement coverage. This work pres… ▽ More

    Submitted 5 September, 2018; v1 submitted 13 July, 2018; originally announced July 2018.

    Journal ref: Empirical Software Engineering, Springer Verlag, 2018 pp 1-31

  38. arXiv:1807.03200  [pdf, ps, other

    cs.SE cs.LG

    The CodRep Machine Learning on Source Code Competition

    Authors: Zimin Chen, Martin Monperrus

    Abstract: CodRep is a machine learning competition on source code data. It is carefully designed so that anybody can enter the competition, whether professional researchers, students or independent scholars, without specific knowledge in machine learning or program analysis. In particular, it aims at being a common playground on which the machine learning and the software engineering research communities ca… ▽ More

    Submitted 14 November, 2018; v1 submitted 6 July, 2018; originally announced July 2018.

  39. App Store 2.0: From Crowd Information to Actionable Feedback in Mobile Ecosystems

    Authors: María Gómez, Bram Adams, Walid Maalej, Martin Monperrus, Romain Rouvoy

    Abstract: Given the increasing competition in mobile app ecosystems, improving the experience of users has become a major goal for app vendors. This article introduces a visionary app store, called APP STORE 2.0, which exploits crowdsourced information about apps, devices and users to increase the overall quality of the delivered mobile apps. We sketch a blueprint architecture of the envisioned app stores a… ▽ More

    Submitted 2 July, 2018; originally announced July 2018.

    Journal ref: IEEE Software, Institute of Electrical and Electronics Engineers, 2017, 34, pp.81-89

  40. arXiv:1807.00515  [pdf, other

    cs.SE cs.CR cs.PL

    Automatic Software Repair: a Bibliography

    Authors: Martin Monperrus

    Abstract: This article presents a survey on automatic software repair. Automatic software repair consists of automatically finding a solution to software bugs without human intervention. This article considers all kinds of repairs. First, it discusses behavioral repair where test suites, contracts, models, and crashing inputs are taken as oracle. Second, it discusses state repair, also known as runtime repa… ▽ More

    Submitted 2 July, 2018; originally announced July 2018.

    Journal ref: ACM Computing Surveys, Association for Computing Machinery, 2017

  41. A Chaos Engineering System for Live Analysis and Falsification of Exception-handling in the JVM

    Authors: Long Zhang, Brice Morin, Philipp Haller, Benoit Baudry, Martin Monperrus

    Abstract: Software systems contain resilience code to handle those failures and unexpected events happening in production. It is essential for developers to understand and assess the resilience of their systems. Chaos engineering is a technology that aims at assessing resilience and uncovering weaknesses by actively injecting perturbations in production. In this paper, we propose a novel design and implemen… ▽ More

    Submitted 18 November, 2019; v1 submitted 14 May, 2018; originally announced May 2018.

    Journal ref: IEEE Transactions on Software Engineering, 2019

  42. A Comprehensive Study of Automatic Program Repair on the QuixBugs Benchmark

    Authors: He Ye, Matias Martinez, Thomas Durieux, Martin Monperrus

    Abstract: Automatic program repair papers tend to repeatedly use the same benchmarks. This poses a threat to the external validity of the findings of the program repair research community. In this paper, we perform an empirical study of automatic repair on a benchmark of bugs called QuixBugs, which has been little studied. In this paper, 1) We report on the characteristics of QuixBugs; 2) We study the effec… ▽ More

    Submitted 28 September, 2020; v1 submitted 9 May, 2018; originally announced May 2018.

    Journal ref: Journal of Systems and Software, 2021

  43. Characterizing the Usage, Evolution and Impact of Java Annotations in Practice

    Authors: Zhongxing Yu, Chenggang Bai, Lionel Seinturier, Martin Monperrus

    Abstract: Annotations have been formally introduced into Java since Java 5. Since then, annotations have been widely used by the Java community for different purposes, such as compiler guidance and runtime processing. Despite the ever-growing use, there is still limited empirical knowledge about the actual usage of annotations in practice, the changes made to annotations during software evolution, and the p… ▽ More

    Submitted 5 April, 2019; v1 submitted 4 May, 2018; originally announced May 2018.

    Comments: TO APPEAR IN IEEE TRANSACTIONS ON SOFTWARE ENGINEERING

    Journal ref: IEEE Transactions on Software Engineering, 2019

  44. Fully Automated HTML and Javascript Rewriting for Constructing a Self-healing Web Proxy

    Authors: Thomas Durieux, Youssef Hamadi, Martin Monperrus

    Abstract: Over the last few years, the complexity of web applications has increased to provide more dynamic web applications to users. The drawback of this complexity is the growing number of errors in the front-end applications. In this paper, we present an approach to provide self-healing for the web. We implemented this approach in two different tools: 1) BikiniProxy, an HTTP repair proxy, and 2) BugBloc… ▽ More

    Submitted 2 February, 2020; v1 submitted 23 March, 2018; originally announced March 2018.

    Journal ref: Proceedings of ISSRE, 2018

  45. Astor: Exploring the Design Space of Generate-and-Validate Program Repair beyond GenProg

    Authors: Matias Martinez, Martin Monperrus

    Abstract: During last years, researches have proposed novel repair approaches that automatically generate patches for repairing software bugs. Repair approaches can be loosely characterized along the main design philosophy such generate- and-validate or synthesis-based. Each of those repair approaches is a point in the design space of program repair. Our goal is to facilitate the design, development and eva… ▽ More

    Submitted 23 January, 2019; v1 submitted 9 February, 2018; originally announced February 2018.

    Journal ref: Journal of Systems and Software, Elsevier, 2019

  46. Dissection of a Bug Dataset: Anatomy of 395 Patches from Defects4J

    Authors: Victor Sobreira, Thomas Durieux, Fernanda Madeiral, Martin Monperrus, Marcelo A. Maia

    Abstract: Well-designed and publicly available datasets of bugs are an invaluable asset to advance research fields such as fault localization and program repair as they allow directly and fairly comparison between competing techniques and also the replication of experiments. These datasets need to be deeply understood by researchers: the answer for questions like "which bugs can my technique handle?" and "f… ▽ More

    Submitted 5 February, 2018; v1 submitted 19 January, 2018; originally announced January 2018.

    Comments: Accepted for SANER'18 (25th edition of IEEE International Conference on Software Analysis, Evolution and Reengineering), Campobasso, Italy

    Journal ref: Proceedings of the IEEE International Conference on Software Analysis, Evolution and Reengineering, 2018

  47. Ultra-Large Repair Search Space with Automatically Mined Templates: the Cardumen Mode of Astor

    Authors: Matias Martinez, Martin Monperrus

    Abstract: 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. Cardumen finds 8935 patches over 77 bugs of Defects4J. This is the… ▽ More

    Submitted 9 July, 2018; v1 submitted 11 December, 2017; originally announced December 2017.

    Journal ref: Proceedings of the International Symposium on Search Based Software Engineering, 2018

  48. Exhaustive Exploration of the Failure-oblivious Computing Search Space

    Authors: Thomas Durieux, Youssef Hamadi, Zhongxing Yu, Benoit Baudry, Martin Monperrus

    Abstract: High-availability of software systems requires automated handling of crashes in presence of errors. Failure-oblivious computing is one technique that aims to achieve high availability. We note that failure-obliviousness has not been studied in depth yet, and there is very few study that helps understand why failure-oblivious techniques work. In order to make failure-oblivious computing to have an… ▽ More

    Submitted 23 March, 2018; v1 submitted 25 October, 2017; originally announced October 2017.

    Comments: arXiv admin note: substantial text overlap with arXiv:1603.07631

    Journal ref: Proceedings of the International Conference on Software Testing, Verification and Validation (ICST), 2018

  49. A generative model for sparse, evolving digraphs

    Authors: Georgios Papoudakis, Philippe Preux, Martin Monperrus

    Abstract: 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 that aims at generating graphs similar to real ones. Since real graphs are evolving and this evolution is important to study in order to understand the underlying dynamical system, we tackle… ▽ More

    Submitted 17 October, 2017; originally announced October 2017.

    Journal ref: 6th International Conference on Complex Networks and their applications, Nov 2017, Lyon, France

  50. Sorting and Transforming Program Repair Ingredients via Deep Learning Code Similarities

    Authors: Martin White, Michele Tufano, Matias Martinez, Martin Monperrus, Denys Poshyvanyk

    Abstract: In the field of automated program repair, the redundancy assumption claims large programs contain the seeds of their own repair. However, most redundancy-based program repair techniques do not reason about the repair ingredients---the code that is reused to craft a patch. We aim to reason about the repair ingredients by using code similarities to prioritize and transform statements in a codebase f… ▽ More

    Submitted 30 December, 2018; v1 submitted 15 July, 2017; originally announced July 2017.

    Comments: camera-ready paper for SANER 2019

    Journal ref: Proceedings of the IEEE International Conference on Software Analysis, Evolution and Reengineering, 2019