Usability Testing vs Software Testing

We were asked by a couple of clients last week to wade in on the issue of “testing”. They were not only having problems launching online products that were “bug free” but the final product failed to deliver all functional requirements. In both cases, developers were completing Unit Testing but failed to conduct more wholistic Integration Tests and System Tests. From a Product Management perspective, the solution seemed simple. Develop and deploy a robust end to end test regime including User Acceptance Testing before sending the final product to the business for review. (I suspect that a testing process is easier to write than to deploy.)

During our discussions however, it also became apparent that there was some confusion between usability testing and software testing. So we thought it was time to put “pen to paper” to nut out the difference between usability testing and software testing.

Tyner Blain dedicated a whole series to software testing a few years ago and it seems that there is much to say about this subject. In layman’s terms, software testing determines if the product developed by software engineers functions and if it functions against a set of specifications.

There are different methods used in testing; the Black Box method and the White Box method. According to Perry (1990) the Black Box method tests the product againsts requirements without any regard for the program structure. Tyner Blain writes that using the Black Box method means that you don’t need to know anything about how the software works. This means that the tester (someone like me) is not required to be a software expert. The White Box method tests the performance of the software. Unlike the Black Box method, it requires technical knowledge of the code.

Usability testing on the other hand assesses the product against customer reactions. Usability testing unlike software testing attempts to understand if the solution to a customer problem actually resolves the problem. The aim of usability testing is not to uncover code defects but to test if customers know how to use the product and if they enjoyed using the product. It enables Product Managers to make informed decisions about the product solution before the expensive “final” build.

Usability testing should be conducted before software testing. Amendments to the functional specifications may be required to ensure that we’re building a desirable solution. By the time the product reaches software testing, we should be confident that the final product is a delight to use.