Patent ID: 7587376

Claim:
A computer-implemented method for testing a system that includes a hardware device or software program, the method comprising: defining a constraint satisfaction problem (CSP) in terms of variables that are characteristic of ˜ the system under test and constraints applicable to the variables, the CSP having states corresponding to respective sets of values of the variables; assigning cost functions to the constraints so that the states have respective costs determined by application of the cost functions to the respective sets of values of the variables, the respective costs defining a problem topography of the CSP having global extrema corresponding to solutions of the CSP; prior to attempting to find the solutions of the CSP, automatically reformulating the constraints of the CSP so as to perform at least one of increasing a density of the solutions in the problem topography and smoothing a gradient of the problem topography; finding one or more of the solutions of the CSP by applying a stochastic CSP solver to the reformulated constraints using at least one stochastic solution technique selected from a group of techniques consisting of local search, greedy local search, and variable-range hopping techniques; testing the system by applying the values of the variables indicated by the one or more of the solutions to inputs of the hardware device or software program; and verifying a design of the hardware device or software program responsively to the testing.