Mobile Testing Learning Path: Start Here
In short: you learn mobile testing in 6 milestones. The mobile-web parts run on your machine with Playwright device emulation; the native parts (adb, simctl, Appium) use real config you run when you have an emulator, a device, or a device-cloud account.
Read this page once to see the plan. Then, for each milestone, follow the same four steps: learn → do → check → commit. Come back here whenever you're unsure what to do next.
Before you start
- Node.js 20+ (for the mobile-web milestones).
- A phone with VoiceOver or TalkBack for manual checks.
- For native automation (Milestone 5): either Android Studio (emulator + adb) / Xcode (simulator + simctl), or a free trial on a device cloud (BrowserStack, Sauce Labs, LambdaTest).
- Helpful: the test automation cheat sheet (page objects, locators).
The pages in this learning path
| Page | What it's for | When to open it |
|---|---|---|
| This roadmap | The plan and self-checks | At the start of each milestone |
| Mobile testing cheat sheet | Learn each idea; mobile-web examples run | The "learn" step |
| Milestones & Mini-Projects | Tasks, expected results, solutions | The "do" and "check" steps |
| Quick Reference | Device matrix, adb/simctl, Appium, checklists | Any time |
| Best Practices | Habits for effective mobile testing | After Milestone 2, then every release |
| Appium guide | Native automation in depth | Milestone 5 |
The milestones
| Milestone | You learn | You do | Rough time |
|---|---|---|---|
| 1 | Why mobile differs, app types, the device matrix | Build a device matrix | 1 week |
| 2 | Mobile-web emulation, touch, orientation | Playwright mobile-web tests | 1 week |
| 3 | Interruptions, permissions, networks | Manual mobile pass on a real phone | 1–2 weeks |
| 4 | adb / simctl, deep links, conditions | Drive a device from the command line | 1 week |
| 5 | Appium: capabilities, locators, gestures | Automate a native flow | 2 weeks |
| 6 | Device cloud, performance, store readiness, report | A cloud CI run + report | 1–2 weeks |
Times assume about 5 hours a week.
For each milestone: learn (cheat-sheet sections) → do (the tasks) → check (solution / your device) → commit.
Milestone 1: The device matrix
Learn: Why mobile is different · App types · The device matrix · Emulators vs real devices · What to test
Check yourself:
- What are the four app types, and how do you test each?
- What three things must every device matrix include?
- When is an emulator enough, and when do you need a real device?
Milestone 2: Mobile-web emulation
Learn: Mobile web emulation · Touch vs mouse · Orientation & viewport · Quick Reference: Playwright emulation
Do: Playwright mobile-web tests
Then read: Best Practices, sections 1–2, 5.
Check yourself:
- What does
tap()do thatclick()doesn't? - Why is a hover-only menu a mobile bug?
- How do you emulate a rotation?
Milestone 3: The manual mobile layer
Learn: Interruptions · Permissions · Network conditions · Common mistakes
Then read: Best Practices, sections 3–4, 6.
Check yourself:
- Name four interruptions an app must survive.
- What are the four permission states to test?
- Why test the offline→online sync path?
Milestone 4: Drive a device
Learn: adb & simctl · Quick Reference: adb, simctl, Network & permissions
Do: Command-line device control
Check yourself:
- How do you grant and revoke a permission from the command line?
- How do you fire a deep link on Android and iOS?
- How do you simulate low battery or airplane mode?
Milestone 5: Appium native automation
Learn: Appium set-up · Capabilities · Locators & the page object · Gestures · the Appium guide
Then read: Best Practices, section 7.
Check yourself:
- Which locator strategy is best on mobile, and why?
- How do capabilities relate to Playwright projects?
- How do you background the app to test an interruption?
Milestone 6: Cloud, performance & report
Learn: Performance · App-store readiness · Quick Reference: Store readiness
Then read: Best Practices, sections 8–10.
Check yourself:
- Why measure performance on a low-end device?
- Name three things that get an app rejected from a store.
- What goes in a mobile test report?
When you get stuck
| Problem | What to do |
|---|---|
| No Android SDK / Xcode | Do the mobile-web milestones now; use a device-cloud free trial for native |
| Emulator won't start | Enable virtualization; try a smaller system image; or use a real device over USB |
adb devices shows nothing | Enable USB debugging on the phone; accept the trust prompt; check the cable |
| Appium can't find an element | Use Appium Inspector to read the tree; ask devs for accessibility ids |
| A test passes on Chromium but hangs on WebKit | Engine differences are real — test the mobile browsers your users have |
What's next
- Native automation depth: Appium guide.
- Mobile accessibility: accessibility cheat sheet.
- Mobile app security: security cheat sheet (OWASP MASVS/MASTG).
- Certification: ISTQB Mobile Application Testing (CT-MAT).
Good resources: the Appium docs, the OWASP MASTG (Mobile Application Security Testing Guide), and your device cloud's own documentation.