1. A computer-implemented method executed by a computing device for testing software comprising: modeling software using a software model that describes a behavior associated with the software, wherein the software model comprises a state graph having multiple nodes, individual ones representing a state, and links between the multiple nodes that represent actions; and operating on the software model using a random destination algorithm and at least one other different algorithm to produce a sequence of test actions, the random destination algorithm being configured to randomly select a destination in the software model and move to that destination to produce the sequence of test actions, wherein the operating comprises using the random destination algorithm to select a destination node at random, independent of a nearest neighbor node, and traversing state space to arrive at the destination node.