The Why and How of Automation Testing

Automation Testing image

With the advent of agile development methodologies, most organizations want to opt for automation testing, for quicker test results. They are challenged with optimizing the quality of complex software applications in a cost-effective way and deliver innovative solutions that generate a high return-on-investment and ensure competitive advantage.

As a part of an independent Quality Assurance organization, I often come across clients who are not fully aware of the challenges and risks associated with Automation Testing. Some clients do not even fully realize the benefits that automation testing has to offer. So, I would like to take this opportunity to provide a high level insight into what automation testing is and what wonders it can do for today’s agile development teams!

Test automation is the development and use of software/tools to control the execution of application testing. The application can be of any nature: desktop, web, mobile. Mostly, test automation involves automating a manual test process that is already in practice.

Why Automation Testing?

  • Automation testing greatly reduces the time required for functional or regression testing
  • Suitable for applications with shorter lifecycles and multiple releases
  • Automated scripts are highly reusable and work across multiple platforms
  • Automation testing is consistent
  • Automation testing can improve productivity as tests can be run in an unattended  environment
  • It provides the test team with more time and flexibility which would otherwise be taken up by manual testing
  • Automation testing eliminates the chances of human error and produces accurate results

How to conduct Automation Testing?

Assuming that you have now realized the benefits of Automation Testing to some extent I would like to explain the basic steps involved in the process:

  • Determine whether the nature of the app is suited to Automation or not? The best candidates for automation are applications [desktop, web or mobile] which are developed through multiple releases.
  • Choose an automation testing approach: Most people think Automation testing is about record and playback; well that is not the case and there are number of advanced automation methodologies in practice today.
    • Test Modularity    

      is an approach where the application under test is divided into scripts components or modules. Through scripting QA can build an abstraction layer for each component. This approach is highly scalable and improves the maintainability of automated test scripts in case of changes within an individual component.

    • Test Library Architecture

      is another scripting-based framework that divides an application into modules by using functions and procedures. This approach also enables test teams to easily maintain huge test suites, just like test modularity.

    • Keyword-driven Testing

      is an application-independent test automation framework that uses data tables and “keywords” to define the actions to be performed on the application under test. This technique enables test teams to start developing test framework earlier and also makes it easier to maintain tests in later stages. The keyword-driven framework also enables less-technical members of team to understand the tests, thus enhancing possibilities of their contribution in testing. Once in place, keyword-driven testing has proven to be highly efficient and effective.

    • Data-driven Testing

      is a testing framework that uses variable data values from an external file (such as a CSV, XML, and XLS) instead of using hard-coded data values. This method can be employed to test all the desired data values by using a single script. Data can be updated from tables rather than making changes in the script. This methodology improves the productivity of test teams by enabling a high level of script reusability. Data-driven testing is often implemented in combination with any of the above frameworks.

    • Record/Playback              

      is considered to be the quickest and easiest approach for test automation, but it has its own limitation. The tests are not easily maintainable or reusable. Any new addition or change in the features of the application will lead to re-developing and designing the entire course of action – negating any time savings which test automation was supposed to deliver.

    • Develop a Test Plan             

      The Automation Test Plan offers a roadmap for creating the automated tests based on a single or hybrid approach. Once the tests are designed as per the user requirements, defined and developed, you can start the automation testing.