Test Automation or Automation in Testing can be defined as a part of software testing, involving the usage of various commercial and open-source tools/ techniques/ libraries/ packages/ scripting/ programming languages, with an ultimate motive to assist testers to take measures to check the quality, performance and reliability of a product before putting it to widespread use or practice. Test Automation helps to achieve this by:
– performing automated known checks on a product under test by comparing the actual outcome with the expected outcome and to provide results whether the expected outcome is met or not. Thereby, ensuring that the product has not regressed with introduction of new functionality.
– extracting information from the application under test and providing insights on various functional and non-functional aspects of the application.
– automating repetitive and time consuming manual tasks and processes which assist the testing of the software product like logging, reporting, environment setting, monitoring, scheduling etc. in order to free up tester’s time which can be utilized to perform more value-added, creative and exploratory tasks related to testing.

If you are new to testing or automation testing, you are probably starting off with a lot of questions – I’ve heard about Automation but what is Automation in Testing? Can I really find the bugs in the software product using Test Automation? Can every aspect of testing a software application be automated? Where from should I start learning test automation?

Performing testing manually is usually done by a tester sitting in front of a computer by executing test scripts that are created with an aim to make the software bug-free before it reaches the customers or end-users. On the other hand, Automation Testing leverages the presence and power of Automation Tools and libraries/packages/programming languages to execute the Test Scripts without necessarily requiring anyone to sit and monitor it. Automation tools also possess the ability to automate the creation and supply of test data to the software application under test thereby saving a huge amount of test data- creation time.

This, along with many other reasons, makes Automation Testing a must-to-have skill in this modern era of Software Testing where Agile and DevOps is the way forward to develop and deliver quality software products faster. In this ever-changing software world, the need to deliver large number of high quality products with fewer resources in limited time is increasing in intensity. Automated tests can be executed multiple times across iterations much faster than manual test cases, thus saving time as well as cost. Lengthy regression test cases can be executed unattended on multiple machines in parallel and with different configurations. In this way, the test coverage can also get increased. Moreover, test automation boosts the confidence of the testing teams by automating repetitive tasks and enabling the team to focus on exploratory testing to find insight from the software application.

Identification of the right test automation tool/tools is critical to ensure the success of testing projects and detailed analysis based on the application type, its technology stack and testing requirements must be conducted before selecting a tool.

In this Test Automation section, we will try to get you accustomed with some of the tools, methodologies and software engineering techniques which will help you to jump-start (if you are new) or enhance your existing skillset in the field of Test Automation.