Why the Human Touch Is Still Crucial in Automated Software Testing
Learn why automation still needs a human element, especially in software testing.
Join the DZone community and get the full member experience.Join For Free
It’s Friday night and I’m running late. I need to pick up some groceries and a bottle of wine on my way home. Like most of my trips to the supermarket, I want to be in and out as quickly as possible. The fact that I’m running late only heightens the need for a swift getaway.
When I arrive at the supermarket, it’s busy. Of course, it is! People are rushing around the aisles desperately trying to find what they need. I make good time finding the groceries and pick a nice bottle of red wine to go with our dinner. Time for my exit.
The checkouts look like a theme park, with queues everywhere. So I make my way to the self-checkouts where the queue is long but moving fast. Nearly there.
I arrive at the self-checkout and there are no bags. No big deal, I can carry my shopping. Beep, beep, “Unexpected item in bagging area”. A few frustrating minutes pass before I get the attention of an assistant, who fixes the problem. Beep, beep, “Please wait for assistance”. The wine. Yes, I look over 25 (unfortunately), but I need the assistant again. Perhaps automation needs a human touch?
How Automation Is Changing the World
Automation is increasing at a rapid pace, not only in QA testing but in daily life. From Alexa to Siri, the technology we use is becoming more automated to make our lives easier.
Regardless of the product or service, the key advantages of automation can be summed up by one or all of the following:
- Increased output
- Increased speed
- Improved quality
- Reduced costs
But how does automation translate to the world of software testing?
What Is Automated QA Testing?
Automated QA testing is when software is used to execute scripted test cases on a software application. For example, your application might have a registration form with a multiple-choice question. A script could automate each answer to ensure it works. When the outcomes don’t match the script, they are flagged for review. In this case, it’s a huge time saver versus a human tester.
The Limitations of Automated Testing
As it stands, 100% automated testing is very difficult. By nature, automated tests are limited to the test cases that are written for them. They won't test any bugs outside of this scope.
A self-checkout machine in a supermarket can be a time saver. But when it needs a human to step in and make a decision for it, e.g. whether a customer is over the legal drinking age, it loses one of its main benefits. Saving time.
Added to this, the implementation and ongoing maintenance of automation require a large investment of time and money.
The Benefits of a Fresh Pair of Eyes
Remember your school days? After checking an essay multiple times, why did a friend spot a glaring mistake that you didn't?
Your friend had no emotional attachment to the essay. By writing it, you did. This created an involuntary unwillingness to make changes or see errors. Your friend brought a different perspective, which often brings better results.
A common misconception of automation is that it removes the human element completely. But who writes the test cases or scripts? Automated testing needs human input to function properly. At least until the machines take over permanently!
In-house developers and testers don't always create the best test cases. Even more so on less common areas of an application that are harder to use automated testing with. For example, having a tester personally interact with an application in the actual geographic location you want to test in.
The same goes for test cases that are run multiple times. New bugs can be introduced into your application after each product enhancement or fix. Test cases in automation become ineffective without ongoing human input.
Why Is the Human Touch Still Crucial in QA?
Manual testers inspire creativity and complement the testing phase by giving developers new ideas. They serve as a fresh pair of eyes when developers need quick, critical input. Manual testing provides a much-needed sanity check on real mobile devices that vary so widely.
Exploratory testing adds a different perspective to the testing process. This is where testers explore an application to make sure it is working as it should. They use their own experience to find real-world bugs from the end-user perspective. By testing the application like this, testers are more likely to find bugs that customers might encounter.
Finding unique bugs is a skill that requires a certain mindset and motivation. Professional testers want to find bugs; it’s what they’re good at. Crowdsourced testers have two key focuses with each test cycle. Quality and time. They have the added motivation of being paid per bug they find but they are also held accountable for the quality of the bug reports they deliver.
3 Tips for Better QA Testing in an Automated World
1. Humans Are Still Needed
As our world becomes more automated, so does testing. Yet, as elsewhere in life, in automated testing, you only get out what you put in. If your testing is becoming more automated, don’t forget it still needs human input to be successful.
2. You Need Outsiders
Developers and in-house testers are so invested in the application that sometimes bugs get missed. This is no one's fault - it’s inevitable. Testing requires an outsider who has little or no emotional attachment to the application to offer a fresh pair of eyes. External testers can provide a much-needed sanity check.
3. Try Crowdsourced Testing
Utilizing a large, diverse community of professional testers can complement your in-house testing. Automation is a great time saver for certain testing but finding the subtle, unique bugs is what crowdsourced testing does best. Professional testers explore the application as they see fit from a user perspective. The larger test coverage means more high-priority bugs are found with a fast turnaround of 48 hours or even under an hour for test case execution.
Automated testing is an amazing innovation that continues to improve QA testing. It is certainly a time saver versus manual testing when used in the right situations. As it stands, it needs ongoing human intervention to write test cases. To yield the best results, test cases need to be an ongoing collaboration between developers and testers (in-house and external).
In the wider context of QA testing, it’s very difficult to rely on 100% automated testing. Manual testing is better at finding end-user bugs that automation, via predefined test cases, often miss.
Whether your testing and releases rely on speed or quality, a mix of automated testing and manual testing will, for now, create the outcome you want — a better-quality application.
Published at DZone with permission of Nicholas Roberts. See the original article here.
Opinions expressed by DZone contributors are their own.