1. A method for managing execution of a computer software application, comprising: identifying, during execution of a primary instance of the computer software application, the primary instance reaching an execution point that presents a plurality of predefined options to a user; wherein the computer software application is an installation program executing within a virtual machine, and each of the plurality of duplicate instances execute within respective cloned virtual machines; generating, prior to selection by the user of one of the pre-defined options and based upon the execution point being reached, a plurality of duplicate instances of the primary instance; assigning, respectively, execution paths corresponding to the plurality of predefined options to each of the plurality of duplicate instances; executing, prior to the selection by the user of one of the predefined options, the plurality of duplicate instances along their respective execution paths; gathering information associated with the execution of the each of the plurality of duplicate instances; automatically eliminating, as a predefined option to be presented to the user, the predefined option corresponding to one of the plurality of duplicate instances that resulted in a failed operation; presenting a recommendation, prior to the one predefined option being selected and based upon gathering information, as to the plurality of predefined options; determining that one of the plurality of pre-defined options has been selected; terminating, based upon the one predefined option being selected, each of the duplicate instances not associated with the one predefined option; and identifying, within one of the execution paths corresponding to the plurality of predefined options, a second execution point that presents a second plurality of predefined option to the user, and repeating the steps of generating, assigning, and executing for the second execution path.