SSEL/CASSEL Multistage

the Multistage site
 
   

Testing Framework Introduction and Overview

PDF
PDF

Purpose

The Multistage framework has a few good testing tools beneficial to both developers and users. The unit tests ensure that each piece of the system works as intended, while the larger integrated tests verify the system as a whole, exercising the interactions between the components.

Overview

  • Integrated testing is made convenient by the TestGUI class. It provides an intuitive means for setting up a simple single-virtual-machine test for any parameter file. The test plays the game randomly and verifies the sanity of the output.
  • Automated testing is our name for a form of integrated testing that automatically runs its clients in seperate virtual machines. This can give a better feel for the stability of the system since it more closely approximates the conditions of an actual lab experiment.
  • Manual testing involves deploying an experiment in a sort of dress rehersal, running it in the lab as though actual test subjects were present. This constitutes a staging run, and is highly recommended.
  • Unit tests attempt to isolate each module (or Java class) to verify functionality. These tests form the first line of defense against regressions, and are mainly useful to developers.
  • Performance testing is used internally to tune response times and resource usage. Such tests are not generally interesting to the end user, but can sometimes be usefull in studying the feasibility of running a given experiment on specific equipment.

Going Solo: mailboxTest

The mailboxTest class is a convenience wrapper enabling simple limited-scope testing in a single Java virtual machine. With it, one can play through a game on a single console with limited resources, controlling the server and a number of clients manually or automatically depending on the setting of the defaultMode property in the mult-client.properties file.

The setup section of the documentation describes the procedure for building multistage and running mailboxTest.