Functional test automation framework – intelligent testing with Functionize
Problems with traditional test automation
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.
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 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 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.
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.
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: Natural Language Processing and ML Engine. This is a completely new approach to how to test.
Functionize’s NLP lets you create functional tests directly from test plans written in plain English. Following that, our ML Engine engine models your website, learning how each element of the UI is meant to work. In effect, your test plans explain to ML Engine 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 CreationThe benefits of Functionize
1Write your tests in plain English. NLP accepts both structured and unstructured test plans. Doing automated testing was never so easy.
2Test embedded widgets and complex nested DOMs. ML Engine fingerprints every element in your site, so it can cope with nested DOMs and embedded widgets.
3Tests can self-heal. ML Engine understands how your website should work, so tests simply fix themselves when you make changes.
4Run 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.