Abstract

The problem of determining whether two programs compute the same function is undecidable. We restrict the class of functions that a program can compute to be a finite dimensional vector space, enabling the problem to become tractable. We prove a theorem showing that the number of test points needed to distinguish any such programs is equal to the dimension of the vector space of functions which they compute, thus generalizing previous results of Howden. Our result unifies certain existing software testing theory and explains the successes and failures of one existing method for selecting test data called perturbation testing. We apply the theorem to obtain three results on the number of test points required to test in vector spaces of Boolean functions and polynomials. First, the Vandermonde matrix used together with our theorem yields the classical result that a polynomial of degree at most n is determined by n+1 points. Second, in vector spaces of Boolean functions we obtain useful results when the degree of the Boolean function is less than the number of inputs to the function. Third, we apply our theorem to describe a technique for testing nonpolynomial, real valued functions.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call