Shaking Up Software Testing with AI: A Slack Takeover with Tariq King
Thought leaders throughout the software community are taking over the TechWell Hub for a day to introduce themselves, answer questions, and engage in conversations.
Tariq King is the founder and CEO of Selftest IO, a company on a mission to develop the next generation of systems and services with intrinsic self-testing properties. He is also the cofounder of the Artificial Intelligence for Software Testing Association.
@Tariq King presided over our most recent Slack takeover, which led to some insightful discussions.
Using AI to Boost Testing
“Automation and manual testing can compliment one another when testing/investigating systems. Usually for strategy. How can the addition of AI compliment automation and manual testing?” —@Shak
King said there are several ways AI can improve testing, either automated or manual.
“There is some work out there on leveraging ML [machine learning] for predicting which tests to run that could be leveraged both for manual testing and automated test selection and coverage,” he said. “Also, a lot of the advances in image recognition can clearly help with visual testing. [There are also]more stable mechanisms for automated UI testing.”
AI and Test Strategy
“On the subject of AI and self-testing, how do you see it impacting holistic test strategies? Many companies follow the test pyramid as a guideline for a test strategy .... Do you see self-testing changing how companies look at their overall test strategy?” —@JannaLoeffler
“Testing being a holistic activity isn't going to change—not just levels of testing in the pyramid, but all the other dimensions of testing,” King said. “AI and ML-driven strategies, and eventually self-testing, will be powerful because they can be applied multidimensionally.”
This won’t change how companies view their overall testing strategy.
“Once they have it right, the strategy is the same. However, how it’s implemented may be different.”
Self-Testing in Legacy Systems
“It seems like self-testing is only possible in systems designed and developed with it from the beginning or refactored to mate with it, which would probably be just as hard as starting over. Do you see self testing algorithms being designed in central locations by vendors and sold to companies, or do you see it as a strategy or pattern for a company to use in its own software?” —@Nicholas Snogren
King said it is possible to deploy self-testing outside of a system designed from scratch.
“I think that it’s about building observability into the system first, and there are different ways to do that without the design needing to be ground-up,” he said.
King said some good examples of opportunities to enable self-testing are at seams in the application, such as object seams, doubles, mocks, preprocessor seams, or seams in the filesystem.
“At the end of the day, it’s about making the system testable,” he said, and it’s possible to refactor or restructure legacy systems with seams that can enable self-testing capabilities.
The Right Tool for the Problem
King added that with AI and ML, a lot of the behavior is dynamic, so these technologies are helpful for dynamic systems. “But for things that are more static,self-testing isn't the answer,” he said.
We should distinguish what kinds of problems these tools can solve, so we don't rush into a new solution only because it’s exciting—“otherwise, we just take a shiny new tool to every problem.”