1. A method for editing a test script for testing software comprising: providing an application state stack that includes a plurality of consecutive states, each application state includes at least one test object; providing a test script that lists actions that the software under test is to execute, the test script including test methods, the test methods being associated with state transitions; receiving a request to modify the test script; creating a modified application state stack portion based on the modified test script; checking the integrity of the modified test script by ensuring that the modified application state stack portion can be integrated with at least a portion of the application state stack subsequent to the modified portion by analyzing the state transitions associated with test methods; and if the modified test script maintains integrity, allowing the modified test script to replace the test script and updating the application state stack with the application state stack integrated with the modified portion of the application state stack.