Difference between revisions of "GUI Capture"

m (Eiffel Level Hooks)
(Low Level Hooks)
 
Line 11: Line 11:
 
===Low Level Hooks===
 
===Low Level Hooks===
  
On Windwos it is possible to capture low level window events. Through these it is possible for a capturing tool to launch the AUT and then install a hook to receive all input events. This should also be the case for Unix although it is not checked yet.
+
On Windows it is possible to capture low level window events. Through these it is possible for a capturing tool to launch the AUT and then install a hook to receive all input events. This should also be the case for Unix although it is not checked yet.
  
 
;Pro
 
;Pro

Latest revision as of 13:31, 14 February 2011


Overview

During the recording of a test case, all events of the AUT are recorded for later replay.

Approaches

There are different approaches for capturing GUI events:

Low Level Hooks

On Windows it is possible to capture low level window events. Through these it is possible for a capturing tool to launch the AUT and then install a hook to receive all input events. This should also be the case for Unix although it is not checked yet.

Pro
  • Capturing tool and AUT are separate
  • Can capture events from any application
Contra
  • Only receive low level events. No information about focus-changing for example.
  • Unclear how to receive additional information about AUT like current active widget or widget name of clicked widgets

Eiffel Level Hooks

For Vision2 we could implement a capturing mode. When this mode is activated, all events - including higher level events if needed - could be exported to a file. The implementation would mainly be done in the underlying toolkit (WEL and GTK implementation).

Pro
  • Capturing of all events
  • Additional information is available (e.g. widget name)
Contra
  • Event recording and its activation is part of the AUT
  • Only Vision2 can be captured

Sidenote

If event capturing is implemented into Vision2 it could be used to generate bug reports for EiffelStudio by sending in their event sequence which led to the problem. Of course it remains to check how large an event sequence gets after some time of using EiffelStudio.