Title :
Symbolic Path-Oriented Test Data Generation for Floating-Point Programs
Author :
Bagnara, Roberto ; Carlier, Matthieu ; Gori, Roberta ; Gotlieb, Arnaud
Author_Institution :
Dept. of Math. & Comput. Sci., Univ. of Parma, Parma, Italy
Abstract :
Verifying critical numerical software involves the generation of test data for floating-point intensive programs. As the symbolic execution of floating-point computations presents significant difficulties, existing approaches usually resort to random or search-based test data generation. However, without symbolic reasoning, it is almost impossible to generate test inputs that execute many paths with floating-point computations. Moreover, constraint solvers over the reals or the rationals do not handle the rounding errors. In this paper, we present a new version of FPSE, a symbolic evaluator for C program paths, that specifically addresses this problem. The tool solves path conditions containing floating-point computations by using correct and precise projection functions. This version of the tool exploits an essential filtering property based on the representation of floating-point numbers that makes it suitable to generate path-oriented test inputs for complex paths characterized by floating-point intensive computations. The paper reviews the key implementation choices in FPSE and the labeling search heuristics we selected to maximize the benefits of enhanced filtering. Our experimental results show that FPSE can generate correct test inputs for selected paths containing several hundreds of iterations and thousands of executable floating-point statements on a standard machine: this is currently outside the scope of any other symbolic-execution test data generator tool.
Keywords :
C language; floating point arithmetic; mathematics computing; program testing; program verification; symbol manipulation; C program paths; FPSE; correct projection function; critical numerical software verification; filtering property; floating-point computations; floating-point intensive programs; floating-point number representation; labeling search heuristics; precise projection function; random test data generation; search-based test data generation; symbolic evaluator; symbolic path-oriented test data generation; symbolic-execution test data generator tool; test input generation; Cognition; Electronic mail; Open area test sites; Software; Standards; Upper bound;
Conference_Titel :
Software Testing, Verification and Validation (ICST), 2013 IEEE Sixth International Conference on
Conference_Location :
Luembourg
Print_ISBN :
978-1-4673-5961-0
DOI :
10.1109/ICST.2013.17