On Oracles for Automated Diagnosis and Repair of Software Bugs

Martin Monperrus 1, 2
2 SPIRALS - Self-adaptation for distributed services and large software systems
Inria Lille - Nord Europe, CRIStAL - Centre de Recherche en Informatique, Signal et Automatique de Lille (CRIStAL) - UMR 9189
Abstract : This HDR focuses on my work on automatic diagnosis and repair done over the past years. Among my past publications, it highlights three contributions on this topic, respectively published in ACM Transactions on Software Engineering and Methodology (TOSEM), IEEE Transactions on Software Engineering (TSE) and Elsevier Information & Software Technology (IST). My goal is to show that those three contributions share something deep, that they are founded on a unifying concept, which is the one of oracle. The first contribution is about statistical oracles. In the context of object-oriented software, we have defined a notion of context and normality that is specific to a fault class: missing method calls. Those inferred regularities act as oracle and their violations are considered as bugs. The second contribution is about test case based oracles for automatic repair. We describe an automatic repair system that fixes failing test cases by generating a patch. It is founded on the idea of refining the knowledge given by the violation of the oracle of the failing test case into finer-grain information, which we call a “micro-oracle”. By considering micro-oracles, we are capable of obtaining at the same time a precise fault localization diagnostic and a well-formed input-output specification to be used for program synthesis in order to repair a bug. The third contribution discusses a novel generic oracle in the context of exception handling. A generic oracle states properties that hold for many domains. Our technique verifies the compliance to this new oracle using test suite execution and exception injection. This document concludes with a research agenda about the future of engineering ultra-dependable and antifragile software systems.
Document type :
Habilitation à diriger des recherches
Complete list of metadatas

Cited literature [100 references]  Display  Hide  Download

https://tel.archives-ouvertes.fr/tel-01321718
Contributor : Martin Monperrus <>
Submitted on : Thursday, May 26, 2016 - 11:34:02 AM
Last modification on : Friday, May 17, 2019 - 11:41:10 AM
Long-term archiving on : Saturday, August 27, 2016 - 10:33:56 AM

Identifiers

  • HAL Id : tel-01321718, version 1

Citation

Martin Monperrus. On Oracles for Automated Diagnosis and Repair of Software Bugs. Software Engineering [cs.SE]. Université de Lille 2016. ⟨tel-01321718⟩

Share

Metrics

Record views

1453

Files downloads

1081