One of the challenges of working at Microsoft, or at any job really, is continually learning new ways to work at your job.  I am constantly faced with the challenge of learning new skills, studying new software testing techniques and always trying to improve the way we can analyze the quality of OneNote.  (I think it is great, but I am hardly unbiased :) )


Two books on my reading list right now are Think Bayes by Allen Downey and 10 Print  by Nick Montfort, Patsy Baudoin, John Bell, Ian Bogost, Jeremy Douglass, Mark C. Marino, Michael Mateas, Casey Reas, Mark Sample, and Noah Vawter.

Quick overview: I am interested in analyzing our automation results using a Bayesian network.  The goal is to augment our existing analysis with  a new model of a confidence level with our automation results as we prepare to ship any version of OneNote.  We have such analysis now and this will help by giving us a new viewpoint into the system.  The lesson I am applying here is that the more models you have, the better decision you will be able to make.  If we rely on only one metric, we risk "having our eggs in one basket" and and miss other insights.

It's a relatively small book and uses Python for all the code samples.  I started learning Python last fall so I am able to follow along with his methodology pretty well and this book so far has been useful.  It looks like it will provide the basics, but implementing what I have in mind will require more technical detail than what is offered, but Downey explains the basics very well.

10 Print  just caught my eye because of the 1980 style graphics on the cover.  I'm not sure if anything here will apply to testing - maybe some of the art critiques and design element commentary, but I'm not good at that aspect of software design anyway - but it is an unusual book.  It examines one line of code from the old Commodore 64 computer that drew a little maze-like design.  Everything is covered here - modern art relative to this topic, Theseus and the minotaur, Ada Lovelace, the challenges of random numbers and ports to other platforms. 

Both of these books also have the advantage of having "free" downloads in PDF form on their websites.  In both cases I have physical copies but you can try them out there.

Oh, and now that I look at what I have written, I notice that we have used one aspect of a topic covered in 10 Print with testing.  Our exploratory testing tools use seeds to track random content generation so that if it detects a bug, we can regenerate the same content in subsequent runs.  Admittedly, this is something we were doing long before I started on this book, but even an unusual book like this can have insight into testing software.

Questions, comments, concerns and criticisms always welcome,
John