Skip to main content
Mobile App Testing·Lesson 5 of 5

Common Mobile Bugs

Experience teaches you where bugs hide. These are the most frequent mobile-specific bugs that testers encounter — learn to look for them proactively.

Crash Bugs

Out of Memory (OOM)

The app uses more memory than the OS allows and gets killed.

How to find it:

  • Open the app, navigate through many screens without going back
  • Load large images or long lists
  • Switch between the app and other memory-heavy apps
  • Leave the app running for extended periods

Bug report tip: Include the device model and RAM. A crash on a 3GB device that works on 8GB is an OOM issue.

Null Pointer / Undefined

The app tries to access data that doesn't exist yet.

Common triggers:

  • Navigating to a detail screen before data loads
  • Deep linking directly to a screen that expects prior data
  • Returning from background after data was garbage collected
  • Rotating the screen during an API call

Unhandled Exceptions

The app doesn't catch errors from APIs, permissions, or hardware.

Test by:

  • Denying every permission and using the feature anyway
  • Sending malformed deep links
  • Interrupting operations mid-way (force close during save)

UI Bugs

Keyboard Overlap

The virtual keyboard covers the input field the user is typing in.

How to test:

  • Tap every input field on every screen
  • Check that the view scrolls to keep the active field visible
  • Test with different keyboard sizes (default, autocomplete bar, third-party keyboards)

Layout Breaking on Small Screens

Designs built for iPhone 15 may break on iPhone SE.

What to look for:

  • Text overlapping other elements
  • Buttons pushed off-screen
  • Horizontal scrolling where there shouldn't be any
  • Truncated labels with no tooltip or expansion

Dark Mode Issues

BugExample
Invisible textDark text on dark background
Hard-coded colorsWhite background ignores dark mode
Image backgroundsLogo has white background that doesn't adapt
Status barDark text on dark status bar
Third-party componentsWebViews or SDK UIs that ignore dark mode

Test by: Toggling dark mode on and off on every screen.

Orientation Bugs

  • Content disappears after rotation
  • Scroll position resets on rotation
  • Modal dialogs get mispositioned in landscape
  • Video player doesn't adapt to orientation change

Data Bugs

Data Not Persisting

  • User fills a form, switches to another app, comes back — form is empty
  • Settings reset after app update
  • Completed onboarding shows again after reinstall

Sync Issues

  • Data created offline duplicates when synced
  • Conflicts when the same item is edited on two devices
  • Stale data shown after sync completes (cache not invalidated)

Date and Timezone Bugs

  • Events show at wrong time for users in different timezones
  • "Today" filter shows wrong results near midnight
  • Date of birth field off by one day (timezone conversion)

Network Bugs

Loading States Missing

The screen shows nothing while data loads. Users think the app is broken.

Every API-dependent screen should have:

  • Loading skeleton or spinner
  • Error state with retry button
  • Empty state ("No items yet")

Timeout Handling

  • App hangs indefinitely on slow networks
  • No timeout — spinner spins forever
  • Timeout too aggressive — fails on 3G networks

Retry Logic

  • Failed requests don't retry automatically
  • Retry creates duplicate data (payment charged twice)
  • No exponential backoff — hammers the server

Permission Bugs

ScenarioExpected
Camera permission deniedShow explanation, link to settings
Location denied, then granted in settingsApp picks up new permission without restart
Notification permission deniedApp works without notifications, no crash
"Don't ask again" selectedDirect user to system settings
Permission revoked while app is openGraceful degradation, not crash

Installation and Update Bugs

Fresh Install

  • Onboarding flow works correctly
  • Default settings are sensible
  • No leftover data from previous installs

App Update

  • User data survives the update
  • Database migrations run correctly
  • New features are introduced gracefully
  • No force-close after update

Uninstall

  • All app data is removed
  • Background services stop
  • No orphaned notifications

Interruption Bugs

Test what happens when the app is interrupted:

InterruptionWhat to Check
Incoming phone callApp pauses gracefully, resumes correctly
Push notification tappedApp navigates to correct screen
Low battery warningNo data loss
Alarm goes offApp state preserved
Screen lock/unlockSession still valid
App switcher (recent apps)Screenshot in app switcher is correct (no sensitive data)
Split screen / picture-in-pictureApp adapts or gracefully declines

Bug Hunting Checklist

Use this checklist when testing any mobile screen:

  • Load the screen on slow network
  • Load the screen offline
  • Rotate the device
  • Toggle dark mode
  • Use the smallest supported device
  • Background and foreground the app
  • Deny relevant permissions
  • Enter invalid data in all fields
  • Tap all buttons rapidly
  • Scroll to the bottom of all lists
  • Test with system font size set to largest
  • Test with accessibility features on (TalkBack/VoiceOver)