1. A system for testing software, comprising: a processing unit; executable instructions that, when executed by the processing unit, cause the processing unit to: receive, via a user interface, an indication of a test specification, the test specification defining a dependency between at least one test scenario and at least one code component of an application; retrieve, from a repository, data associated with the test specification to dynamically update the user interface; present, within the user interface, a view of the test scenario containing steps and actions performed in accordance with the test specification; build a markup language test script based on the data that is used to dynamically update the user interface receive, within the user interface, an indication of an action to modify a portion of the code component associated with the test specification; check out the portion of the code associated with the test specification to be modified; execute testing of the software utilizing the portion of the code as checked-out code; present alias options in the user interface; execute testing of the software in accordance with the alias options to utilize the checked-out code; and wherein the set of executable instructions further comprise instructions executed to dynamically update the repository with changes to the code.