WebCheck - Test Execution Checkpointing for Web Applications
Test isolation is a prerequisite for the correct execution of test suites on web applications. Isolating web application tests is, however, challenging. Straightforward state-restore approaches, such as resetting the application's state between successive test executions, are prohibitively expensive. Alternatively, test engineers can manually modify tests to enforce isolation. But test modification is not only error prone, it must be repeated each time the application is modified. In short, state-restore approaches are universally applicable and can be automated, but are inefficient. In contrast, test modification approaches can be efficient but are application-dependent and largely manual.
Test Execution Checkpointing is a test execution method for web applications that achieves the best of the two aforementioned approaches. Namely, it provides automatic test isolation in an efficient and application-independent manner. It allows test engineers to focus on writing tests and delegate isolation entirely to the execution engine. Our method's key ingredient is to extend test execution engines with checkpointing capabilities to save and restore application states with minimal overhead.
Marco Guarnieri, Petar Tsankov, Tristan Buchs, Mohammad Torabi Dashti, and David Basin - Test Execution Checkpointing for Web Applications (ISSTA 2017)
WebCheck is a tool instantiating Test Execution Checkpointing for PHP Web Applications. WebCheck's source code along with the test cases and the scripts used in the experiments presented in the ISSTA 2017's paper can be found here (TAR, 8.2 MB).