TY - GEN
T1 - On faults and faulty programs
AU - Mili, Ali
AU - Frias, Marcelo F.
AU - Jaoua, Ali
N1 - Funding Information:
Acknowledgement: This publication was made possible by a grant from the Qatar National Research Fund, NPRP04-1109-1-174. Its contents are solely the responsibility of the authors and do not necessarily represent the official views of the QNRF.
PY - 2014
Y1 - 2014
N2 - A fault is an attribute of a program that precludes it from satisfying its specification; while this definition may sound clear-cut, it leaves many details unspecified. An incorrect program may be corrected in many different ways, involving different numbers of modifications. Hence neither the location nor the number of of faults may be defined in a unique manner; this, in turn, sheds a cloud of uncertainty on such concepts as fault density, and fault forecasting. In this paper, we present a more precise definition of a program fault, that has the following properties: it recognizes that the same incorrect behavior may be remedied in more than one way; it recognizes that removing a fault does not necessarily make the program correct, but may make it less incorrect (in a sense to be defined); it characterizes fault removals that make the program less incorrect, as opposed to fault removals that may remedy one aspect of program behavior at the expense of others; it recognizes that isolating a fault in a program is based on implicit assumptions about the remaining program parts; it identifies instances when a fault may be localized in a program with absolute certainty.
AB - A fault is an attribute of a program that precludes it from satisfying its specification; while this definition may sound clear-cut, it leaves many details unspecified. An incorrect program may be corrected in many different ways, involving different numbers of modifications. Hence neither the location nor the number of of faults may be defined in a unique manner; this, in turn, sheds a cloud of uncertainty on such concepts as fault density, and fault forecasting. In this paper, we present a more precise definition of a program fault, that has the following properties: it recognizes that the same incorrect behavior may be remedied in more than one way; it recognizes that removing a fault does not necessarily make the program correct, but may make it less incorrect (in a sense to be defined); it characterizes fault removals that make the program less incorrect, as opposed to fault removals that may remedy one aspect of program behavior at the expense of others; it recognizes that isolating a fault in a program is based on implicit assumptions about the remaining program parts; it identifies instances when a fault may be localized in a program with absolute certainty.
KW - contingent fault
KW - correctness
KW - definite fault
KW - fault removal
KW - faults
KW - faulty programs
KW - monotonic fault removal
KW - refinement
KW - relative correctness
UR - http://www.scopus.com/inward/record.url?scp=84901707978&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84901707978&partnerID=8YFLogxK
U2 - 10.1007/978-3-319-06251-8_12
DO - 10.1007/978-3-319-06251-8_12
M3 - Conference contribution
AN - SCOPUS:84901707978
SN - 9783319062501
T3 - Lecture Notes in Computer Science (including subseries Lecture Notes in Artificial Intelligence and Lecture Notes in Bioinformatics)
SP - 191
EP - 207
BT - Relational and Algebraic Methods in Computer Science - 14th International Conference, RAMiCS 2014, Proceedings
PB - Springer Verlag
T2 - 14th International Conference on Relational and Algebraic Methods in Computer Science, RAMiCS 2014
Y2 - 28 April 2014 through 1 May 2014
ER -