Testability Improves Your Product


I’ve talked about testability before, but I recently had an experience that reinforced for me how improving testability directly improves the product. I am working with my good friend and mentor John Gossman to write a Visio-to-XAML converter. Our first thought was to write a Visio add-in that yanked data out of a drawing and wrote it to XAML. Of course we immediately started thinking about how we were going to test our code. “If the parsers just take strings it would make testing them really easy”, one of us said. “That eliminates our reliance on Visio.” “That means the converter could run on a server – that could be super useful!”

Mark that – considering testability drove us to a decision that makes the product usable in a whole set of scenarios we had not originally thought of. We might perhaps have ended up at this point eventually, but testability drove us there early. I see this happen all the time. Far from being some “test thing” that sucks resources away from “the real work”, testability directly contributes to making the product better.

Testing. It doesn’t make the products you use; it makes the products you use better.


*** Want a fun job on a great team? I need a tester! Interested? Let’s talk: Michael dot J dot Hunter at microsoft dot com. Great coding skills required.

Comments (2)

  1. mswanson says:

    Can’t wait to see the Visio exporter! When I started exploring the Illustrator -> XAML export functionality, I reasoned that if I wrote a tool to convert from .AI files to .XAML, that would be the most useful (because many software pacakges export to .AI). I’d get the most bang for the buck, so to speak. However, when talking to Illustrator users, this didn’t appeal to them at all. As a matter of fact, the feedback was quite negative. As a result, I built it as an Illustrator plug-in (essentially limiting the audience), and I’ve received many, many comments about how "easy" it is to include in existing workflow. So, in this case, I explicitly scoped the scenarios *down* to better accomodate the user.

  2. I’ve been doing quite a bit of work with Visual Studio Team System over the last two weeks from deploying