13.1. Testing

| Chapter 13: Testing and Publishing |

| 13.1. Testing

There are no recipes for testing, alas, although most experienced IF authors have their preferred ways of going about it. Briefly: the best advice is to build and maintain a Skein which holds complete play-throughs of the piece, so that it is easy to check with a single click that all is still well; to have beta-testers who play through (substantial) drafts and send back their transcripts of play, along with suggestions; and to listen to these suggestions, and treat the beta-testers as editors rather than galley slaves.

Alpha shows a way to gracefully accept beta-testers' annotations without advancing time in the game.

Most large works of IF have historically provided secret commands for testing and debugging - commands removed (or sometimes accidentally not) in the final released product. Inform does this automatically: the commands SHOWME, ACTIONS and SCENES are always present except in a released story file. It also allows us to write passages of source text which apply only for the testing phase, so that we can define new testing commands, or other checks that all is well: Bic demonstrates this, and is also useful in its own right.

58
| Example Bic Testing to make sure that all objects have been given descriptions. |
WI

404
| Example Alpha Creating a beta-testing command that matches any line starting with punctuation. |
WI

Sometimes we want to let testers of a game insert their own comments during a transcript, without those comments wasting turns of the game or producing lengthy or inappropriate parser errors. Many testers have a habit of prefacing comments with a punctuation mark, so let's say that we'd like to catch any command that starts with any punctuation at all: "Alpha" When play begins: say "Hi, Larry! Thanks for testing my game!!" Unimplemented Room is a room. "Room description goes here..." The scary troll is a man in Unimplemented Room. After reading a command (this is the ignore beta-comments rule): if the player's command matches the regular expression "^\p": say "(Noted.)"; reject the player's command. Test me with "x me / x troll / !this game is a bit dull so far / kiss troll / ? does this troll do anything? / :yawn".

Previous | Contents | Next