1. A method for testing a software program, comprising: creating a behavioral model for the software program using branches, decisions, and options, each decision being associated with a corresponding branch and each option being associated with a corresponding decision, wherein the behavioral model comprises one or more attachments, each attachment linking an option of a branch to another branch; displaying the behavioral model in a graphical user interface (GUI), wherein in the displayed behavioral model, each branch is represented using a table, each decision is represented using a row of the table, the row comprising a set of boxes, each box representing an option for the corresponding decision, and wherein each attachment between an option of a branch and another branch is represented using an arrow; constructing one or more paths in the behavioral model, wherein each path comprises options from one or more corresponding decisions of one or more branches and attachments between the options in the path and other branches of the behavioral model; generating a test case from the behavioral model, wherein the test case traverses a path in the behavioral model; 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.