Functionize’s AI-powered Testing in the Cloud tests websites visually and functionally, using highly-accurate emulations of Android and other mobile devices, as well as desktop devices, operating systems, browsers, and configurations.
This is a huge win for QA and development teams who need native mobile systems for testing. Using Google’s new CPU virtualization, Functionize now enables QA teams to dramatically reduce costs, time to test and the pain of maintaining a complex device inventory. Instead of fully testing only some releases, Functionize automation lets them test every software change, and test production sites in real-time to ensure an excellent experience for every user, every client.
But until recently, there was a catch. Performant, accurate emulation is compute-costly — virtualizing a mobile device or desktop PC requires hardware acceleration (e.g., Intel VT-X). And hardware-accelerated nested virtualization wasn’t (or at least, didn’t used to be) something you could get from public clouds.
Amazon and others tried to solve the problem by creating ‘device clouds’, a complex setup of real devices, chained to compute clouds that let you drive tests and recover results. But prices for accessing a large device cloud are high and the difficult scripting required adds additional overhead.
Until recently, Functionize solved the problem by deploying emulations on dedicated hardware. But this solution wasn’t massively scalable, nor was it particularly agile. We wanted to use DevOps techniques to quickly provision and deploy tests using huge ranges of emulated devices, on demand.
That was the situation until late last year, when we got a call from Google’s GCE team. Initially, it was an open-ended conversation: as a GCE partner with a growing Google Cloud footprint, they wanted to hear about our experience, and how their services and support were meeting our needs. And they wanted to hear about our ‘wish list,’ to see if there was any way they could further foster our success. (Honestly, we were pretty impressed.)
So we told them: “We want performant, hardware-accelerated nested virtualization!” And we told them why. And we said that we had customers who were asking for this functionality. And they asked us a bunch more questions. And then, a month or so later, they got back in touch and said: “We might have something for you, there.” (And we were even more impressed.)
Around June or July of this year, Google told us it was time to try this new, new thing. And over a couple of days, with the Google team’s help, we ported our dedicated-server emulation framework to virtual machines on GCE. Long story short, it turned out to be everything we’d hoped for: our software stack ran flawlessly, nested inside Google Compute VMs with hardware acceleration enabled. With the help of Cloud Tools, we were swiftly able to extend Functionize — already running on GCE — to provision emulation hosts on demand, and lifecycle-manage them for utilization efficiency.
Our initial customers were delighted. In combination with Functionize’s automated and user-tracking-based test set generation, our new, Google-powered device emulation facility is already shifting the cost and culture around how these orgs test complex, responsive, web-based business applications. Virtualized, dynamically-provisioned, highly-accurate client emulation lets them run full batteries of tests, every time they make a change, and monitor site functionality and appearance in-service, across a plethora of platforms — all less expensively and more quickly than ever before.
Now we’re brimming over with ideas for new ways to exploit the power of GCE (example: we want to virtualize Windows 10 and enable MS Edge testing in the cloud). We’re excited to have been permitted to participate in the alpha test of GCE nested virtualization, and are looking forward to continuing onward with the Beta stage, beginning today. Our congratulations and thanks to Google for their support, and for having so quickly delivered this game-changing capability.