×

Cut branches before looking for bugs: sound verification on relaxed slices. (English) Zbl 1378.68023

Stevens, Perdita (ed.) et al., Fundamental approaches to software engineering. 19th international conference, FASE 2016, held as part of the European joint conferences on theory and practice of software, ETAPS 2016, Eindhoven, The Netherlands, April 2–8, 2016. Proceedings. Berlin: Springer (ISBN 978-3-662-49664-0/pbk; 978-3-662-49665-7/ebook). Lecture Notes in Computer Science 9633, 179-196 (2016).
Summary: Program slicing can be used to reduce a given initial program to a smaller one (a slice) which preserves the behavior of the initial program with respect to a chosen criterion. Verification and validation (V&V) of software can become easier on slices, but require particular care in presence of errors or non-termination in order to avoid unsound results or a poor level of reduction in slices.This article proposes a theoretical foundation for conducting V&V activities on a slice instead of the initial program. We introduce the notion of relaxed slicing that remains efficient even in presence of errors or non-termination, and establish an appropriate soundness property. It allows us to give a precise interpretation of verification results (absence or presence of errors) obtained for a slice in terms of the initial program. Our results have been proved in Coq.
For the entire collection see [Zbl 1333.68018].

MSC:

68N30 Mathematical aspects of software engineering (specification, verification, metrics, requirements, etc.)
68Q60 Specification and verification (program logics, model checking, etc.)

Software:

Coq
PDFBibTeX XMLCite
Full Text: DOI Link