“Start now to reach for your movie scheduled in the next one hour as there is heavy traffic in the usual best route”. “2 days remaining for your journey to begin”. “Please be prepared to receive showers on your way to work”. “We have customized your news feed based on your past interests!”. “There is a suggested action item for you in this email. How do you like to respond?” What would we do without alerts like these that help make our life simple in this busy and hectic world! How do they happen though? Simple! They’re just a replication of the human intelligence and thought process, and help machines “learn” the way humans think.
Artificial Intelligence and Machine Learning are buzzwords that are making waves in the industry. It is interesting to note that as technology evolves and things are moving towards AI/ML, there is an equal amount of thought going into testing related to ‘Intelligent Testing’. So, what is the need for this sudden “intelligence” in testing that we have not been talking about so far?
As we embrace AI/ML-based technology to cater to the fast-growing customer demand, it is important to know the future of software testing and what is in store for a test engineer especially due to the fact that we offer testing as a service to our customers.
There are concerns that soon automated robots will replace humans in software testing! This fear is unwarranted as I strongly believe that there are certain things that can be done only by humans. The need of the hour in software testing is those very human differentiators.
Let’s talk about how to address this need of Creative Intelligence/Human Learning in testing software developed by Artificial Intelligence/Machine Learning. The recent World Quality Report – Key Takeaways and Trends talk about the emerging trends in software testing. The report states that “intelligent testing coupled with automation” is where we are headed towards.
There are certain key focus areas that emphasize on human intervention even in the world of test automation. Terms like ‘cognitive machine learning’ and ‘predictive test analysis’ if put in a simpler way – for instance, while automation itself can be automated, what needs to be automated and when it has to be done – has to be decided by humans to get the full efficiency of the automated test suite.
There are two important facets of testing that would benefit from human intelligence and cannot be entirely automated with AI/ML:
■ Tests that are developed going against the rules/breaking stereotypes/out-of-the box creating thinking and specially customized for a specific need, that would be hard for a bot to visualize. For example, think about why GPS fails to show the right directions on Indian roads more often than on roads internationally? Obviously, the point here has to do with predictable the system is! While it is always easier to automate repetitive, predictable test scenarios, manual intervention is needed to test scenarios like “what happens if there is a sudden breakdown in the machinery?”. In the Communications industry, it would be a sudden outage caused by removing the power cable at the most unexpected time.
■ Debugging of critical software defects that are not trivial and require deeper understanding of the customer requirement and the software implementation. For instance, if you have an automated script to capture certain key words in a given debug log to be reported as error messages, unless there is a human intervention to validate this, there are 100% chances that the machine would have few false positive cases reported.
A better way to visualise this is that in the software testing life cycle, while AI/ML can pervade into many areas, there are few areas which still require human testing as shown in the picture below.
Similarly, there are a few areas of testing where there is an absolute need for human testing as shown in the picture below:
Appdiff’s Jason Arbon has explained how we can leverage AI to help better (and more easily) test applications: “AI isn’t here to replace human testers. We continue to see the narrative that ‘testing is dead,’ but over and over again, data is coming out that shows the continued need for manual testers. Instead of looking at how we can move on from human testers, now’s the time to understand how automation and AI, in conjunction with real people, can make testing more powerful than ever.”
So, while we prepare to embrace AI/ML in software development, software testers should stay ahead of the bots by complementing them and not confronting them. After all, it is human neural networks that invented machine neural networks!