One feature of software development is that, like neolithic flint-knappers, we create our own tools out of the material we work with. That is, we write software to help us write software (rather than pressure-flaking).
Unlike the simple, well-specified Folsom point, our product can behave incorrectly — it has bugs. Luckily, we can also write software to help deal with bugs.
Here at Shenandoah Studio, we use Fogbugz to track bugs so we can deal with them. But tracking is no good if you don’t get the report. And when you’re in the middle of playing a game on your iPad, it can be a pain to keep track of what happened, or to take a screen shot and remember to attach it to your eventual report.
And tracking bugs isn’t the goal: the goal is to fix bugs. Step one for a developer is to reproduce the issue so they can understand what’s going on. Good reproduction steps are part of this, but sometimes the player can’t remember just what they did. Or it takes a hundred steps to get the board set up just right to make things go wrong.
To address these issues, we added a way to send bug reports from inside the game (it’s very handy that Apple provides a simple way to do this). Use an obscure gesture, and you get an email message ready to send. The body of the message is a standard template, that reminds testers of important bug elements such as reproduction steps and expected results. We include basic configuration information (game build, device, and settings). And we attach a screen capture and a saved game. All a player needs to do is fill in some details and mail off the bug to a special email address that Fogbugz monitors. This is no substitute for a good tester, but it means testers can focus on the details of the bug and not have to worry about capturing routine data.
As a side benefit, it turned out that writing code to capture the screen for bug reports can have other uses. More on that later…