Regression Testing: Manual or Automated

QA testing has become an indispensable part of the software development and plays a key role in defining the success of the end product. Though most of the product development companies are familiar with QA testing and are aware of the problems that might arise due to lack of it, there seems to be a lot of confusion around choosing the correct mode of doing QA testing – scaling up the in-house team versus opting for augmentation services.

Regression Testing is conducted to check whether new modifications in the code have introduced any errors in the overall functioning of the application. It verifies that software which was previously developed and tested still performs the same way after it was changed or interfaced with other software.

This has to be conducted after every iteration or Intermediate release. Features that have not been changed, where there is a low possibility of defects being found, also need to be tested. This makes Regression Testing time consuming; hence many organizations opt to automate this process.

There are a number of benefits of Automated Testing:

  • Speed:- Drastically reduces the time required to execute repetitive tests
  • Flexibility:- Can be performed at any time
  • Accuracy:- Greater precision and lower errors than manual testing
  • Wide Application:- Can be used in almost all the testing processes
  • Reporting:- Reports on the tests are generated for future improvements

Some key questions that need to be examined before deciding to adopt Automated Regression Testing are as follows:

  • Which features are to be considered
  • What architecture is to be used
  • Which tool is to be used for automation

An 8 step process that will help you to consider Automation for your Regression Testing is as follows:

  1. Start with the most repeated tests in your Regression Testing
  2. Work on the positive scenarios
  3. Start automation when you have a stable build
  4. Do not focus on optimizing quality straight away. Automate to minimize manual QA efforts
  5. Keep your scripts short and maintainable, bigger ones are expensive to build and maintain
  6. Test could fail at the second step, as the first part of the test usually brings the system to a certain state
  7. Run tests in parallel (where there are no interdependencies)
  8. Longer and critical scenarios should be run manually (as there are chances of failure due to minor bugs in the system)

Recommendation

Automated and manual testing are interrelated and complementary testing methods, and each has its pros and cons.
Before considering automation of Regression Testing, do estimate the time required for writing tests and their support.
Also, do keep in mind that test automation is more expensive then manual tests.