The long wave of Artificial Intelligence hits Testing Automation too
In the DevOps era, the discussion about the integration between the world of Dev (eloper) and Op (eration) s is often animated. The emphasis is almost always on automating builds, unit tests, releases. But in a context where development cycles become shorter and shorter, where releases are directly released in production, manual testing risks becoming a bottleneck.
On the other hand, the automation of the tests, which prescribes both the development and release of scripts, should be rightfully included in the cycle. But since it’s not about new functionalities, it is taken for granted, often ending up outside the plans. The result is that it becomes increasingly difficult to keep automation scripts aligned with application releases, and an unaligned test is an unusable test. Furthermore, we should not forget that all the phases of the SDLC (Software Development Life Cycle) should be tested, therefore it follows that whenever we talk about Continuous Development and Continuous Integration, we should introduce the concept of Continuous Testing.
The message here is that at the foundation of the concept of testing automation lies a problem: in order to create
But if the DevOps has the mission to integrate the whole development cycle, how is it possible that testing has become another phase of development? The reason lies in the fact that the frameworks and tools used (first of all Selenium ), do not have any kind of intelligence within them. It follows that, although they are very effective at automating, they are only good for a developer.
The “Third Wave”: that is, Artificial Intelligence and Continuous Testing
The introduction of Machine Learning in automated testing introduces some crucial points:
- Automatic test generation: the basic principle is not different from “recording” with Selenium, with the difference that in this case, the tool generates executable functional test steps. Some tools such as Functionize also make it possible to generate tests that can be run from test books written in natural language, using NLP technology.
- Self-Healing: one of the most innovative concepts of these technologies is the ability to autonomously adapt the tests to the interface changes. In the most difficult cases (eg: changing both the position and the label of a button) allow the user to change the behavior interactively, sometimes even with a simple click
- No scripting: the test is generated in a transparent way, without the need to develop any code.
- Cross-browser and cross-device: the latest generation tools allow us to create tests running on different platforms, which is now a must-have requirement.
- Zero or minimal maintenance: thanks to automatic generation and self-healing, it becomes possible to create tests that keep up with the developments and releases without bloodshed.
The main players
Functionize presents itself as the “first completely autonomous testing platform”. The most interesting feature is the autonomous creation of tests starting from a test list written in natural language, through NLP. The tests are created with a lot of clickable screenshots, the platform “adapts” to the application through Machine Learning algorithms and becomes more robust to layout changes as the number of executions grows. You can see a presentation of the most interesting features here below.
The main feature they claim is “Visual Validation Testing”, which is the ability to validate entire layouts by emulating human visual processes, without any need for calibration or configuration. The system uses adaptive AI algorithms that would be able to identify potential GUI bugs within certain confidence levels, without explicitly calling the code elements.
“Test automation @ DevOps speed” is Tricentis’ motto, in which Tosca stands out for its testing automation and Flood for performance testing.