Problems with traditional test automation

Selenium problems, traditional functional testing

As test engineers well know, traditional test automation is fraught with problems including slow test creation and endless test maintenance. The biggest issue is test maintenance, needed whenever you make any changes to the system under test. For example, with Selenium, test engineers can find themselves spending half their time maintaining existing tests. But they would rather spend time on increasing your testing coverage.

Slow Test Creation with Selenium
Test Maintenance

Legacy test automation frameworks are extremely brittle. Whenever you update your UI you risk breaking all your Selenium-based tests. Even a simple CSS change can cause all the selectors on a page to change, making it hard for the script to select the right elements.

When a script fails to find an element at all it fails instantly. However, sometimes it will actually select the wrong element. This causes you major problems as it leads to failures that don’t show up until many steps later. In the worst cases, it could invalidate the test altogether. In both cases, you have to manually fix the test script, tracking back to find the actual cause of the error.

Hidden DOM selectors
Hidden Selectors

Modern websites frequently import content from 3rd parties. Things such as a PayPal Buy Now button, or a newsletter sign up. These are embedded inside a set of nested DOMs (Domain Object Models), the logical containers within your application’s UI. Third party widgets exist inside their own embedded DOM. Sometimes, DOMs can be nested many layers deep.

Unfortunately, legacy scripts can only reliably locate elements within their own DOM. Accessing embedded objects requires complex XPath queries. And if the embedded object changes at all that breaks the test.

Slow Manual Test Maintenance
Slow to create test scriptss

Legacy test scripting is not user-friendly. Test scripts are hard to write, requiring skilled Test Automation Engineers or Developers in Test to get them right. Even a simple test script takes hours to write and debug.

Test recorders can simplify this process, but the scripts they produce are more brittle. Once you record the script you still have to debug it manually.

Cross-browser Test Failure
Hard to adapt for cross-browser

All your UI tests need to work cross-browser and cross-platform. Adapting legacy scripts is painstaking and slow. Essentially, the script has to be modified or rewritten for every different combination of platform and browser.

It can easily take a team of competent test engineers days to produce just a few legacy scripts that work cross-browser.

AI-powered testing

So, how can you avoid the issues with legacy testing automation frameworks (slow test creation, test maintenance, etc.). The answer is to use an Intelligent Test Agent (ITA). Functionize’s ITA is designed to act as the perfect regression tester: focused, accurate, and tireless, yet still intelligent. It is based on two core technologies: Adaptive Language Processing (ALP™) and Adaptive Event Analysis (AEA™). This is a completely new approach to how to test.

Functionize’s ALP™ lets you create functional tests directly from test plans written in plain English. Following that, our AEA™ engine models your website, learning how each element of the UI is meant to work. In effect, your test plans explain to AEA™ how you expect the site to function. Tests automatically run cross-browser and cross-platform with no need to adapt them. All tests are run in the Functionize Test Cloud, allowing thousands of tests to be completed in parallel. All this means that with Functionize, you can easily automate all your functional testing and can even use it for behavior driven development.

Automated Test Creation

The benefits of Functionize

English is the new testing language
  • Write your tests in plain English. ALP™ accepts both structured and unstructured test plans. Doing automated testing was never so easy.
  • Test embedded widgets and complex nested DOMs. AEA™ fingerprints every element in your site, so it can cope with nested DOMs and embedded widgets.
  • Tests can self-heal. AEA™ understands how your website should work, so tests simply fix themselves when you make changes.
  • Run tests at massive scale. The Functionize Test Cloud gives you infinite testing capacity and is always available. It also allows you to perform realistic load testing from multiple geolocations.

Sign Up Today

Functionize is designed with all levels of testers in mind. We simplify test creation while providing rich features to tune tests for your most complex scenarios. Running in our test cloud gives you elastic scale to handle continuous testing in your CI/CD pipeline or large regression suites. Meanwhile the deep machine learning engine is modeling your applications and dynamically updating your tests as your UI changes; saving you the aggravation of constant maintenance.

For more information, read our blog, follow us @functionize or email us to learn how you can get started today with Functionize Intelligent Testing.

Increase your productivity