The bane of generate-And-validate program repair: Too much generation, too little validation

Document Type

Conference Proceeding

Publication Date

9-8-2021

Abstract

To repair a program does not mean to make it absolutely correct; it only means to make it more-correct, in some sense, than it is. This distinction has consequences: Given that software products typically have a dozen faults per KLOC and thousands of KLOC's, program repair tools ought to be designed in such a way as to transform an incorrect program into an incorrect, albeit more-correct, program. In the absence of a concept of relative correctness (the property of a program to be more-correct than another with respect to a specification), program repair methods have resorted to various approximations of absolute correctness. This shortcoming has been concealed by the fact that they are usually validated on programs with a single fault at a time, for which the goals of absolute correctness and relative correctness are indistinguishable. In this paper we discuss how the use of relative correctness can reduce the scale of patch generation and enhance the efficiency, precision and recall of patch validation.

Identifier

85116467389 (Scopus)

ISBN

[9781643681948]

Publication Title

Frontiers in Artificial Intelligence and Applications

External Full Text Location

https://doi.org/10.3233/FAIA210013

e-ISSN

18798314

ISSN

09226389

First Page

113

Last Page

126

Volume

337

Grant

DGE1565478

Fund Ref

National Science Foundation

This document is currently not available here.

Share

COinS