TestFirstUserInterfaces recommends instrumenting the GuiLayer, and its tests, with more than just assertions. GraphicalUserInterfaces should record animations of activities during tests. AcceptanceTestFramework?s can command TestCases to record a gallery of results.
These tests cases could also have assertions, in their edit fields. The fields are arbitrary XML, transcluded into MiniRubyWiki:
That wiki page tests FractalLifeEngine's OpenGL skin. However, someone changed the numbers from the defaults, at http://flea.sourceforge.net/reference.html, and hit the Test buttons.
Because nobody should test every bit of GUI glitz, escalating the review of GUI usability aspects provides FeedBack?.
When a tested GUI such as a game has animation, one can collect a sequence of snapshots, merge them into an animated GIF with ImageMagick, and upload this. If you stay under your browser's megabyte limit for GIF animations...
The bench version of MiniRubyWiki transcludes XML, generating an instant GUI that edits each top-level XML node as a form. This permits incredible flexibilities as the nucleus of an AcceptanceTestFramework?.
For example, suppose each node has an attribute called title. (The screenshot above uses name in this role.) The current version of MRW will convert a title of "snowFlake" into <a name="snowFlake">, providing the ability to link directly to any test case in a long list:
(click): http://www.zeroplayer.com/cgi-bin/wiki?TestFlea#tropism
You can e-mail that link to a colleague, and say "please inspect, or execute, this test".
You can also write http://www.zeroplayer.com/cgi-bin/wiki?TestFlea#tropism directly into the wiki, because it's still a wiki around the transcluded XML part. However, wikis shouldn't contain external links to themselves if they can avoid them.
To fix this, in MiniRubyWiki you build a page called TestServer, and you write for the first line RemoteLink:http://myTestServer/wiki.rb?
Thenceforth, TestServer:TestPage#snowFlake will link to a specific test, by name.
This paper shows the BF technique online at a local game studio: