Skip to content

Artificial Intelligence in Software Testing? It’s a Smart Move

, | March 12, 2018 | By

by Frederick (PJ) Punzalan – 

“Work smarter, not harder.”

It’s a phrase you’ve heard your entire life. And it’s a philosophy that you’ve likely tried to employ your entire life. In fact, it’s instinctively human nature to seek out the simplest solution to a problem. To find the path of least resistance in accomplishing a goal or completing a task.

It might even be said that our instinctive drive to work smarter has inspired much of the advanced technology we enjoy today. We’ve worked very hard at developing technological solutions that help us work less hard. As a result, many everyday chores can now be accomplished with greater speed and ease than in the past.

There’s Nothing Fake About Artificial Intelligence

AI is playing a huge role in our incessant drive to find better, easier, faster ways of doing things. And with recent updates to the technology, AI is poised to find practical applications in virtually every aspect of life.

There’s nothing new about AI. The concept has existed since before WWII. But recent advancements have seen AI technology applied to many different industry verticals: communication, transportation, manufacturing, and even sports and entertainment.

And as the Harvard Business Review recently noted1, we’re on the cusp of a big boom in businesses tapping into the benefits of AI: “Although it is already in use in thousands of companies around the world, most big opportunities have not yet been tapped. The effects of AI will be magnified in the coming decade, as…virtually every…industry transform(s) their core processes and business models to take advantage of machine learning.”

With the widespread application of AI in virtually every sphere of business, why not apply AI to automation testing?

Can We Really Ask a Machine to Test?

Before we answer that question, let’s identify what we really need to be able to perform automation testing. It really comes down to just three basic necessities:

  1. The manual test case and the test data to be used
  2. The tool to be used in building a stable automation framework
  3. Identification of the web element properties that we can utilize to control the test

As testers, we all know that much time is spent in the creation of test cases. Although very valuable, test case creation is time-consuming depending on the functionality being tested. Wouldn’t it be nice to have a tool that could create the test cases for us? A way to work smarter and faster? That’s the goal of testing automation tools.

One obstacle to achieving that goal is the fact that not all applications are compatible with any single automation tool. Whether the test subject is a desktop app, a web UI, or a mobile app, we need to use the right tool for automating the testing. But assessing the right tool is another time sink; there are many options from which to choose. And the budget impact must also be considered when assessing test automation tools.

Contrary to common opinion, the major time burner in automation is NOT coding. Experienced developers expend the majority of their time in finding the right property to call an object. (Incorrect web element property call-outs also rank as one of the primary causes of automation script failures.)

So let’s go back to our question posed in the subhead above: Can we apply the AI concept in performing automation testing? Can we really ask a machine to test?

As the RCG Global Services team has recently proven, the answer is a resounding YES.

Introducing Smarter Testing with T-BOT

Do a bit of research on AI technology and its application in automation testing, and you might be surprised at what you find. As it turns out there are already many testing tools that utilize AI. In fact, the RCG team has taken up the challenge of working smarter, not harder. The result is our proprietary automated testing AI prototype: T-BOT.

T-BOT harnesses AI with the objective of generating all the must-have items required for automation testing. T-BOT incorporates AI planning methodology for automated test case generation. Our AI prototype also applies a machine-learning algorithm (Q-Learning) in the automated testing of UI robustness, providing a significant advancement in GUI testing automation.

T-BOT has proven to be a fast learner. We’ve already taught it to create simple test cases such as filling out a registration form. We’ve taught it not only to validate if a needed object is available in the tested system but also to return the actual web element property that it has used while running the test. We’ve taught T-BOT to be compatible with a simple Web UI, with MS Word (desktop app), and with I-phone Notes (mobile app). T-BOT has learned to use image recognition in searching for objects, and can then execute the action that it was taught for testing that object.

In sum, T-BOT has proven the concept of using machine learning to help it constantly evolve as a more effective testing solution. With T-BOT, our team has gained significant experience with AI. And most importantly, T-BOT has provided proof-of-concept validation that AI is truly applicable to our work.

Human Testers Aren’t Obsolete…Yet

So now that we have proven that AI in automation testing is possible and practicable, does this mean that we no longer need humans for testing?

The answer is NO. Like a child full of promise and potential, AI must be taught. It must learn from us. It must build its own library of knowledge, and it needs our help in doing so.

But we now know, based upon our experience with T-BOT, that AI offers the potential to permit humans to focus on tasks for which humans are uniquely suited. AI can free-up time that we can use to strive for more efficiency at work. It provides us with the freedom to focus on growing expertise within our profession.

And ultimately, T-BOT provides proof that AI can help every tester to work smarter instead of harder.

Works Cited

1. Harvard Business Review (2017, July 18) Retrieved from https://hbr.org/2017/07/the-business-of-artificial-intelligence