AI IN SOFTWARE TESTING. WHO IS WINNING?

Arine Baghdasaryan
Fintegro Company Inc
5 min readJul 17, 2019

All modern technologies actively absorb the maximum number of current areas of human activity, and, of course, they somehow affect such a process as software testing.

With the upcoming technical revolutions, it is possible to assign some of our functional responsibilities (making a test plan, the procedure of validating software components) to artificial intelligence technologies.

Instead of manually creating automated tests, modern and future technologies will independently create and implement tests and continuously improve their interaction with testers.

Such mechanization of the entire test coverage means that any web development team will soon be free to have tools for deploying a virtual group of “testers” who are notable for higher speed and technical coverage than even the most experienced and highly qualified QA departments. BUT! It would be a mistake to use it without understanding it’s limitations.

Automated testing began with the advent of tools like WinRunner, Silk Test, and QTP. After them appeared Selenium, which has become one of the most used at the moment. A whole community and various auxiliary plug-ins for working with it were formed around Selenium. Various approaches and etiquette rules began to take shape for working with Selenium. However, this did not greatly save testers from various problems and incomprehensible test behavior.

The logical result was the emergence of tools based on the use of artificial intelligence, to which this article will be devoted.

Which AI Tools are now mostly used?

Applitools

AppliTools allows you to identify errors in the user interface. Using machine learning, artificial intelligence, and complex algorithms, you can easily find bugs in the UI — interface. Applitools allows you to flexibly customize tests for various display formats (mobile view, full-fledged site, etc.). If you have animated elements on the page, then you will be able to train the system so that it gets used to them.

Sauce Labs

Sauce Labs — one of the first who provided the ability to run autotests in the cloud. More than a million autotests are launched every day. Using machine learning and data that is accessed, Sauce Labs is working on an application quality analysis tool.

Testim

Testim uses machine learning to speed up and simplify autotest support. Testim focuses on reducing the number of flaky tests and time to maintain autotests in working condition, which for many is a big problem. One of Testim’s goals is to reduce the threshold for entering automated testing and to enable people with no previous experience to create automated tests.

Saltights

Sealights is a cloud platform that is designed to simplify testing and save time on it. Sealights using machine learning analyzes the source code of the application and tests for it, which allows the QA team to understand what should be tested and what remains unchanged. By tests are meant all kinds from functional to performance, you can choose the necessary types.. The analyzer identifies which files, methods, and lines of code were changed in the latest build and does not allow it to be closed until the changes are tested.

Test.AI

Test.AI allows you to combine artificial intelligence with Appium and Selenium. Tests are written in a simple format that is very similar to Gherkin. Something coding is not required and there is no confusion with the locators. AI dynamically detects the application window and items and automatically starts the application check. The tool allows you to catch a change in the element and request verification of changes.

Mabl

Mabl allows you to run functional tests on the application. Tests are capable of self-learning. Like other tools, Mabl allows you to fight flaky tests. It is also possible to dynamically check whether the elements are updated and, if necessary, update the tests. It is also possible to compare run histories to detect any changes in the application.

Restest

ReTest was specially created for functional testers. It allows you to create tests without programming skills. It is possible to record tests, setting asserts and application areas to focus on. Also, the developer promises to get rid of time-consuming support for tests and crashes due to changed locators

All these tools have both advantages and disadvantages:

Advantages:

  • You’ll have better quality and reliability. AI applications can learn continuously and can generate and optimize test cases, prioritize testing and automation, enhance UI testing and reduce tedious analysis tasks.
  • AI can increase the testing coverage without adding extra workload to the testing team for the same price. A good example is Appvance; which “creates 1000’s of regression tests in minutes.”
  • In reality, automation can help you by executing mundane tasks, allowing good testers to examine the results carefully for anomalies that may inform their testing effort. Depending on your situation, it can also help you create scenarios that are not capable of being tested manually.
  • There’s an opportunity to integrate AI with automation, which means crawling sites more naturally rather than following the same script over and over again.
  • AI application can also effectively help in generating and optimizing test cases, prioritizing testing and automation, enhancing UI testing and reducing tedious analysis tasks.
  • Continuous integration environment (!)

Disadvantages and limitations:

  • Its intelligent adaptability will also leave little control for human involvement in making judgment calls to exclude special cases. In some cases, only human and his judgment can solve some critical points
  • Machine learning needs lots of training data, which translates into lots of actual human work
  • The autonomous nature of the system frees up testers to do other things such as explore new technologies, advocate for the customer or line of business, as well as be more influential and strategic
  • There are several technical challenges such as building flexible test automation architecture, a reliable test environment and finding the right skills and experience. AI should be able to offer an accurate analysis of risk scenarios and quick remedial solutions.

The most important thing is to find a balance between AI Testing and “regular” Testing. It will still be a long time before machine-learning technology takes over wholly as it lacks intuition. There’s a gut instinct that can’t be duplicated via algorithms, making humans an important part of the puzzle. Human interaction is still a necessity because of the creativity which introduces in the process of identifying bugs, most testing is repetitive. It is here that AI and automation can come in to make things easier. This can free up testers’ time to focus on the more interesting parts of software testing. By working in harmony with AI in the future, human testers will see the most interesting and valued aspects of testing open up.

And don’t miss a chance to let professionals provide your project with TOP-NOTCH IT Talents. I am sure that Fintegro Company Inc. corresponds to all those tips described above ;)

LinkedIn: https://www.linkedin.com/company/fintegro-company-inc

Twitter: https://twitter.com/fintegro

Facebook: https://www.facebook.com/fintegro

P.S. We are always happy to read your comments and thoughts ;)

--

--

Arine Baghdasaryan
Fintegro Company Inc

Research Specialist at Fintegro Company Inc. Interested in QA, Startups, travelling, books and learning foreign languages ;)