iFixR: Bug Report driven Program Repair
release_k3oapa5p6ndwtaimqz4xdzc25m
by
Anil Koyuncu, Kui Liu, Tegawendé F. Bissyandé, Dongsun Kim, Martin
Monperrus, Jacques Klein, Yves Le Traon
2019
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 setups where fault localization and patch generation are
driven by a well-defined test suite. On the one hand, however, the common (yet
strong) assumption on the existence of relevant test cases does not hold in
practice for most development settings: many bugs are reported without the
available test suite being able to reveal them. On the other hand, for many
projects, the number of bug reports generally outstrips the resources available
to triage them. Towards increasing the adoption of patch generation tools by
practitioners, we investigate a new repair pipeline, iFixR, driven by bug
reports: (1) bug reports are fed to an IR-based fault localizer; (2) patches
are generated from fix patterns and validated via regression testing; (3) a
prioritized list of generated patches is proposed to developers. We evaluate
iFixR on the Defects4J dataset, which we enriched (i.e., faults are linked to
bug reports) and carefully-reorganized (i.e., the timeline of test-cases is
naturally split). iFixR generates genuine/plausible patches for 21/44 Defects4J
faults with its IR-based fault localizer. iFixR accurately places a
genuine/plausible patch among its top-5 recommendation for 8/13 of these faults
(without using future test cases in generation-and-validation).
In text/plain
format
Archived Files and Locations
application/pdf 2.1 MB
file_yive5i74sjdgtab5kzhcff4mse
|
arxiv.org (repository) web.archive.org (webarchive) |
1907.05620v1
access all versions, variants, and formats of this works (eg, pre-prints)