Svetlana Grinevich has extensive management experience focusing on quality control and software testing. She received her master’s degree in Computer Programming from the University of Belarus, and today she has devoted herself to machine learning frameworks and IoT platforms. She talked about using machine learning to speed up testing, moving away from cumbersome test scripts, and building a natural language architecture test.
Large and small companies are constantly looking for ways to reduce costs and improve test reliability. As a result, testers often turn to AI and machine learning.
Let’s look at some of the major benefits of adding AI to the software testing process.
Software Testing Challenges
- Automated testing is based on the DOM structure, causing traditional test scripts to break anytime the user interface changes.
- It takes a lot of effort to cover the huge number of layers that need to be tested.
Functional testing is a set of scenarios. And each scenario is a set of pages that are a set of elements. We will create two phases on our platform. First phase: detection of elements on the page. Second phase: action with these elements. For the first one, we will make a discovery model training with a convolutional neural network, and for the second, we will use a deep learning model with natural language processing.
Training a Discovery Model with a Convolutional Neural Network (CNN)
To start building this model, you must:
- Work with Python;
- Install Tensorflow (a free and open-source software library for machine learning and AI);
- Install ImageAI (additional library, to simplify the code);
- Use Pillow and PyTesseract to make element discovery easier.
Step-by-step model building:
- Creation of a dataset with subsequent training.
- Creating a model to use to analyze the data.
Building a Deep Learning Model with Natural Language Processing (NLP)
It is now a trendy NLP machine learning model. It is used in various areas such as Botchat, etc.
To build an NLP model, you will need to install the Spacy library, the en_core_web_sm trained pipeline for the English language and the Pandas software library.
To build a deep learning model, you need to:
- Collect BDD steps;
- Classify the steps;
- Translate the bdd steps into selenium actions.
BDD steps are a collection of really different BDD steps found in any storage.
Applied methods of natural language processing:
- lemmatization – the meaning of words based on the dictionary;
- stemming – extracting “rot” from words;
- named entity recognition;
- stop words – repeated words that do not help the context;
- dependency parsing;
- word and sentence similarity and tokenization.