These are the top five things you should remember about software testing and quality assurance when it comes to test automation.
A super quick background
I used to think that test automation is a some magical capability and 100% automation meant :
Very soon did I realised, not only that I was mistaken but also wrong to a larger extent….
Flash-back: A decade ago somewhere around 2011. When software used to be released annually also called as waterfall model. ( in some companies it still exists, depending on the nature of project such as long term Gov projects ).
I was a junior test engineer back then. And I always thought that one day I will get the chance, a golden chance to learn testing tools with hands on. And to change the world of software testing.
Which meant: testing with tool that costs to the company. And only handful of senior engineers used to do test automation ( HP QTP) or performance testing (Load Runner).
Well I did it. I mean not change the world kind of thing but in next few years I got hands on with :
1\. Web using selenium Java 2\. Mobile using Appium 3\. REST API with Hibernate, newman in CI.. 4\. Performance testing with LR/K6
and many more….
It was exciting and I really enjoyed the learning phase ( I still do...)
But with my experience I realised many things that I understood early were proving me wrong.
Handful of companies can run test automation in production. Few due to limitation of test data and some due to legal and compliance . So you usually do testing manually.
For example if you are a part of banking project, you login to bank account ( web/app ) using your own account.
# Do you run automation in such cases ? NO
..the average adult human brain has the ability to store the equivalent of 2.5 million gigabytes digital memory. Reference this article
While that is a Hard-disk comparison. If we talk about memorising power or computing, its much higher. At least much higher than test automation currently available. AI + Test automation would be an interesting future article.
I guess that argument is enough to cover the fact.
# Automation Testing is a rare and hard skill. ? NO
May be yes only when it comes to re-testing. Regression testing.
But NO when:
- We are building test automation framework itself
- We are maintaining test frameworks
- When test environments are not stable
- When test data is a root issue.
- When your projects needs more exploratory testing of new features.
# Automation makes your job easy ..easily ? NO
This is a big one !
Usually such misconceptions surfaces from management expectation. Where everything is celebrated on percentage (%) of coverage rather than quality of coverage.
While having more and more automation is not a bad idea, But what if we have 100% automation and that covers zero (0) negative scenarios.
Once again unscripted testing such as exploratory testing is a best tool. With that you have the independence to test fast and get results on negative scenarios.
# More automation means less bugs NO
This will never happen and ideally this should not happen.
Over the time test first approach such as #TDD ( Test driven development) approach where:
- You decide on a test ( business scenario)
- Write a test first , which fails right away
- Then you write development code to achieve it and mark as PASS
- Again you pick another test and develop..
Another great example is #accessibility testing of web and mobile apps.
Successful teams maintain the balance of trusted manual testers and automation testers. But remember manual testing has its own charm and why not , its a critical thinking skill.
# Manual testing is a dead skill, Test automation holds the future ? NO
Key takeaway :
Automation is a compliment to manual testing not a substitution !