Test Automation: The Whens, Hows, and Whys

Posted in Automation Automated Testing

Test automation has been a broad, polarizing topic for quite some time. Some people respond to the prospect of automated testing with "No way, it is just a waste of time and money," while some people think it's the greatest invention since the wheel. My opinion is stuck somewhere in the middle of these two views.

To determine whether automated testing is reasonable to use (and ensuring the best test automation process in that case), we have to understand when to automate, how to automate, and why to automate.

There are some misconceptions surrounding test automation. Some people think that the test automation software will do everything on its own, and some people think this software might be a replacement for their normal manual testing job. Whether a company is deciding to automate or not should never be a cause for any individual to think he/she will be replaced, because there can never be successful automation without successful manual testing. Automation should aim at gradually reducing the manual testing effort, but not do away altogether with manual testing. It should always be understood that test automation will aid software testing but will never replace manual testing.

When do you automate?

The answer to the question of when to automate comes only after careful consideration of many factors that affect testing. If you manually execute the same test cases several times in a test cycle, then it would be worthy to look into test automation. If the number of test cases you have under a specific test suite is high and if they will be executed more than once, automation may be able to provide you with better results. When you have many test cases that have high chances of failing, it is recommended that you use an automated testing tool to test the high-priority features. This is important since there is a chance that the test case or the feature will be missed during the testing cycle with manual testing. Test automation will run each test the same way every time, thus reducing human error.

How do you decide what to automate?

Deciding what to automate means you first have to ensure the stability of the product or application in terms of functionality. If the functionality of the product or application is continually changing, there is no sense in spending the time or effort on complete test automation. When setting out to automate testing of the application or product, it is essential for the company to define the scope of coverage they desire. Will the automation include functionality testing and regression testing, or will it simply include acceptance testing?

There are a few things that need to be considered with discussing automation:

  • Stability
  • Interface
  • Scope
  • Test case identification
  • Tool selection

Why automate?

There are quite a few reasons to automate. Manual testing is lengthy and involves many man-hours, and that can lead to human errors. Details ranging from the requirements to the software product, whether big or small, can be easily forgotten. Automated testing verifies that the software matches the requirements and validates that the software is what the organization wants. Test automation also helps avoid certain defects and failures. Many things can lead up to this. For instance, if the environments are setup incorrectly or the wrong version of software is being deployed, this will cause a bug and the failure of the system.

Compatibility is also an issue when it comes to deploying a new version of software. The new version of software should be compatible with the existing software for everything to run smoothly, and test automation will help ensure this process.

Ultimately, there are many reasons why a company's interest in test automation will be sparked:

  • Saving of time and money
  • Increase in the speed of testing
  • Easier management of software testing

In summary, my view on when, how, and why to automate testing is this: the features of automation will ultimately speed up the process of software testing, even though manual testing will never be entirely replaced with automation.

Sonya Carroll is a senior software tester at DeRisk IT Inc. with experience in test automation for client-server and web-based applications.

Note: DeRisk IT is now known as DeRisk QA.