1. In a computer system, a method of performing test generation for a computer program, the method comprising: selecting a set of predicates in the computer program; calculating a set of possible predicate values for plural statements in the computer program; calculating a subset of the set of possible predicate values for the plural statements in the computer program, the subset comprising an approximation of reachable states in the computer program; and generating a test for the computer program based at least in part on the subset.