What is needed to rock the world of mobile testing? Mobile has some interesting factors that fall outside of a traditional software application or web application. There’s varying signal, there’s wifi vs cellular, there are a plethora of devices that don’t necessarily follow the same rules. How can a tester get a handle on this world?
Rick Clymer is stepping us through his journey of the past year and a half. As a part of that journey, they had to come to grips with what kind of app that wanted to build. Does your organization want to build a native app, or do they want to create a Responsive design so that the web app and mobile app are basically the same things? How does your customer actually interact with your application? If we decide we want to test a responsive app that runs on both desktop and mobile, that means we are setting ourselves up for having to support a variety of browsers, as well as phones, tablets, and laptop/desktop systems. A native app removes the need to rely on a particular browser.
Rick ultimately is talking about a structure that Kwo Ding has described as The Mobile Testing Pyramid. Think of the pyramid as being structured like this:
- The bottom of the pyramid focuses on API, developer tools and browser interactions (non-device testing). This is where Developer Tools, Postman, Responsive Client Emulation comes into play.
- The next layer is device simulators and emulators (fake device testing) to give real-life usage examples. There are a variety of emulators that cover most of the devices out there, whether it be Xcode or Android studio or dedicated emulator packages that can be downloaded that cover a variety of devices.
- At the top level, real devices are used to get the full real experience your end user will deal with.
I should note that services like Browserstack allow users to structure tests and interactions on a variety of real devices within the view/approach of an emulator. To that end, the top two layers can be blended a bit, but the focus is still distinct.
Additionally, automation is a big help but remember, automation doesn’t replace a person, it extends the reach of a person. Also, there are options to automate tests at each level of the pyramid. What you choose to use will depend on what your app is meant to do and how it’s meant to do it. Regardless, don’t just automate the tests, make sure that the app work effectively.