A computer software product, comprising a computer-readable medium in which computer program instructions are stored, which instructions, when read by a computer, cause the computer to execute method of verifying a design, comprising the steps of:
- loading a behavior model of said design as a finite state machine;
- generating a test program based on said finite state machine;
- and
- preparing a sample of all possible inputs for said test program, wherein said sample comprise a list of parameters, said parameters being selected from a predetermined set of values, said parameters applying to transitions of said finite state machine, and having predetermined mutual interactions, wherein said sample is minimized to a near-optimal minimal plurality of said inputs that cover at least one instance of each said interactions.