Artificial intelligence and machine learning are more and more popular nowadays. We can find it around us – in offices or houses. AIcrops out in the testing world too.
Functionize is a tool, which uses neural networks to create E2E tests. What are the benefits? The main and crucial one is that tests can learn and self-heal. In case of changes in the application, traditional test code written in Cypress needs updates. The neural network is learning during each run and when finds a discrepancy in the model, it can update or fail the test, if there is an unacceptable difference. There is created a map of element XPath and neighbourhood. In this situation, when the element was changed, the neural network learns and adapts tests to the new page views.
Functionize solves a few problems in tests development. The first of them is not having enough resources, time or engineers. Using the tool, we can omit adding test selectors which are highly recommended and useful when writing tests in Cypress and to integrate with 3-party services like email sender, chats or uploading files. These built-in features like integration with email significantly increase the number of implemented tests and the QA engineer can focus strictly on the quality of the application, not on setting the environment.
On the other hand, why in this case Cypress or Selenium are still used? The answer is in the test maintenance and optimization. Functionize is a “steps recording” type of tool, where you have to do everything step-by-step. There are available page objects which behaviour we can compare to functions, but they wouldn’t iterate by elements or accept arguments. Still, we would have a lot of duplication. In code type, we easily implement a bunch of helpful scripts. These one could be fully parametrized. Functionize is based on project and variables. They can be read and written on test level or the whole suite.
I hope, this short description and comparison with Cypress, would help to choose the best solution for your team to gain the best results in testing.
Architect in action: