Whenever I do any sort of testing or debugging, I like to keep a very accurate log of what I'm doing. I've found this to be a really good practice for a few reasons:
- This gives you a really nice record of events to go back over in case you forget if you tested something or how you tested it. In some ways, it can become a journal of what you did that day.
- It forces you to be very methodical about your testing procedure. You don't want to change two variables at a time when testing. A step-by-step log puts you in the mindset of doing one thing at a time.
- It slows you down and forces you to think. The act of writing down what you just did gives your brain some time to process what you just did.
- It gives you a way of looking back at things so that you can see at what step a problem came up. This is really useful in debugging software or system-level issues.
I have two ways of creating a test log. The first is completely unexciting and we've all been doing it since we were kids. Pen and paper. Or in my case, an Uni Kuru Toga mechanical pencil and a Moleskine Folio Hard Cover 8.25 x 11.75 notebook. Yes, I record test results with a pencil, but don't worry, I have a way of making things permanent. When I'm done with the notebook I rip it apart and put it through a scanner to keep a digital copy. I only use paper when the testing is particularly dirty and I know I would destroy a laptop in the field.
The second is my favorite and involves two really useful pieces of software: DayOne and TextExpander. DayOne is a beautiful journaling app that lets you sync journal entries with Dropbox and I've talked about TextExpander before. DayOne lets you add the current location and weather to any entry, which is perfect for keeping a log of testing.
I have a few TextExpander snippets that I use in order to quickly create my test log and all of them have to do with the date/time:
- ddati will expand to the date and time in a nice format. It looks like this: 2014-10-15-11-50-10
- chma will expand to the date and time and also a text phrase to record that I've made a change. It simply looks like this: 2014-10-15-11-50-40 CHANGE MADE:
- reafch looks similar to chma except that the text phrase indicates that these are the results after a change was made. It looks like this: 2014-10-15-11-52-36 RESULT AFTER CHANGE:
- ddano is also similar except that the text phrase indicates a thought I had or something to note. I use this if there is something interesting going on, but it isn't a result of a change that was made. It looks like this: 2014-10-15-11-53-59 NOTES:
And that's it. Just using those four snippets will help me to quickly create a nice test log. I start every line with one of these timestamp variants and it will generate a file that can be easily parsed later on. You should know that if you want to get the log file out of DayOne, you'll need to export it manually. If you know you'll always need to use the log file somewhere other than copying and pasting it into a larger document, you may want to just use a simple text file instead of DayOne.