A method for testing software, the method comprising: associating a plurality of controls on a graphical user interface of a software application under test with test actions to be performed on the controls, thereby creating a plurality of test steps, wherein each test step comprises at least one test action associated with a control description, and wherein associating the plurality of controls with test actions comprises using a rules base to associate the test actions with the controls; wherein a test action corresponds to a user action that is taken upon the application under test, and wherein the control description describes one or more of the plurality of controls on the graphical user interface of the software application under test; associating at least one test step of the plurality of test steps with a database comprising one or more columns and one or more rows and associating a parameter to one or more of the plurality of test steps, wherein a parameter comprises a reference to a column in the database and an instruction to utilize the data in one or more rows of the column, wherein the instruction to utilize the data in one or more rows of the column comprises iteratively executing the testing action on the associated control; generating a test component comprised of the plurality of test steps arranged in an order to be executed, comparing the generated test component to a previous test component that is associated with a previous version of the software application under test, wherein the previous test component comprises a plurality of previous test steps, and each of the plurality of previous test steps comprises at least one test action associated with a particular control description, detecting one or more changes between the controls of the software application under test and the previous version of the software application under test, displaying, on a graphical user interface for a software tester, a graphical representation of both the generated test component and the previous test component simultaneously, wherein the graphical representations of both the test components each comprise graphical representations of each test step of the test components, and wherein each test step comprises a graphical representation of the at least one test action and the control description, and displaying, on the user interface for a software tester, a visual indicator that highlights at least one difference between at least one of the test steps of the generated component and at least one of the test steps of the previous test component. associating a plurality of controls on a graphical user interface of a software application under test with test actions to be performed on the controls, thereby creating a plurality of test steps, wherein each test step comprises at least one test action associated with a control description, and wherein associating the plurality of controls with test actions comprises using a rules base to associate the test actions with the controls; wherein a test action corresponds to a user action that is taken upon the application under test, and wherein the control description describes one or more of the plurality of controls on the graphical user interface of the software application under test; associating at least one test step of the plurality of test steps with a database comprising one or more columns and one or more rows and associating a parameter to one or more of the plurality of test steps, wherein a parameter comprises a reference to a column in the database and an instruction to utilize the data in one or more rows of the column, wherein the instruction to utilize the data in one or more rows of the column comprises iteratively executing the testing action on the associated control; generating a test component comprised of the plurality of test steps arranged in an order to be executed, comparing the generated test component to a previous test component that is associated with a previous version of the software application under test, wherein the previous test component comprises a plurality of previous test steps, and each of the plurality of previous test steps comprises at least one test action associated with a particular control description, detecting one or more changes between the controls of the software application under test and the previous version of the software application under test, displaying, on a graphical user interface for a software tester, a graphical representation of both the generated test component and the previous test component simultaneously, wherein the graphical representations of both the test components each comprise graphical representations of each test step of the test components, and wherein each test step comprises a graphical representation of the at least one test action and the control description, and displaying, on the user interface for a software tester, a visual indicator that highlights at least one difference between at least one of the test steps of the generated component and at least one of the test steps of the previous test component.