Automated testing methods
There are certain cases where automation testing is beneficial and can actually reduce efforts and increase productivity. Let us have an in-depth look, having earlier written about manual software testing methods.
1. Regression Testing – Regression cases are mostly repetitive and we can automate them once and execute in a timely manner.
2. Load Testing – Automation is very much useful in the case of load testing. Load testing identifies the bottlenecks in the system under various workloads and checks how the system reacts when the load is gradually increased, which can be achieved by automation.
3. Performance Testing – Performance Testing is defined as a type of software testing used to ensure whether software applications perform well under their expected workload. Automation is very useful in this type of testing.
Apart from that, the test cases which are repetitive can be automated. Keeping in mind the above points, you can decide on what, how, and why of automation.
What, Why, and how of automation – To maintain a balance between manual and automation can be very tricky at times. I have seen many aggressive managers pushing to automate everything. But is this the best approach?
Before starting to automate, you need to answer these three questions-
1) What needs to be automated?
Let’s first think of what exactly needs to be automated. Hereby ‘Exactly’, I mean what part of the ‘requirement’/ ‘feature’/ ‘application’ is a candidate looking for automation. Often the application which is going to be automated is termed as AUT (Application Under Test ).
It is quite possible that a part of a feature can be automated and the rest be tested manually. This requires deep dive into the feature, its test cases, and the effort which will be required. Sometimes knowing how a developer is going to implement that feature plays a vital role in deciding if it can be automated and to what extent.
2) Why automation?
This is very important. Why do you need to automate? Is it because it reduces effort and increases efficiency? Or is it because it would benefit in the long run? Or is it just conventional? During my tenure as QA, I found some managers who aggressively wanted everything to be automated without analyzing that it might increase effort and reap no benefits.
You might end up asking a few questions to yourself:
a. Is it a one-time requirement and never coming in the future? we probably don’t need to automate then.
b. Is the automation solution complex? Also, you need to understand the complexity of an application under test. If automating it leads to building a parallel application itself, there is no point in automation.
But there can be a case where the solution is complex but the feature or AUT keeps on changing and development is planned for the long term, then you may find automation beneficial in the long run.
c. Time constraint – There might be a time constraint in delivery. At that time the manager role is very crucial in deciding to invest in automation or go for manual.
d. Resources and skills of the testing team – This is also an important factor. How many automation engineers are available in the testing team to leverage their bandwidth for AUT? Mostly, for small teams, this is the deciding factor to go for automation.
3) How to automate?
This refers to find the solution. The why and how are co-related. So you might find answering how and get answered for why and vice-versa.HOW is to decide how we are going to automate AUT. Do not confuse with AUT or feature as this stands for both if you are going to automate an entire application or a small feature. Sometimes for a small application, you need not require a full-fledged automation framework.