Monday, March 25, 2013

The Impact of Testing on Productivity



No doubt: Intensive testing improves quality. But manual testing has risks: Often the test result depends on the tester’s form on that day. The attention diminishes when the same test cases are executed again and again. The effort of the testers costs time and budget, which results in a reduction of the productivity.

Additionally to the developer's quality-awareness, constructive QA by processes, methods, tools, frameworks, re-usable components, etc. automated testing is a key to increase quality without reducing the productivity. Test automation even can increase productivity because many defects are detected earlier (probably more defects and much earlier than with manual testing) and thus the costs for bug-fixing are lower. The following list shows some well-proven test automation methods:

  • Continuous integration of components which are completed and checked-in by the developers to an executable application (build automation). Thereby it can be permanently verified that the code is compileable, references e.g. to libraries can be resolved, etc.
  • Execution of all unit tests, e.g. JUnit classes, created by the developers – within the continuous integration process.
  • Performing a tool-based code analysis to check the conformity with the agreed programming guidelines. For this very powerful tools as Sonar are available, which can also be executed within the continuous integration process (see: Using Sonar for steady Analyses of the Code Quality).
  • Automated GUI tests (black box tests) where scripts enter values into the fields of web dialogs, activate dialog elements and check for asserted values or states. For this tools as Sahi or Selenium are proven, where complex scenarios of test cases can be defined which help to verify that an application is still working as expected after every new build process (regression testing).
  • Automated load tests to analyze the behaviour of a system regarding permanent load or overload and related to its concurrent use by many users, processing large amounts of data or a high number of transactions.
No doubt that automated test methods can improve quality and productivity. The earlier defects can be detected, the lower the effort for bug-fixing is. The higher the degree of automation, the lower are the personnel costs. Both have a positive effect on the productivity.

No comments:

Post a Comment