1. A method for testing a software program, comprising, in at least one computer: creating a behavioral model of the software program using branches, decisions, and options; for a first decision of each branch, determining a proximate multiplier for the first decision by dividing a proximate combination count for the branch by a proximate option count for the decision; for each subsequent decision, determining a proximate multiplier for the subsequent decision by dividing a proximate multiplier for a previous decision by a proximate option count for the current decision; applying a weight assignment technique to the behavioral model to create a set of global identifiers (IDs), wherein the global IDs correspond to test cases of the behavioral model, and wherein the weight assignment technique uses the proximate multipliers for the first and each subsequent decision; generating a test case using one of the global IDs; executing the test case on the software program; and analyzing an output of the executed test case to determine a validity of the software program.