Mobile Test Pyramid

Mobile testers need to take a different approach when it comes to Test Automation.

Anyone who is involved in software testing and software Test Automation should know the Test Automation pyramid introduced by Mike Cohn (www.mountaingoatsoftware.com/).

This article contains excerpts from my book Hands-On Mobile App Testing published with Pearson Education.

As you can see in the following image, the typical pyramid consists of three layers. At the bottom, there is the automated unit-testing layer, in the middle the automated integration testing layer and at the top there is the automated end-to-end testing layer (including the user interface tests). Each layer has a different size, indicating the number of tests that should be written within each stage. Manual testing is not part of the test pyramid, hence it is shown as a cloud for additional testing work.

But this pyramid is not applicable to mobile apps and mobile test automation. Mobile testing requires a totally different set of testing activities like movement, sensors, different devices and networks compared to other software like desktop or web applications. Lots of manual testing is required to be sure that a mobile app is working as expected in the different usage scenarios.

Mobile Test Automation tools are currently not as mature as their counterparts for web and desktop applications, which leads to a flipped Test Automation pyramid. As the tools become increasingly mature, this pyramid is likely to flip back again because the default Test Automation pyramid is based on a more stable foundation (see the pyramid image below).

The default pyramid therefore can’t be used as an indicator for Test Automation and Manual Testing in the mobile world. The flipped testing pyramid looks like this: In this version of the pyramid, the automated unit testing layer is the smallest one. This is the case because not

The flipped testing pyramid looks like this:

In this version of the pyramid, the automated unit testing layer is the smallest one. This is the case because not every unit or method of mobile apps can be tested in an isolated manner. In some cases, different APIs, layers or systems may need to be faked or mocked in order to get the small unit to work. This is also the case for every other software application, but in some cases mocking or faking other systems for mobile apps is much more complex. This is not efficient from a technical or economic point of view. However, it’s no excuse for not writing mobile unit tests at all. The main logic of an app can/must be tested at the unit level.

The next stage is the end-to-end Test Automation layer. Within this layer, the whole app is tested from a user perspective. It will be tested to make sure the whole system is working, from the app’s user interface through to the backend system via a wireless network, including integration testing with different libraries or APIs. The integration testing layer is therefore part of the end-to-end layer.

The biggest change in this pyramid is that manual testing is part of it. Mobile testing requires lots of Manual Testing, and this can’t be replaced by Test Automation or any other tools yet.

Nevertheless, mobile Test Automation is a really important topic and every mobile tester should be able to write automated regression tests that provide fast feedback about the current quality state of an app. Furthermore, Test Automation helps the team build a reliable and robust mobile app that makes the customers happy.

Mobile Test Pyramid

The flipped testing pyramid has no stable foundation and mobile testing requires lots of Manual Testing, which is why I created my own mobile test pyramid consisting of four layers including Manual and Automated steps. The biggest layer of the pyramid is Manual Testing and forms the strong foundation for every mobile app project, followed by end-to-end testing, beta testing and a top layer comprising unit testing. The grey parts of the pyramid indicate the automated steps and the white parts are the Manual Testing steps. The beta-testing layer is new to the pyramid but essential to every mobile app project. Keeping the high expectations of the mobile users in mind requires this layer to be part of every mobile project to get early feedback from your mobile customers. You can either use a crowd testing approach for your beta testing or you can ask your colleagues to beta test early versions of your app to provide important feedback.

Note: The End-2-End and Unit tests layers can also be swapped as well as the beta and End-2-End layer. The amount of End-2-End tests and Unit tests can differ from project to project and from app to app.

I used this mobile test pyramid in several projects and it helped me set up a reliable, effective and valuable testing process.

If you want to read more about mobile testing, please have a look at my book Hands-On Mobile App Testing which is available as a printed copy as well as an eBook. More details under: http://www.handsonmobileapptesting.com/ or in any other online or offline bookstore.

#HappyTesting!

Daniel Knott
Daniel is a mobile testing expert working as Senior Software Test Engineer at XING’s Android team. He started his software testing career in 2003 as a trainee at IBM Germany. After his time at IBM, Daniel studied computer science with a focus on software development and testing. Since 2009, Daniel has worked for companies such as Accenture, AOE and XING. In several agile development projects he tested web, desktop or mobile applications. However, mobile testing became his passion and since the beginning of 2011 he is working in the mobile development and testing industry. He worked and is working with several mobile test automation tools such as Robotium, Calabash for iOS/ Android, Espresso and Keep It Functional. With the help of this tools, he developed a fully automated testing environment for Android and iOS. Daniel likes to share his knowledge and therefore he started to share his experience on his blog at http://www.adventuresinqa.com as well as in several testing magazines. Daniel is a well-known mobile expert, a speaker at various conferences in Europe and since 2014, he is the author of the book “Hands-On Mobile App Testing“, more information about the book can be found at http://www.handsonmobileapptesting.com. Get in touch with Daniel:
– XING: Profile ( www.xing.com/profile/Daniel_Knott )
Daniel Knott on Twitter

The Related Post

LogiGear Magazine – March 2011 – The Agile Test Automation Issue
I got some comments on my post “Test Everything all the Time” — most notably people commenting that it’s impossible to test “everything”. I can’t agree more. The intention of the post was to make the point that we need to be able to test “everything we can” all the time. That is, you should ...
I recently came back from the Software Testing & Evaluation Summit in Washington, DC hosted by the National Defense Industrial Association. The objective of the workshop is to help recommend policy and guidance changes to the Defense enterprise, focusing on improving practice and productivity of software testing and evaluation (T&E) approaches in Defense acquisition.
I feel like I’ve spent most of my career learning how to write good automated tests in an Agile environment. When I downloaded JUnit in the year 2000 it didn’t take long before I was hooked – unit tests for everything in sight. That gratifying green bar is near-instant feedback that everything is going as ...
Many organizations rely on HP Quality Center to design test plans and track test results. TestArchitect’s Quality Center integration makes working with QC as easy as pie. TestArchitect (TA) is a three-in-one tool for Test Management, Test Development, and Test Automation. Users can create and manage test assets, execute tests, track and analyze test results, ...
Two dominant manual testing approaches to the software testing game are scripted and exploratory testing. In the test automation space, we have other approaches. I look at three main contexts for test automation: 1. Code context – e.g. unit testing. 2. System context – e.g. protocol or message level testing. 3. Social context – e.g. ...
One of the basic challenges with test automation is adoption. I can’t tell you how many times I’ve cataloged licenses for a company and found out they already have many different automation software packages, none of which is being used. Traditionally I’ve been told that is because the tools don’t work and that the teams ...
Learn how to leverage TestArchitect and Selenium for turnkey, Automated Web testing. TestArchitect lets you create, manage, and run web-based automated tests on different types of browsers—using either a WebDriver or non-WebDriver technique. In this article, we will explore employing WebDriver for testing a web-based application with TestArchitect. TestArchitect with WebDriver is a tool for automating ...
The challenges with any automation effort is to know your capability. I’ve seen too many automation efforts begin and end with a tool decision. Generally these tools are very complex pieces of software that do many more things then we would ever use in our normal everyday testing. It even adds more misery to the ...
A short-list of selection criteria and popular automation tools. There are a lot of test automation tools available in the market, from heavy-duty enterprise level tools to quick and dirty playback-and-record tools for browser testing. For anyone just starting their research we’ve put together a short list of requirements and tools to consider.
Even the highest quality organizations have tradeoffs when it comes to their testing coverage. In Japan, Europe, and the United States, automotive manufacturers are aiming to enhance automotive functions by using software; in Japan in particular, Toyota, Nissan, Honda, Mazda, and Subaru are all adding endless amounts of software to their vehicles in the form ...
What is the Automation ROI ticker? The LogiGear Automation Return on Investment (ROI) ticker, the set of colored numbers that you see above the page, shows how much money we presumably save our customers over time by employing test automation as compared to doing those same tests manually, both at the design and execution level.

Leave a Reply

Your email address will not be published. Required fields are marked *

Stay in the loop with the lastest
software testing news

Subscribe