DocumentCode :
2439104
Title :
Quickly detecting relevant program invariants
Author :
Ernst, Michael D. ; Czeisler, Adam ; Griswold, William G. ; Notkin, David
Author_Institution :
Dept. of Comput. Sci. & Eng., Washington Univ., Seattle, WA, USA
fYear :
2000
fDate :
2000
Firstpage :
449
Lastpage :
458
Abstract :
Explicitly stated program invariants can help programmers by characterizing certain aspects of program execution and identifying program properties that must be preserved when modifying code. Unfortunately, these invariants are usually absent from code. Previous work showed how to dynamically detect invariants from program traces by looking for patterns in and relationships among variable values. A prototype implementation, Daikon, accurately recovered invariants from formally-specified programs, and the invariants it detected in other programs assisted programmers in a software evolution task. However, Daikon suffered from reporting too many invariants, many of which were not useful, and also failed to report some desired invariants. The paper presents, and gives experimental evidence of the efficacy of, four approaches for increasing the relevance of invariants reported by a dynamic invariant detector. One of them (exploiting unused polymorphism), adds desired invariants to the output. The other three (suppressing implied invariants, limiting which variables are compared to one another, and ignoring unchanged values), eliminate undesired invariants from the output and also improve runtime by reducing the work done by the invariant detector
Keywords :
formal specification; program testing; programming theory; software reliability; system monitoring; Daikon; dynamic invariant detector; explicitly stated program invariants; formally-specified programs; implied invariants; invariant detector; program execution; program properties; program traces; prototype implementation; quick detection; relevant program invariant detection; software evolution task; unchanged values; undesired invariants; unused polymorphism; Computer science; Costs; Data mining; Detectors; Engines; Java; Permission; Programming profession; Runtime; Testing;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Software Engineering, 2000. Proceedings of the 2000 International Conference on
Conference_Location :
Limerick
ISSN :
0270-5257
Print_ISBN :
1-58113-206-9
Type :
conf
DOI :
10.1109/ICSE.2000.870435
Filename :
870435
Link To Document :
بازگشت