Purpose of Test Automation
Before understanding the concepts of Selenium, we have to first understand Software Testing at a high level.
The purpose of the Software Testing is to find Software Bugs in a Software Program when any particular feature of the Software is not working as expected. For example, while testing login functionality of any Software Program say Gmail.com, we may find a Bug where User is not able to login to the Gmail even after providing valid Username and password as shown in the below screenshot:
As Software Program is not just a login functionality, it comprises of several other features which need to be tested. i.e. We may have to test other features in Gmail like Creating and sending Emails, Viewing Emails , Replying to emails, Deleting emails, Writing email using different options provided etc. When you clearly observe, Gmail is a complex software which comprises of various features. In order to test whether all the features in Gmail are working as Expected, a single day may not be enough.
How do Testers perform testing?
Testers verify and validate the Software Program as part of testing:
- Verification: Process of checking whether the Software Program is developed according to the specified Business Requirements.
- Validation: Process of checking whether the Software Program is working properly to decide whether Software can be used in real time without any problems.
Automation Testing is testing the Software with the help of tools. In Automation testing, testing is performed by Tools instead of Testers.
Regression Testing When any new features get added to an existing software or any new bugs gets fixed by developers in the latest version of Software, all the existing functionalities working in previous versions of Software needs to be tested to check whether there are no side-effects because of newly introduced features or newly fixed bugs.
The purpose of Automation Testing Though there are many reasons why Automation Testing is required over Manual Testing, in practice Automation Testing is mainly used for performing Regression Testing. As new features and new fixes will be added to the Software on a day to day basis, testers won’t get much time to concentrate on the existing working functionalities as most of the time they will focus on testing newly added features, functionality changes, and newly fixed bugs. To continue performing Regression Testing while the testers are focusing their testing efforts on newly added features, functionality changes, and newly fixed bugs, Automation testing is used while working on day to day projects.