There are different approaches for functional web testing without having to modify the system under test:
While HTTP Unit tests and HTTP Request/Response is effectuated below the presentation layer, the approach of control and monitoring at the GUI level allows taking presentation and possible user interactions in account. That is why this approach is being employed for web2test in form of Capture and Replay (see also Testing web applications with Capture & Replay)
For functional web testing at the GUI level there are again different approaches:
web2test uses the technology of browser embedding for functional web testing (for more possible fields of application see web testing), since this is the best way to record and replay user interactions as if they were performed by a real user (read the article about website testing to see how a real user simulation helps with the testing of dynamic websites). Besides there is no need to exchange or modify components in the browser or via a web application server in order to realize the test scenario. Especially the latter can lead to a distortion of test results and complicates the process of functional web testing, because additional infrastructures have to be provided.
figure 1 web2test’s browser embedding approach for functional web testing
web2test’s browser embedding is being realized in the following way:
The test software uses ActiveX for the embedding of the Internet Explorer and GRE for the embedding of Mozilla. Via the embedding interface web2test has a direct and constant access to all browser information (e.g. rendering information and Dom structure) for functional web testing. Therefore all browser, DOM and Javascript events can be identified, triggered or manipulated which again offers a multitude of different possibilities to adapt functional web testing to specific needs. web2test records all events component based (for more information regarding the component based approach see Approaches of functional web testing software). Via the embedding interface these events are mapped directly on the respective DOM elements.
The “functional web testing software” article in German: