Maidenhead Converter 2.1.1 is now live. This was largely a refactor and bugfix release, there aren’t any new features.
I like using Maidenhead Converter as a testing ground for ideas, patterns and practices that I apply to my work on EventBoard. Maidenhead Converter is small and simple, but does a real task.
Recently, I’ve had a big focus on QA. The app now has a suite of unit tests, and those tests helped uncover some of the bugs that I fixed. The bugs tended to be on the app’s edge cases, but they were real, and I hadn’t caught them before.
I’ve found that internal data and processes are easy enough to write unit tests for, but views and view controllers seem quite difficult to test without doing some pretty bad contortions. I would like to figure out a good, straightforward way to write automated tests for the UI layer, but I don’t have one right now.
What I do have is a Runbook. A Runbook is a document that describes every button and feature and state of the app, and says how they should work. It’s similar to the monolithic design document that software under the waterfall development model gets, except the Runbook is developed alongside the app, instead of before. Before submitting a release, you treat the Runbook like a checklist, examining everything in the app and making sure it works as intended. While obviously far more time-consuming to execute than automated tests, it still did good for my confidence in the quality of the app.
Now that this release is done, I intend to do 2.2.0, which will include some new features.