Testing 1-2-3: Open-Source Tools To Ensure Quality Applications

Neil A. Chaudhuri | GCN | December 10, 2013

When the HealthCare.gov rollout did not quite go according to plan, much was made about the absence of “testing.” There have been myriad newspaper columns, cable talk show segments, even exchanges at congressional hearings dedicated to the topic. Though the attention is gratifying to a software guy like me, implicit in the discussion is the premise that testing is a monolithic activity to be performed once development is complete.

I object to that premise. Testing is much more nuanced than has been suggested by recent commentary. Developers, testers and domain experts can work together to leverage a combination of open-source tools, automation and discipline in order to build quality into their applications from the start.

These four kinds of tests set up a foundation for quality:

  • Unit and integration tests. Written by developers as they build features to verify their code works as expected and to help refine design. Note the distinction is the subject of much debate.
  • Acceptance tests. Written by testers with the project sponsor and developers to verify an application works as expected for its stakeholders.
  • Non-functional tests. Acceptance tests pertaining to characteristics of the application  — that means performance, scalability and security.
  • Code quality tests. Configured by developers to scan for poorly written code that lends itself to more bugs and less maintainability.