How I Select Right Test Scenarios For Automation ?
Testing is manually done.
Testing is not just checking. It is beyond that. It needs proper analysis, strategy, reporting, etc.
But it is sometimes thought as just checking.
Checking is algorithmic.
That is, if some input is provided to system, an output will be provided.
Checking is to make sure that, output is as required.
But, testing is much more than that.
Okay, but that algorithm is much useful.
Particularly when we are re-executing same test cases. Multiple times.
We can use tools to perform those checkings. So it is automated checking.
People call that as automated testing. Hmm..Well…
Now, if we decide that we are going for automation, then a question pops-up.
That is which are the ideal test cases to be automated.
You should keep in mind that, not all test cases can be automated.
So, for the success of your automation, you should select the test cases which are ideal for automation.
Don’t know how to conclude which are the ideal test cases?
You can use my process of picking ideal test cases for automation.
Let’s dive in.
How I Select Test Cases For Automation ?
My process of test case selection is based on prioritization.
The test case with top priority will be automated first.
Also, read how I choose tool for automation ?
So, here is my process:
Frequent and repetitive tests
Repetitive test cases.
I prioritize test cases that are executed frequently or on a regular basis. These tests are ideal candidates for automation. Because they save time and effort in comparison with manual execution.
Testers will be bored by executing same test cases, again and again.
So, these would be best candidates for automation.
Example :
I would automate the login functionality for a web application on priority. Because users frequently log in.
Testers also need to login to continue testing.
Regression test
Test in every release.
I focus on test cases that are part of regression test suite. These tests ensure that new code changes do not break existing functionality.
Automating these tests helps catch regression bugs quickly.
Moreover most of these tests will be executed multiple times.
They would be executed mostly in every release.
Example :
I would automate test cases that verify core functionality like adding products to a shopping cart for an e-commerce application.
This ensure that it does not break after any code change.
Critical business functionality
Critical to test critical functionality.
I identify test cases covering critical and core functionalities.
Automating these test cases can ensure these critical features are consistently tested. And ensure core and critical functionalities are not impacted by new code.
This is done for every release.
Example :
In banking application, I would automate fund transfer feature, as it is a critical operation for the business.
Stable features
This is important.
I automate test cases for features which are relatively stable and less prone to frequent changes. But, automating tests for constantly evolving features can lead to high maintenance overhead.
Example :
I automate test cases for a static content website’s navigation menu since it’s less likely to change frequently.
High risk areas
Reduce the risk.
I Prioritize test cases of high-risk areas of application. These are parts of the application that are more likely to have defects or security vulnerabilities.
Example :
I would automate test cases for the security of user authentication, as security is a high-risk area for many applications.
Data driven tests
Parameterization.
I would automate test cases that involve a wide range of data inputs and scenarios. I parameterize these tests to cover multiple data sets.
It can most likely the data creation scenarios as well.
Example :
I automate test that places an order with various combinations of product data, testing different scenarios.
Performance and load tests
Applying load.
I automate performance and load testing scenarios.
This is to mimic concurrent user loads and analyze system performance under stress.
This is ideal candidate because, we might night 100 people in a team to send 100 requests at the same time !
Example :
I automate a performance test that simulates 1000 concurrent users accessing an e-commerce application’s checkout process.
Additional read: Automation- Step by Step Process
Boundary and edge cases
Edgy cases.
I include test cases that explore boundary conditions and edge cases for automation. These can uncover bugs that might be missed in manual testing.
This again is a kind of parameterization of same test cases with different edge data.
Example :
In a temperature conversion application, I automate a test that validates when input values are at extreme temperatures — too low and too high values.
Compatibility tests
Running on multiple platforms.
I consider to automate the test cases to ensure the application functions as expected on various platforms, such as Windows, macOS, and mobile devices.
Same functionality of an application should be tested in various platforms.
That too multiple times.
Example :
I think of automating test cases to ensure an e-commerce application functions as expected on different browsers-Chrome, Firefox, Safari, and across Windows and macOS platforms.
That is using same set of test cases for execution on multiple browsers/platforms.
Test data preparation
Data creation.
I can automate a test case to create test data. Here I execute the same test case with different data. That is re-suability of scripts
Example :
I automate the process of creating products and sellers on an e-commerce application.
Smoke tests
Build stability.
I consider automating smoke tests that cover the most critical and basic functionality. This set is most frequently executed test set.
By automating this set, I can get quicker ROI.
Example :
Automating a test cases for basic checks like launching the application, logging in, and accessing the home page.
Test case complexity
Simplest first.
I start automation with less complex test cases. Gradually move to more complex ones. This allows my team to gain experience in automation tools and frameworks.
Additionally, that helps in getting the Return On Investment fast.
Complex test case automation in the beginning may de-motivate the team.
Example :
I automate the process of creating products and sellers on an e-commerce application.
Feedback from testers
Pain points of testers.
If there is a different test team and automation team, I would constantly discuss with testers. This is to understand their pain points in test cases.
If they are bored with executing same test cases frequently, I consider them for analysis.
They can be good automation candidates.
Example :
I automate the process of creating products and sellers on an e-commerce application.
Conclusion
Remember that the specific test cases I pickup to automate will depend on application’s functionality, the project’s priorities, and team’s resources. It’s essential to balance between automated and manual testing to ensure comprehensive test coverage and efficient testing processes.
I have explained based on my experience. I think this process worked well for me. I suggest you to follow this process and excel in your automation process.
If you feel this is useful, please share to your friends. Let them grow.
Not subscribed till now? Subscribe to my newsletter. Learn. Grow !
Follow me on Linkedin
That’s all for now !