1. A computerized method of creating test coverage for non-deterministic programs comprising: receiving a graph of edges and states representing a program under test; creating a continuous cycle of edges through the graph that reaches each edge in the graph at least once; splitting the continuous cycle into discrete sequences that end at edges reaching non-deterministic states in the graph; executing the program and verifying that the program conforms to the behavior represented by discrete sequences; determining untested program behavior as discrete sequences not reached by the program; creating strategies through the graph that have a higher probability of reaching discrete sequences not reached by the program; and executing the program under test conditions that cause the program to execute through states that correspond to the created strategies.