Mobile app testing with Functionize’s intelligent test agent
Mobile testing is critical for many businesses. You may be developing a native app or just want to know that your web application or site works on mobile devices. Either way, you need to do extensive quality testing across a range of mobile platforms. The traditional method for doing this was to manually test on each platform. More recently, platforms like Appium have allowed automated testing of mobile apps similar to that done by Selenium. Here at Functionize, we believe these methods are obsolete. Our intelligent test agent allows you to test any application on any device with no need for scripting or cross-platform modifications.
The problems with legacy mobile app testing
The legacy approach to mobile app testing has a number of major issues.
Let us look at these in detail:
Large device inventories
The traditional approach involves testing your app across multiple platforms. There is a wide range of mobile OSes and platforms (both phone and tablet). So, this can easily result in your needing to maintain an (expensive) inventory of hundreds of mobile devices.
Clunky test automation
Appium-style testing tools for mobile app testing is very simplistic. It shares all the problems of Selenium (slow and complex to create tests, hard to select elements, needs constant maintenance, etc.) But it also has its own issues such as the overuse of Xpath selectors hitting performance.
Slow to perform tests
Manual testing is slow, even with the most efficient test engineers. This makes it unproductive and has a direct impact on your release cycle. As you need to repeat the same test across a dozen or more devices, you start to get mistakes creeping in.
Slow emulation and simulation
While Appium offers the chance to automate your mobile testing, it still requires mobile hardware to run. The alternative is to use device emulators, such as those included in Apple’s Xcode. However, such emulators (and the related simulators) run slowly and are inefficient.
The power of intelligent mobile testing
Functionize leverages a combination of techniques including natural language processing, computer vision, and machine learning. The result is our intelligent test agent (ITA). This can take test plans written in plain English and convert them into fully-functional tests. These tests can then run on any platform (including mobile) without the need for modification. Because it is based on machine learning, the ITA learns how your application UI is meant to work. It can then cope with most UI changes and updates without the need for you to intervene. It is based on two core technologies.
Virtualization is where you emulate a server within a host system. Services like Google Cloud and AWS are built on virtualization. Generally, when we refer to virtualization we actually mean paravirtualization (where you provide access to the underlying hardware via drivers within the host operating system). Virtualization used to be very inefficient, but CPU extensions like Intel VT-X significantly improved performance. However, until recently, it was hard to virtualize mobile operating systems and hardware, particularly within public clouds. It could be done, but it was inefficient, slow, and lacked performance.
Google changed all that when they launched their nested virtualization platform built on Google Compute Engine. Functionize is a key partner of GCE thanks to the Functionize test-cloud. We were instrumental in driving forward this innovative technology. The result is you can now do performant emulation of mobile devices within a virtual server. We use this to accurately emulate both Android and iOS devices, obviating the need to maintain an inventory of physical devices.
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.