Wednesday, June 18, 2014

Common Mistakes #1 - Failure to Automate Testing

It’s common to think that adding test automation is too costly and takes too much time to implement, or that it isn’t viable to implement on an existing platform. In reality, devoting development resources to automated testing results in costs savings and reduces software defects and support costs.

The cost for finding and fixing bugs is much higher the later in the process they are discovered. The longer it takes to discover a defect the more people, time and money are required to fix it.

A bug discovered in:

  • Development only requires the developer
  • QA or integration testing requires the developer, QA and potentially the customer
  • Production requires the develop, QA, operations and potentially the customer

When evaluating whether to implement automated testing, consider:
  • Cost of fixing bugs in various stages of the process
  • Time spent manually running
  • Loss of customer confidence
  • Time to release new code and bug fixes in comparison to an automated environment


There is a cost for automating tests but it is typically, far less than not doing so.  

A fully automated testing environment is desirable and should be the ultimate goal, but the idea of implementing test automation in an existing system can be overwhelming. The following incremental steps can help assuage automation implementation fears:

  • Choose your test automation tools and environment
  • Avoid tools that require a lot of initial investment and overhead. Look for tools that are flexible and allow for incremental implementation with quick success. Consider open source tools, enhancing existing tools or creating lean tools. Dedicate a configuration management engineer to set up build automation.
  • Add unit tests within existing code
  • Unit tests expose hidden flaws, bad design, broken code and save man hours. Unit tests are simple to set up and can be run each time the developer compiles the code.
  • Automate the development and QA test environment
  • Automating the test environments is important for running tests continuously and finding issues early.
  • Add automation to the existing system in areas that are frequently changed, are core to the system or have been prone to problems
  • Adding test automation in key areas can yield immediate results and give the best return on investment. Make test automation required as part of the development process for new functionality.
Adding test automation in key areas can yield immediate results and give the best return on investment. Make test automation required as part of the development process for new functionality.

Getting everyone to understand the value of test automation is important for success. It requires support from all levels within the organization.

Show how test automation can:
  • Find bugs early
  • Save a late night support call
  • Increase confidence in the software
  • Improve release cycle times

Prevent implementation failures:
  • Identify an experienced developer or test automation engineer to work with the team and define a testing strategy
  • Review test automation best practices
  • Identify the right test environment for the organization
  • Avoid buying expensive tools that require a lot of overhead to maintain
  • Ensure tests verify expected functionality
  • Allow the extra time required to automate tests
  • Avoid fragile tests that break easily and need frequent rework when the system under test changes


Testing early and often is the most effective method for ensuring quality and reducing overall cost, and an automated testing strategy is the best way to accomplish that goal.




No comments:

Post a Comment