1. A method of generating and testing a sequence of user interface (UI) pages of a software wizard, comprising the steps of: generating UI pages of the software wizard that includes a first UI page and other UI pages of the software wizard, wherein the first UI page is associated with one or more constraint functions which, when triggered, cause a transition from the first UI page to another UI page of the software wizard; and testing the constraint functions independently of the UI pages of the software wizard to determine that the software wizard executes as expected, wherein inputs to the constraint functions include UI input elements, properties of a data structure that stores data relied upon by the constraint functions to generate content for the UI pages of the software wizard, and external data, and outputs of the constraint functions include validation results, a set of values to be presented on one or more of the UI pages of the software wizard, a value to be assigned to a particular property of the data structure, and a page flow map change that modifies one or more transitions between the UI pages of the software wizard, and wherein the constraint functions include a first constraint function, a second constraint function, and a third constraint function, the output of the first constraint function including a value for a particular property of the data structure, that is an input to the second constraint function and triggers the second constraint function, and wherein an input of the third constraint function is a UI input element and a validation result of the third constraint function is an error message that causes the UI input element to be disabled.