Sam and I have been teaching a first year course on programming and our final project is a distributed, multi-player game similar to this one:

Students had to write clients, servers, and AI players, and during our final exam period, we're going to hold a tournament between all the AI players -- hosted on a server that Sam and I wrote.

One idea that we had, which turned out to be a good one, was to define the language of client to server messages as a Redex language and then use Redex's random term generation to stress test our server. We constructed simple clients that did a rapid-fire send of random messages. We tested on well-formed messages, messages that were "close" to being well-formed, and messages that were just arbitrary junk (all expressed in a couple lines using define-language). We found several bugs in our server and running our students' clients against the server has not uncovered any further bugs beyond what Redex found.

 For list-related administrative tasks:

Reply via email to