The Why and How of Automation Testing


The-Why-and-How-of-Automation-Testing
257 Flares Twitter 7 Facebook 10 Google+ 9 LinkedIn 231 Buffer 0 257 Flares ×

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. 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 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.

Automation testing can do miracles for any organization, if it is implemented the right way of course! It surely helps to test an application faster and also increases the odds of finding defects.

257 Flares Twitter 7 Facebook 10 Google+ 9 LinkedIn 231 Buffer 0 257 Flares ×
  • Dan Ashby

    Hi Kualitatem inc,

    It would be good if you could detail *what* you cannot automate as well as clarify what you can automate. You’ve mentioned some good reasons as to *why* you might want to automate, but nothing about what is possible and what isn’t.

    I noticed that you said: “Test automation is the development and use of software/tools to control
    the execution of application testing …… test automation involves
    automating a manual test process that is already in practice.”
    But one useful thing to take into account is that you can only code checks in for the functionality that you expect and know. The software will always have a level of unexpectedness surrounding it, with scenarios that haven’t been thought about, or different ways that the software might be operated that produces unanticipated results. You cant automate for this. You cant automate anything that is unknown. And you only really learn about these kind of things when you are physically using and investigating the software.

    And then you also need to take *value* into account with automation too. Does it add value to automate everything that you do know?
    Should you automate every conceivable way that an input field might fail to check the error handling for each of those 50 or 60 different scenarios?
    Or is it more valuable to automate the end to end happy path for regression purposes to check that our expectations of the end to end process aren’t diminished by a future release in the software?

    This type of information would be valuable in your post! :)

    Thanks,
    Dan

    • http://www.kualitatem.com/ Kualitatem

      Thanks for the input Dan. We’re working on a blog post along similar lines. We’ll make sure that we answer your questions in it as well. Stay awesome! :)

Get Our Latest Posts Instantly!

Stay In Touch!






follow us in feedly

257 Flares Twitter 7 Facebook 10 Google+ 9 LinkedIn 231 Buffer 0 257 Flares ×