Difference between revisions of "GUI Testing"

(Overview)
Line 23: Line 23:
 
See '''[[GUI Capture]]''' for a discussion about the capturing part.
 
See '''[[GUI Capture]]''' for a discussion about the capturing part.
  
See '''[[GUI Test Case generation]]''' for a discussion about how to specify the test case.
+
See '''[[GUI Testing/Test Case generation]]''' for a discussion about how to specify the test case.
  
 
See '''[[GUI Replay]]''' for a discussion about test case execution.
 
See '''[[GUI Replay]]''' for a discussion about test case execution.

Revision as of 12:04, 1 November 2006


Overview

In GUI Testing one wants to assert certain properties of a graphical application, the application under test (AUT). Certain problems arise in this area:

  • Test case generation
    To generate a test case one has to specify the user interaction with the AUT and the properties that has to be checked.
  • Test case execution
    To verify the test case, the AUT has to be executed as if the user would issue the commands and then the properties have to be checked.
  • Level of testing
    GUI Testing can occur on multiple levels: From high level (did an issued action do the right thing) to low level (did the popup-menu appear at the right position and the right font).
  • Regression testing
    Depending on the type of GUI testing, even small layout changes in the AUT break all available tests.

Capture & Replay

To address the problem of test case generation, event capturing can be used. In this approach, the tester performs the desired test manually while a capturing tool records all events which occured. Into this sequence of events the tester then inserts assertions at the desired position.

The test case can then be run which sends the recorded event sequence to the AUT and checking if the current execution state of the AUT matches with the assertions.

To have some sort of protection against layout changes, caputred events should not just depend on the mouse position but also on the underlying widgets. This means that the action is not issued on a position but on a (somehow identified) widget and thus is not affected when the widget changes position.

See GUI Capture for a discussion about the capturing part.

See GUI Testing/Test Case generation for a discussion about how to specify the test case.

See GUI Replay for a discussion about test case execution.