The Mobile Testing Pyramid


The Mobile Testing Pyramid


Introduction

Mobile testing involves more complexity when you compare it to web UI testing. A few examples of mobile testing challenges:
mobile testing challenges
As you can see, mobile testing not only has to cover the UI aspects, but also the compatibility of hardware, network connectivity, operation system flavors (especially on Android), etc.
When most people start with testing for mobile, they tend to start with getting a few real devices and perform exploratory testing manually. Over time, the number of devices will grow, because actual customer feedback comes in describing that their app does not work properly in certain situations on specific devices. Does this sound familiar?
In order to reach fast feedback and lower amounts of the manual testing, a better usage of available tools is necessary.

Mobile Test Pyramid

Based on my personal mobile testing experience, I came up with the mobile pyramid strategy. Of course, it was inspired by the test pyramid of Mike Cohn ('Succeeding with Agile', 2009). But this doesn't quite cover the detail that is needed for a good mobile testing strategy.
The mobile test pyramid has 3 levels:
  • Real devices
  • Mobile simulators & emulators
  • Desktop browsers (using mobile simulation)
mobile test pyramid
Identical to the generic test pyramid, the broader the layer in the pyramid, the more tests you should have which cover a wider range of complexity.
Here are the focus areas for each layer, along with their pros and cons as I see them.
Desktop browsers: mobile testing on desktop browsers
Focus areaDescription
Functional system testingIsolated browser tests performing full functional validations
Responsive designResizing browsers and toggling user agents
Cross-browserUse equivalent desktop browsers
Overall visual layoutNo extensive visual checks because the rendering is different than devices

Pros

  • Fast execution: Matter of milliseconds to launch a browser, also headless execution is possible.
  • Scalable: Easily set up 10+ browser instances per machine.
  • Cross platform: Ability to use browsers on different operating systems.

Cons

  • Mobile simulation uses the desktop browser engine: Mobile simulation in desktop browsers is still using the desktop browser.
  • No native integration: No native keyboards, incoming calls, etc.
  • Just not a device... Incredibly fast, but still not a real device.
Mobile simulators/emulators: closer to the actual mobile experience...
NOTE: Only applicable for iOS and Android.
Focus areaDescription
Functional end-user flowsClick paths throughout the application
Native API integrationGPS injection, file attachments, incoming calls etc.
Visuals (vanilla only)Use equivalent desktop browsers
Overall visual layoutEmulators are limited to vanilla versions
Touch interactionsTouch interactions such as swipe and tap comes closer to the user experience of a device than browser emulation

Pros

  • Easy to set up: Simulators/emulators are easy to set up, just download, install, and run.
  • Scalable: Virtualization means scalable and also running in parallel on one machine.
  • Native API integration: Ability to test native APIs such as incoming calls and GPS injection.
  • Simulators or Intel-based emulators are fast: Simulators are fast, because they only have to simulate the software part. Emulators based on the Intel architecture are fast.
  • Debugging possibilities: Easy to debug simulator/emulators, already hooked up to the machine to access logs.

Cons

  • Vanilla versions only: Manufacturer’s skins are available, but the device behavior is still based on what comes stock.
  • No real resource usage: CPU/memory usage of machine in case of simulators. Emulators try to simulate the hardware.
  • No real interoperability: Connectivity with NFC, Bluetooth, network connections.
  • Slow ARM-based emulators: Emulators based on the ARM architecture are slow, which is the main architecture for Android devices.
  • Inaccurate color display in light/dark: Contrast/brightness inaccurate in light/dark environment.
Real devices: the real thing...
Focus areaDescription
UsabilityValidating usability such as actual click areas, touch actions and voice over
PerformanceCPU/memory usage, battery, network strengths
Native API integrationInterruption (incoming calls, push notifications), resource fighting (camera, GPS), NFC, Bluetooth
VisualsFocus on devices which are not available as simulators/emulators
Manufacturer’s sauceReal OS from manufacturers, e.g. Samsung's TouchWiz and built-in browsers

Pros

  • Native APIs in real conditions: Ability to test native APIs not only with injections for automation, but also actual NFC touch for example.
  • Can be faster than emulators: Some real devices are just faster than emulators due to the simulation of hardware, especially compared to the ARM-based emulators.
  • Just the real thing... Actual network conditions, battery/CPU/memory usage, manufacturer’s secret sauce on top of the OS.

Cons

  • Costs: Real devices come with a price, usually you pay per device/cradle.
  • New device means procurement: A new device is usually not available on-the-fly, even with cloud solutions. E.g. when the new iPhone comes out, it's not available immediately to procure. In the meantime, the iOS simulator would already be available.
  • Development iOS build required for automation: iOS apps need to be signed with Development Distribution Certificate and Provisioning Profile for automation.

Conclusion

There are loads of trade-offs when it comes to mobile testing. But by learning to use all layers of the mobile testing pyramid to your advantage (leveraging desktop browsers, mobile simulators/emulators, and real devices together) you can gain the fast feedback that is required in modern CI/CD environments. It's just a matter of focusing on the right things in each layer for your context.



Cheers,
Naveen AutomationLabs

15 comments:

  1. Hi Naveen,


    Your posts and videos are amazingly awesome. Can you please cover how to do responsive testing with the selenium.

    It will be really helpful. Thanks in advance

    ReplyDelete
  2. I would like to say that this blog really convinced me to do it! Thanks, very good post. The Sims Mobile Hack

    ReplyDelete
  3. I’m going to read this. I’ll be sure to come back. thanks for sharing. and also This article gives the light in which we can observe the reality. this is very nice one and gives indepth information. thanks for this nice article... unlockmobiledevice

    ReplyDelete
  4. 3 Mobile phone deals are considered as the best way to buy high-end or other handsets. Under the exciting deals the users are viable to avail various gifts as well as lucrative services.

    ReplyDelete
  5. These are not the only good blog posts – there were a lot of really great posts written. We just singled these out to give everyone a sense of our expectations
    Well written. I think you have a great blog. I just like the valuable info you provide for your articles. Keep blogging. A good blog always comes-up with new and exciting information and while reading I have feel that this blog is really have all those quality that qualify a blog to be a good one.

    ReplyDelete
  6. Hi Naveen.. your tutorials are awesome.. can you post some on mobile automation

    ReplyDelete
  7. Hello,

    Your vast knowledge on tools & technologies is really awesome. Most importantly your way of imparting that knowledge.
    Can you start lessons on Mobile testing Automation - especially Appium tool?
    Thanks & Regards

    ReplyDelete
  8. Good work Dude !!...This blogs gives basic testing information... very useful for freshers(learner)..." I just wondering if you could show some insight on the difference between test scenario and test cases based on above test ideas.

    Selenium Automation testing

    ReplyDelete
  9. I have read all the comments and suggestions posted by the visitors for this article are very fine,We will wait for your next article so only.Thanks! Mi mobile phones

    ReplyDelete
  10. However, while scaling a business to the extent of the greatest online retailers may not be likely, utilizing the equivalent inventive armada the board devices unquestionably is.meilleur gps

    ReplyDelete
  11. APK Editor Pro Free Download from here apk editor

    ReplyDelete
  12. Great knowledge, do anyone mind merely reference back to it alamat vidio bokep

    ReplyDelete
  13. I think this is an informative post and it is very useful and knowledgeable. therefore, I would like to thank you for the efforts you have made in writing this article. impactresearch.org

    ReplyDelete

Featured Post

Advanced Selenium Webdriver Interview Questions and Answers in Java

Advanced Selenium Webdriver Interview Questions and Answers in Java Selenium WebDriver - QA Here is the list of Selenium Inte...