Jumbo2010 - Fotolia

How do I tackle machine learning in software testing?

Machine learning is the next big thing, and software testers are just now being asked to tackle this new type of software. Expert Gerie Owen offers on-point advice.

Help! I've been assigned to test software that learns, and I don't know what that means.

Welcome to the world of machine learning in software testing. Machine-learning software takes past data and uses that data to better understand and make decisions in a problem domain. It consists of a series of mathematical algorithms that are able to adjust themselves based on its understanding of that data. It won't produce an exact answer, but it will usually produce one that is close enough to correct for its problem domain.

This type of software usually uses a technology called neural networks, which, to put it in a simple way, mimics the operation of the human brain. There are other technologies, such as genetic algorithms and rules-based systems, but most deep-learning systems are using neural networks.

Machine learning in software testing requires an entirely different approach. You will rarely, if ever, get the same result twice with the same input. Testing these systems requires a deep understanding of the problem domain and the ability to quantify the results you need in that domain. Are your results "good enough?" You have to internalize that a bug is more than just an unexpected output.

For machine learning in software testing, you should also have a high-level understanding of the learning architecture. You don't have to read the code, but you do have to be aware of the architecture of your network and how the algorithms interact with one another. You might have to tell the developers that they have to toss out their approach and start over again. Don't let the highly mathematical nature scare you. Machine learning in software testing is accessible to all testers with an open mind.

The machine-learning revolution is just starting; if you haven't encountered it by now, you likely will in the near future. With machine learning in software testing, you need to be comfortable with being able to measure and quantify your testing and objectively explain your confidence in the results.

Next Steps

It's time to take your test skills to the next level

Is data science in your testing future?

It's time for testers to get to know the business side

Dig Deeper on AI in software testing