Automatic Generation of Floating-Point Test Data

  title={Automatic Generation of Floating-Point Test Data},
  author={Webb Miller and David L. Spooner},
  journal={IEEE Transactions on Software Engineering},
  • W. Miller, D. Spooner
  • Published 1 May 1976
  • Computer Science
  • IEEE Transactions on Software Engineering
For numerical programs, or more generally for programs with floating-point data, it may be that large savings of time and storage are made possible by using numerical maximization methods instead of symbolic execution to generate test data. Two examples, a matrix factorization subroutine and a sorting method, illustrate the types of data generation problems that can be successfully treated with such maximization techniques. 

FloPSy - Search-Based Floating Point Constraint Solving for Symbolic Execution

This paper introduces an augmented version of DSE that uses a SBST-based approach to handling floating point computations, which are known to be problematic for vanilla DSE.

Exploiting Binary Floating-Point Representations for Constraint Propagation

Improved algorithms for the propagation of arithmetic IEEE 754 binary floating-point constraints are presented and fully justify their justification.

A Practical Approach to Verification of Floating-Point C/C++ Programs with math.h/cmath Functions

Verification of C/C++ programs has seen considerable progress in several areas, but not for programs that use these languages’ mathematical libraries. The reason is that all libraries in widespread

Software test data generation using program instrumentation

  • M. GallagherV. Narasimhan
  • Computer Science
    Proceedings 1st International Conference on Algorithms and Architectures for Parallel Processing
  • 1995
The key feature of this system is that the problem of test data generation is treated entirely as a dynamic numerical optimisation problem and, as a, consequence, this method does not suffer from difficulties commonly found in symbolic execution systems.

Filtering by ULP Maximum

  • M. CarlierA. Gotlieb
  • Computer Science
    2011 IEEE 23rd International Conference on Tools with Artificial Intelligence
  • 2011
The Marre and Michel property over floating-point addition/subtraction constraint is reformulate to ease its implementation in real-world floating- point constraint solvers and generalize to the case of multiplication/division in order to benefit from its improvements in more cases.

ADTEST: A Test Data Generation Suite for Ada Software Systems

The design of the software system ADTEST (ADa TESTing), for generating test data for programs developed in Ada83, is presented, finding to reduce the effort required to test programs as well as providing an increase in test coverage.

Achieving high coverage for floating-point code via unconstrained programming

The challenge of testing floating-point code is turned into the opportunity of applying unconstrained programming --- the mathematical solution for calculating function minimum points over the entire search space.

Filtering Floating-Point Constraints by Maximum ULP

Improved algorithms for the filtering of arithmetic IEEE 754 binary floating-point constraints are presented and fully justify their justification.

Symbolic execution of floating‐point computations

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



Automatic Error Analysis Using Computer Algebraic Manipulation

The inherent error and the floating-point roundoff error of an expression can be determined automatically using a computer algebra language such as REDUCE to determine algebraically the variance or bound of the total error.

A System to Generate Test Data and Symbolically Execute Programs

  • L. Clarke
  • Computer Science
    IEEE Transactions on Software Engineering
  • 1976
A system that attempts to generate test data for programs written in ANSI Fortran by symbolically executing the path and creating a set of constraints on the program's input variables, which facilitates error detection and being a possible aid in assertion generation and automatic program documentation.

Software for roundoff analysis, II

The package presented differs from Its predecessor in four important respects: a mmicompfler allows easy specicatmn of the algorithm being tested, the package can test the simultaneous effect of rounding error upon several values, and it deals with branching in numerical methods.

SELECT—a formal system for testing and debugging programs by symbolic execution

SELECT appears to be a useful tool for rapidly revealing program errors, but for the future there is a need to expand its expressive and deductive power.

The Design and Analysis of Computer Algorithms

This text introduces the basic data structures and programming techniques often used in efficient algorithms, and covers use of lists, push-down stacks, queues, trees, and graphs.

Software for Roundoff Analysis

This chapter discusses the method of utilization of the software for roundoff analysis. It discusses measuring rounding errors in terms of the extent to which the computational problem must be

Testing large software with automated software evaluation systems

This paper attempts to describe some main features of automated software tools and some software evaluation systems that are currently available.

A Decision Method For Elementary Algebra And Geometry

By a decision method for a class K of sentence (or other expressions) is meant a method by means of which, given any sentence θ, one can always decide in a finite number of steps whether θ is in K;

Algorithm 423, linear equation solver

  • Commun. Ass. Comput. Mach
  • 1972

The correctness of numerical algorithms

A simple algorithm for finding the sum of n numbers is first used to show how assertions can be modified to take account of the effect of roundoff, then a so-called backward error analysis leads to a proof that the algorithm is correct in the sense that it produces exact results for slightly perturbed problems.