Testing Guide: Difference between revisions

From ParaQ Wiki
Jump to navigationJump to search
Line 20: Line 20:
* Once the test completes, the client should be in the same end-state as when the test was recorded.
* Once the test completes, the client should be in the same end-state as when the test was recorded.


== Setting-up Regression Tests ==
== Regression Test Setup ==


* Start the ParaQ client and record a test.
* Start the ParaQ client and record a test.

Revision as of 12:34, 20 March 2006

Overview

The current ParaQ testing framework makes it possible to "record" and "play back" user interaction with the ParaQ UI, and record render-window images for later comparison against reference images. By combining these two capabilities it is possible to create regression tests.

Recording Tests

  • Start the ParaQ client.
  • From the menu, choose Tools > Record Test.
  • In the file dialog that opens, choose a path where the test output will be written.
  • The "Recording User Input" dialog will appear. Move it somewhere out-of-the-way.
  • Use the ParaQ client UI normally, exercising the functionality you wish to test.
  • Once the client is in the desired end-state, go to the "Recording User Input" dialog and hit the "Stop Recording" button.

Running Tests

  • Start the ParaQ client.
  • From the menu, choose Tools > Play Test.
  • In the file dialog that appears, choose a previously-recorded test.
  • The test will play-back.
  • Once the test completes, the client should be in the same end-state as when the test was recorded.

Regression Test Setup

  • Start the ParaQ client and record a test.
  • Once test recording is complete, choose File > Save Screenshot.
  • Use the file dialog to save the contents of the render window as a reference image.
  • Exit the ParaQ client.
  • To run the test, use the appropriate command-line options to play the test, and compare its output with a reference image:
$ pqClient --run-test /path/to/test.xml --compare-view /path/to/reference/image.png
  • The --run-test option plays-back a test scenario as if you had used the Tools > Play Test menu item.
  • The --compare-view option compares the contents of the render window with a reference image, exiting the client with a non-zero exit code if the images don't match.
  • To make the test a permanent part of the ParaQ regression test suite, add it to the Qt/Client/CMakeLists.txt file (there are existing examples there).

Running Regression Tests

  • To run the complete set of regression tests, use the ctest utility included with CMake:
$ cd /path/to/ParaQBuild
$ ctest

Future Work

The current test framework has a number of limitations that will likely be addressed as development progresses:

  • The image-capture and comparison functionality should be expanded to include chart windows in-addition-to normal render windows.
  • Image-capture and comparison must be expanded to handle multi-view setups involving more-than-one render window.
  • Image comparison must be robust in the face of small differences in image size - on different platforms (and using different styles on a single platform), the sizes of windows will vary even with a fixed main window size, due to differences in e.g: the width of a splitter bar by a few pixels.