Are you an automation tester and want to know how to choose which test cases to automate?
You know, this is one of the popular Selenium Interview Questions
We know that automation testing saves a lot of time and cost. Some managers think that an automation tester needs to automate complete application and also a few teams rush to automate everything.
There are some types of test cases we must automate and also some test cases we must not automate. We shouldn’t automate all the test cases. Earlier we have discussed on 8 Types of Test Cases Not To Be Automated.
Here we will discuss how to select correct test cases for automation testing.
Test automation for web application has a cardinal number of precedence in contrast to manual testing because it upgrades the result and constitution, enhances reliability, and minimize deviations from the results. Moreover, test automation stimulates the process, expand coverage tests. So, this can eventually expand overall standards of application. Superior automation can enhance the quality of publications, enlarge test coverage, minimize testing costs, and also empower early detection of miscalculations.
One major problem with test automation is to choose suitable test cases for automation. Here the question arises on which base the user can detect whether all test cases can automate or not.
To solve this obstacle the users must have to acknowledge the benefits of each test case automation. Software testing is a decisive part of any system that is going to launch. If the software is not tested properly and contains an increasing number of bugs then there are maximum possibilities that people are not going to use this product, at least not for a long period.
Manual testing is not only time consuming, immoderate, and repetitive but also leads to human error. Quality assurance teams perform automated testing by using software automation tools. These tools analyzed software in detailed, repetitive, and data-intensive manners that assist to improve software quality in a limited, and cost-effective manner.
Decisions about automated testing are a critical part of automation planning. The screening process must have to follow whenever the manual test case is required. Following guidelines could be considered while deciding potential test cases for automation
Types of Test Cases To Automate
1. Data-driven test cases:
Data-driven test cases are suitable for those testing since they require multiple data sets or require several data entries such as testing that needs a username and password, filling up the forms with a multiple data variation. Let’s look at some potential examples
- You want to test different roles with different permissions. In one of my healthcare projects, I had to test around 20 roles and each role has its own set of permissions. Imagine manually logging in as each role and testing its permissions. Also, imagine running these tests as part of smoke testing which happens frequently. So, automating these tests is ideal.
- In another scenario, I was testing an application that monitors healthcare devices such as CT and MR machines. The application would monitor several parameters maybe 50 of them and based on threshold raise an alert if something is wrong. Example: if hard drive is full raise an alarm. Now imagine testing alert for each parameter. It used to take 2 days to test all combinations however after automation, testing completed in 30 minutes.
2. Test cases with higher complexity:
Test cases requiring a higher level of preparation and setup work should be automated.
Let’s say you are testing CRM (Customer Relationship Management) application and you might want to hit CRM API, but before that, you need to set up authentication, you might need to hit some other APIs in order to finally test the CRM APIs. This might easily take some time and to test several scenarios might take a day or two.
3. Test case with many database updates:
If your test cases involve multiple database entries, it should be a good candidate for automation. Imagine a scenario that you only have one credential to login but want to test different permissions. In one of my projects we were not allowed to have more than one credential, so we changed permissions for the role and logged in with the same credentials. Performed testing. I had to test different roles but with one login credentials. I automated that by writing an automation script where the script would first change permissions, login, and execute the test case. It saved me a lot of time.
4. The test execution rate is high:
Test cases that are executed in every release are suitable candidates to be automated. Smoke or sanity test cases are the best examples for higher execution.
5. Smoke/Critical tests:
Smoke or critical tests are performed for those features and functionalities that are frequently used in the automation process. The smoke test includes critical test cases. Sometimes you want to make sure your production environment is always up and running and to achieve that you automate critical tests and run them every single morning.
6. Tests with several combinations:
Test cases that involve different combinations or configurations are automated to save time and to avoid human errors. Don’t get confused about this with any of the above categories. Let me give you an example; Imagine an application that connects to different hardware and verifies hardware configurations and software configurations installed on it. You would store those expected parameters either in the database or XML file, connect to the device, and compare your stored parameters with the actual parameter values store on the device. This will become a challenge to test manually when you would have to test several devices with different combinations.
7. Graph test cases:
Graphs are used to display data in a pictorial format. Graph testing requires plenty of data manipulations. It also includes different scenarios such as testing with plus and minus values, valid and invalid data, etc. Automation testing with graphical test case not only save time but also help to maintain the accuracy of graphical data.
8. Higher manual execution time:
Sometimes test execution takes a lot of time even when tests are short, not complex in nature, or don’t involve data variations. Those tests can also be automated to save time and avoid repetitive effort.
For example, I was working on a project, and application under test had many interlinked/interdependent modules which means changes in one module might affect functionality in other modes. We had to test all modules by executing all modules tests which sometimes led us to 200 test cases or more and easily take 4 to 5 days. Running those tests in one iteration for 5 days would cost a lot of time and money. So, we automated around all the interdependent tests and were able to run one iteration in just a day which saved us 4 days of time.
Now the world has moved towards automated testing techniques that are not only cost-effective but also save huge time. There are many automated testing techniques are available for testing system applications. Detailed understanding of system applications and test cases techniques helps the tester to choose appropriate techniques for their systems. The success of any test automation depends on identifying and choosing the right test cases for their software products.
Automated testing help to finish the task faster and generate acceptable results. However, there are some test cases they can generate effective results when done manually rather than using automated techniques. So, testers should take the lead, discuss with stakeholders, and come up with a comprehensive plan to identify potential cases for automation.