Symbolic execution of floating-point computations: Research Articles

  • Authors:
  • Bernard Botella;Arnaud Gotlieb;Claude Michel

  • Affiliations:
  • Thales Aerospace 2, avenue Gay-Lussac, F-78851 Elancourt Cedex, France;IRISA/INRIA, Campus Universitaire de Beaulieu, F-35042 Rennes Cedex, France;I3S-CNRS, 930 route des Colles, BP 154, F-06903 Sophia Antipolis Cedex, France

  • Venue:
  • Software Testing, Verification & Reliability
  • Year:
  • 2006

Quantified Score

Hi-index 0.00

Visualization

Abstract

Symbolic execution is a classical program testing technique which evaluates a selected control flow path with symbolic input data. A constraint solver can be used to enforce the satisfiability of the extracted path conditions as well as to derive test data. Whenever path conditions contain floating-point computations, a common strategy consists of using a constraint solver over the rationals or the reals. Unfortunately, even in a fully IEEE-754-compliant environment, this leads not only to approximations but also can compromise correctness: a path can be labelled as infeasible although there exists floating-point input data that satisfy it. In this paper, the peculiarities of symbolic execution of programs with floating-point numbers are addressed. Issues in the symbolic execution of this kind of program are carefully examined and a constraint solver is described that supports constraints over floating-point numbers. Preliminary experimental results demonstrate the value of the approach proposed. Copyright © 2005 John Wiley & Sons, Ltd.