Testability of Free Software projects

Earlier this month, Michael Bolton (not the singer, but the software tester), wrote about testability of software. Basically he answers the question of how to increase software testability and if it involves something more than making it easier to automate.

Testability is anything that makes the program faster or easier to test on some level.

Indeed it involves a lot more.

His explanation is very concise and it gives useful tips to increase testability. If you are writing any kind of software, I recommend you reading his post to improve its testability.

Why should we care about testability? I guess it is hard to think about every non-functional risk when writing an application. Not only you have to make it work, but now you also have to think about performance, accessibility, usability, and now, if all that was not enough, testability.

Making a software easier to test not only makes testers’ jobs easier but also it gives more time to developers to fix the issues before the release, as bugs can be found earlier in the cycle.
Not long ago I filed a couple of bugs in Notify OSD that, if fixed, they will make Ubuntu’s notification system easier to test. They do not imply making the application easier to automate, they are just a couple of bugs about improving its logging system. Making an application logging system more intelligent is just an example of an easy way to improve its testability.

I’ve added the tag “testability” to these two bugs and will start to do the same with the bugs I find that makes testing harder. If you are a software tester or a developer that cares about testing, do the same. Usability, accessibility, testability, performance; they all share a common objective: making software better.

One comment

  1. I agree that “testability” is a great feature. Another great feature is documentation of testabilty; for support people (who have to deal with tens of thousands of applications and libraries “at random”) it’s often difficult to find out how to get useful debug/test data.