Testing Multiple Versions

Aus ExpeccoWiki

Wechseln zu: Navigation, Suche

The Challenge

One of the biggest strengths of expecco is its dynamic adaptibility to changes in the system under test. For example, in a recent project we had to write test scenarios for regression tests of a web-GUI application which was about to be migrated to a newer version with slightly different test data and a slightly different GUI. (actually, due to the fact that the new version did not work as expected, we even had to switch back for a while, and suspend the switch for a few months).

The basic scenario of the test was as follows:

  • Enter a test-data block into the applications service message queue (via an MQ-interface)
  • using a web-GUI, start the message processing
  • wait until the message is processed
  • go to another web-GUI (on a different host) and check the message's fields
  • fetch a transaction number there
  • go to a third web-GUI, enter the transaction number and check some more fields there
  • check (via an oracle interface) for integrity of a relational database

The Solution

On the highest level, the test is implemented as a simple straght sequence similar to:

Datei:MessageProcessing example1.png

when we had to make the switch for the new version, the message injection at the beginning was changed, to be controllable by a global flag:

Datei:MessageProcessing example2.png

This clag can either be initialized manually (after the suite is loaded), or passed in via a parameter-set from a file (--parameter command line option), or be passed-in from expeccoNET.

Datei:MessageProcessing example3.png

and also, some of the webGUI forms validations, using a control-flow split:

Datei:MessageProcessing example4.png

Notice, that if the messages were self-describing (which they were not, in this example), the setting of the controlling flag could even be done dynamically "on the fly":

Datei:MessageProcessing example5.png



Back to Online Documentation

Meine Werkzeuge