Over the last few months we (at TestPlant) have started to see the first “second generation” companies interested in testing HTML5-based mobile apps. By “second generation” I mean companies who have already deployed a test automation tool, fallen out of love with it, and are now looking for another. Why did they fall out of love when it all started so well? The same three reasons keep coming up.
(1) Infeasible to test the application layout
HTML5 is a “declarative” language. So the developer gives vague instructions about how the screen should be laid out and it’s up to the device to work out exactly what that means. The problem is that sometimes the device gets it really wrong (e.g. puts the button off the screen), gets it a little bit wrong (e.g. puts the ‘Exit’ button to the left of the ‘Submit’ button), or does something reasonable just not what you were expecting. Testing this with a code-based tool is huge effort since you have to do bounds checking. The big problem is that each device decides what to do separately. So the Galaxy S4 may put the “Submit” button where you expected it, but the HTC One may put it in a crazy place. This means you have to test every device, and since bounds-checking is specific to the device, this means a lot of cumbersome brittle test scripts.
(2) Lack of cross-platform support
Many people have fallen out of love with their test tool when they tried to move to another mobile platform and discovered that they have to write all their tests again.
(3) Lack of desktop and server support
Most mobile apps are clients for a server-based application, or at least rely on some server components. But most test tools for mobile are mobile-only. This quickly becomes a serious limitation as you want to test scenarios that combine actions on the mobile app with actions on the server.
So many companies are hitting limitations in their current functional test automation tools that they can’t live with. These companies get in touch with us because of eggPlant’s:
- Image-based approach which makes layout testing across a large number of devices easy.
- Cross-platform support which means that one script can cover all OS platforms and device variants.
- Support for all OS platforms from mobile, to desktop, to mainframe.