What, When & How of Automation Testing
We always think that The Test Automation is a magical formula to improve the quality of applications from the beginning of application development. But when we actually start with automation, then is the time we realize the real situation. More often, we face many challenges like
- when to start automation,
- what to automate,
- selection of right tool
- development of automation scripts following best practices.
So Lets discuss all this in detail –
What is Automation Testing?
It is a process in which automation tools run the tests suite, predefined actions on a software application, reporting outcomes, comparative results and generate detailed test reports.
Test Automation demands investments of money and resources, development life-cycles, repetitive execution. But when we actually start the automation we need to define the right-time for automation, scope of automation and right-tool for automation. If this exercise is not done well, then it can be very expensive.
When to Start Test Automation?
There are many situations, when you realize that Automation Testing must be done:
1) To Optimize the Speed & Efficiency
2) To Increase the Quality and Decrease the Cost
In software development processes, time-to-market is always on priority. Automation test design for Regression testing, Functionality testing, Re-testing the existing modules, so that auto-scripts run fast and frequently. It’ll surely reduce the time, cost and increase the speed.
3) When there is a repetition or a need to run the test cases a lot number of times in a test cycle.
4) When there are number of test cases under one test-suite
In this case you’ll feel tired after executing each test cases from that test suite, then automation can provide you better results.
5) When there is a requirement of running the test cases in a defined order
While doing software testing, there are scenarios in which you need to test specific feature/module before the others. To achieve this in manual testing its required to remember the order, or you’ll write the order in some other file(.doc, txt, excel) and will refer that. But with automated testing, you can design the scripts in such manner as per our needs.
6) To Increase the Test Coverage
As a human, there are some areas remain left while doing Regression/Retesting. So Automation test helps you to cover all test cases for each module.
7) When you need to run the same test cases on different machines at the same time
When there is a requirement to run the same set of test cases simultaneously on multiple machine, then automation is your answer. Under manual testing process, you cannot execute same test case at the same time on several machines.
8) When you need to test single functionality with multiple data sets.
At the time of testing process, you need to run the same test case with multiple data. Then data driven automation testing framework comes in picture to minimize your effort & time. The data is fetch from an external source (e.g. Excel) and pass the multiple and big-size data to each test case. In manual testing, you get bored of testing same functionality and chances of error can increases.
9) When you need to run Regression/Sanity/Smoke Test Suite
Regression test suite consists selected number of test cases, which need to be tested after every defect fix cycle. For regression/sanity testing there is a need of automation testing, because:
i) Its test cases never/rarely change.
ii) Repeated execution of test-cases (after each new functionality).
10) Generation of Detailed Reports
Mostly all automated testing tools generate test reports automatically once the testing cycle completes. This eases the job of identifying defects and allow the test team to make decision to reliability of the product. So Automation is the solution
You should refer this cycle before starting with automation:
How to start Automation?
Even if all the above situations makes sense to go for Automation Testing, the fact is you’ll need resources to process it successfully. There are important steps on which an Expert test team should pay attention in an Automation Process:
1) Selection of Automation Test Tool
It mainly depends on the technology of that Application Under Test(AUT) to which you are planning to Automate. It’ll great if you do conduct Proof of Concept of Tool first, thus you can ensure that test coverage can be maximize.
Some popular automation tools are:
i) QTP : HP’s Quick Test Professional – functional testing tool which support for both Web & Desktop Applications
ii) Rational Robot : IBM tool for regression, functional testing for ERP, E-Commerce Applications
iii) Selenium: An open source automated testing suite for web applications supports mostly all browsers
A widely used Automation Test Tool specifically for applications based on Angular.js is Protractor, here’s a link to a webinar on the basics of Automation Testing using Protractor:
2) Scope of Automation
It consists the area of your Application Under Test which you are planning to automate, like:
i) Is your application stable enough to automate
ii) Common functionality through out the application
iii) When large amount of data is used as Test Inputs
iv) Complex Test Cases
v) Re-testing/Regression Testing
3) Planning, Design and Development
In this phase you do planning for Automation, design, create strategy which includes-
i) Design of Framework
ii) What to cover in Automation and what not
iii) Following scripting standards
iv) Create Generic functions for Common Steps
v) Execution of test cases independently
vi) Test data
vii) Schedule and Time line of Deliverables for automation testing
viii) Make flexibility in scripts & code
ix) User Friendliness
Conclusion
To make Test Automation a successful exercise, you need to select Right Automation Tools, an Expert Team and a well structured plan. You need to give proper time and efforts to development of test automation suite.
I hope you will find this information useful 🙂
Thanks for the great article. To add on to the types of tools that we need to consider for testing automation and that is API (web service) testing — REST or SOAP APIs that are internal that we build/manage/integrate or those that are external that we just integrate. Testing these services for correctness and performance in a “live” state (running on our local dev, staging and production) has become critical as applications are increasing becoming dependent on services. One of the modern tools for accomplishing API testing and monitoring is Runscope. It allows entire teams, from core engineering, QA and DevOps to build and execute tests on APIs wherever they reside — and easily fire those tests from any test automation or CI/CD tool/framework.