If you read my last blog, you might remember that I mentioned that some people thought that Agile had killed QA. Well, here we are again. In this blog, we are talking about the possible demise of another aspect of traditional testing. This time the aggressors are Machine Learning and Artificial Intelligence. The victim is manual testing. Will Machine Learning and AI replace manual testers? The short answer is no. The longer answer is heck, no! My money is on manual testers continuing to add value no matter what Machine Learning and AI bring to the table. Hopefully, by the end of this blog you will agree.
What is Machine Learning (ML) and Artificial Intelligence (AI)?
As recently as 4 years ago, if you asked someone what they knew about AI, the answer was probably based on something that they had seen in a movie about robots or drones. Many people, even today, fear that those same robots will replace human workers. In 2020, you would be hard-pressed to find someone that hasn’t interacted with something that uses AI. Google Maps, Ride sharing Applications and Chatbots are just three examples of popular products that use AI. Most people use some form of AI in their daily life.
Simply put, Artificial Intelligence is an area of computer science which emphasizes the creation of intelligent machines that can work and react like humans. Machine Learning is a subset of AI that evolved from the study of pattern recognition and computational learning theory in AI. It is a field of study that gives computers the ability to learn without being explicitly programmed.
How are ML and AI used in Testing?
ML and AI are used in Automated Testing. For a helpful video, you can check out Zenergy’s own David Dang talking about it here. If you have a large automation suite which runs with a lot of failures, you can look at your analytics and identify patterns and see what actions are actually being done with the data. This allows you to remove low impact tests from the automation suite, thereby making it more efficient.
Machine learning is the process of going through the data and finding the patterns. Artificial Intelligence is how the machine is taught to recognize the patterns. Using machine learning and AI will save time by focusing on the most important tests for your users. That will give you an automation suite that is hitting the high impact areas, as well as decreasing maintenance time for your automation suite, with the removal of lower impact tests. There is no argument that machine learning and AI may improve the automation process.
How Does the Use of ML and AI Impact Manual Testing?
That is just it, it doesn’t. If automated testing hasn’t made manual testing obsolete, then the integration of AI within Automated Testing will not either. As discussed above, AI will improve automation. However, even with improved automation, there are still areas of testing that will always need to be manually tested. A human will always have to test applications that humans use. It isn’t realistic to automate all testing. A perfect example is User Interface testing. Here are some examples of UI Testing that will always require manual testing:
- Usability Testing – Testing needs to be done to ensure that an application is user-friendly. Manual testing is the only way to test that a user can easily navigate through an application. Visual cues are best left to an actual person to test, since it is an actual person that will be using the application. No matter how far AI can take us, it can’t ensure a positive customer experience, like a human can.
- Exploratory – This type of testing also needs to be done by a person. In this type of testing, creativity and instinct will replace requirements and test cases.
- Ad hoc Testing – For this quick, on the spot testing there needs to be human interaction. Again, since there are no test cases or requirements, there would be no way to automate it. Further, it may not warrant automation.
- UI’s with frequent small changes – If a UI constantly has numerous small changes, it may not be worth the effort to continuously update the code in the automated tests. It may be more efficient to manually test those changes.
Any system that is used by humans should always have some level of direct human involvement in testingand I’m not certain most organizations are at a point where they would be willing to have all testing done by another program or machine without any human interaction prior to release to the user base. There are nuances to the human/software interaction that Machine Learning and Artificial Intelligence may not recognize and can’t address, but humans will notice right away. In addition, humans have intuition and judgment, which machines do not. There is no away to account for that in our AI/ML or automation. Automation and especially automation that uses AI will complement manual testing but will never replace it. The human experience is really too unique for a machine to emulate in any way. While AI and machine learning may be able to identify interesting paths and processes to test, human interaction with the system under test will always need to be a step in the overall testing approach because a manual tester better understands the big picture of any application, and not just the logic behind snippets of code. Manual testing will always be integral to ensuring quality in an application, no matter how much testing can be automated, even with AI. I am confident that machine learning and AI will not replace manual testers.