Contents — 12 Test Categories
When testing a mobile application, start by examining its functions beginning with the installation process. Follow any provided instructions, take a tour of the app, then assess device settings to identify potential interference. Map out user scenarios, note usability issues as you navigate, test different network connections, and evaluate interactions, interruptions, and other factors. The mnemonic below gives you a memorable structure to work through each dimension systematically.
|
Category |
Focus Area |
Checkpoints |
| I | Inputs | Touch, voice, keyboard, peripherals | 10 |
| S | Store | App store listing quality and compliance | 5 |
| L | Location | Network transitions, GPS, connectivity loss | 9 |
| I | Interactions | Interruptions, notifications, hardware events | 11 |
| C | Communication | Calls, messages, email, video | 14 |
| E | Ergonomics | Readability, typing burden, physical strain | 8 |
| D | Data | Files, media, character sets, update errors | 11 |
| U | Usability | Orientation, navigation, UI consistency | 12 |
| P | Platform | OS versions, manufacturers, updates | 4 |
| F | Function | Features, requirements, error messages | 5 |
| U | User Scenarios | Real-user journeys, demographics | 6 |
| N | Network | WiFi, cellular, airplane mode, dead spots | 8 |
Mobile apps are distributed through stores — primarily Apple's App Store and Google Play. The store listing is a goldmine of test ideas. Read the submission specifications, development guide, and any public documentation. Look for requirements around permissions, privacy, location services, and accessibility. The listing itself — description accuracy, screenshots, review scores — is also part of the product quality.
Where you are located affects what you are testing. Apps that need an internet connection are susceptible to connectivity issues caused by movement — stopping suddenly, moving between networks, or crossing into dead zones. Get up and walk while testing: walk out of WiFi range and see what happens when the app switches networks. Also, your location may differ from where the app was developed. Are words correctly translated? Are there cultural meanings that could be misinterpreted?
Mobile apps operate under tighter hardware constraints than desktop software — less memory, less processing power. They're especially vulnerable when other apps or OS functions compete for resources. Test how the app behaves when other apps run simultaneously, when notifications arrive, when error messages occur, and when device settings change. Time-based interruptions (alarms, calendars, time-zone changes) are particularly revealing. Be creative: change settings while using the app and force error conditions to see how the app recovers.
Check log files
During interruption testing, monitor device logs in ADB (Android) or Xcode console (iOS). Crashes that swallow exceptions silently only reveal themselves in log output.
Smartphones are communication hubs. Communication events — calls, texts, push messages — take priority over the app under test, making this a rich area for interaction bugs. Test every combination of receiving vs. ignoring vs. handling: take a call, reject it, let it go to voicemail — all while the app is running. The same logic applies to messages, video calls, and file transfers. There are many combinations to cover here.
Small screens, no wrist support, hunching over a device — mobile use is physically demanding. Use physical cues from your own testing to identify usability problems: if something frustrates you or strains your eyes, it will frustrate users too. Are fonts too small? Colors hard to distinguish? Does the user have to type excessively on a small keyboard? Are there too many steps to complete a common task? Any improvements to reduce physical strain are highly significant to user retention.
Data is anything the application processes. Any input you provide is processed in some form, and any data arriving from a server or third party can affect behavior. Test with special characters, different languages, maximum and minimum file sizes, and multiple file types. If the app depends on periodic server updates, find out the update schedule and test behavior during and after each update.
Usability bugs are often the most impactful because they directly frustrate end users. Log any action that is awkward, confusing, or slow. Listen to your own emotional responses — frustration is a bug signal. Look for incomplete instructions, incorrect labels, and workflows that make tasks unnecessarily difficult. Also test orientation specifically: the app should remain coherent when rotated, and should handle the transition between portrait and landscape without data loss or visual corruption.
Orientation tour
Perform a dedicated orientation tour: launch the app, then systematically rotate through all supported angles — portrait up, landscape left, landscape right, upside-down. At each angle: scroll, tap, type, and navigate. Rotation bugs often only appear at specific transition points.
Functional testing is the most common form of testing: verify that the application does what it claims to do. Take a tour of the product to identify everything it does. Click every button, fill in every form, explore every setting. Find both the commonly used features and the most obscure ones. Then compare the actual behavior against what the developers, documentation, and store listing say it does. Any divergence is a defect.
Scenario testing is among the most powerful techniques available. If limited to one approach in a short session, this is often the most effective choice. Imagine two or three real people you know and simulate their use of the app. Think of the non-technical user who struggles with technology, the power user who discovers every shortcut, and someone in between. Consider users across different age groups, accessibility needs, and cultural contexts. Set up realistic device conditions for each persona — fill the inbox, set a meeting reminder, switch the language.
Mobile apps that require network connectivity are highly susceptible to timing failures, slow responses, and signal degradation. The path from server to device involves many handoffs — each a potential failure point. Test different connection speeds, transitions between networks, and complete loss of signal. Apps must be tested in the wild: walk around, go underground, enter elevators — find dead zones and observe what happens.
Network emulation
On Android Emulator use -netdelay and -netspeed flags to simulate different network conditions without physical movement. Combine with airplane mode toggle for full offline coverage.
Supplementary points from
Daniel Knott's Mobile Testing Cheat Sheet (
Adventures in QA ↗) that complement the I SLICED UP FUN framework. These cross-cutting concerns don't fit neatly into a single letter but are essential for thorough mobile testing.
— Framework
I SLICED UP FUN — The Mnemonic
I SLICED UP FUN is a mobile app testing framework developed by Jonathan Kohl — a testing consultant and author whose work focuses on mobile and exploratory testing. Jonathan was inspired by James Bach's SFDPOT (San Francisco Depot) mnemonic, which explores product dimensions for software testing more broadly.
The value of a mnemonic like this is not a rigid checklist to be completed in order — it is a memory aid that prompts creative, dimension-by-dimension exploration. The framework is deliberately open-ended. Come up with your own ideas and never be limited by the mnemonic itself.
Attribution
Jonathan Kohl
Framework Author
Creator of the I SLICED UP FUN mnemonic. Testing consultant, author, and coach.
kohl.ca ↗
James Bach
SFDPOT Originator
Creator of SFDPOT, the product-element mnemonic that inspired Kohl's mobile-specific framework. Pioneer of exploratory and context-driven testing.
Daniel Knott
Bonus Checklist Source
Author of the Mobile Testing Cheat Sheet. Mobile testing practitioner and author of
Hands-On Mobile App Testing.
adventuresinqa.com ↗
— Connect
Questions, additions, or corrections welcome.