Automated Testcase Generation for Numerical Support Functions in Embedded Systems

We present a tool for the automatic generation of test stimuli for small numerical support functions, e.g., code for trigonometric functions, quaternions, filters, or table lookup. Our tool is based on KLEE to produce a set of test stimuli for full path coverage. We use a method of iterative deepening over abstractions to deal with floating-point values. During actual testing the stimuli exercise the code against a reference implementation. We illustrate our approach with results of experiments with low-level trigonometric functions, interpolation routines, and mathematical support functions from an open source UAS autopilot.

[1]  Petra Hofstedt,et al.  Safety of Compilers and Translation Techniques Status quo of Technology and Science , 2008 .

[2]  Michael L. Overton,et al.  Numerical Computing with IEEE Floating Point Arithmetic , 2001 .

[3]  James Demmel,et al.  IEEE Standard for Floating-Point Arithmetic , 2008 .

[4]  Paul H. J. Kelly,et al.  Symbolic crosschecking of floating-point and SIMD code , 2011, EuroSys '11.

[5]  Clifford J. Maloney,et al.  Systematic mistake analysis of digital computer programs , 1963, CACM.

[6]  Michael L. Overton,et al.  Numerical computing with IEEE floating point arithmetic - including one theorem, one rule of thumb, and one hundred and one exercices , 2001 .

[7]  Johann Schumann,et al.  Formal testing for separation assurance , 2011, Annals of Mathematics and Artificial Intelligence.

[8]  John F. Hart,et al.  Computer Approximations , 1978 .

[9]  R. Bell,et al.  IEC 61508: functional safety of electrical/electronic/ programme electronic safety-related systems: overview , 1999 .

[10]  Stefan-Alexander Schneider,et al.  The Validation Suite Approach to Safety Qualification of Tools , 2009 .

[11]  Hoyt Lougee,et al.  SOFTWARE CONSIDERATIONS IN AIRBORNE SYSTEMS AND EQUIPMENT CERTIFICATION , 2001 .

[12]  Michael R. Lowry,et al.  Combining unit-level symbolic execution and system-level concrete execution for testing nasa software , 2008, ISSTA '08.

[13]  William M. Waite,et al.  Software manual for the elementary functions , 1980 .

[14]  Jana Maria Heinsohn,et al.  Einführung in die ISO 26262 "Functional Safety - Road Vehicles" , 2011 .

[15]  Dawson R. Engler,et al.  KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex Systems Programs , 2008, OSDI.