I created a testing checklist relevant to testing on mobile devices. The checklist can be applied to testing native apps, hybrid apps & websites. Each test criteria will not always apply under every condition on every application, however, the checklist is designed as a tool to remind testers to focus on tests specific to the mobile platform and to provide a talking piece on which to spark more creative mobile specific tests.
Can you think of new mobile features that also need to be covered?
Display
- Orientation – Portrait, Landscape
- Screen size
- Screen resolution
Random tests (“Handbag testing”)
- Rotate screen
- Shake screen
- Phone call interruption
- Stay on open page for a long time
- Lock screen startup
- Get creative!
Location based functionality
- Location services – ON (overall and application specific)
- Location services – OFF (overall and application specific)
- GPS On
- GPS Off
- Test after clear location
- Test as user “on the move”
Map functionality
- Location services – OFF
- Location services – ON
- Compare to google maps, native apple maps
Date / Time
- Server side date/time
- Client side date/time (device settings – automatic, specific, manual)
- Timezones
- Device calendar settings – gregorian, buddhist, japanese
- Device region settings
Storage
- Data stored to device
- data available after hard close
- data not available after app reinstallation
- Data stored to cloud / external service
- data available after hard close
- data available after app reinstallation
- Delete app data via settings
- Clear app from phone cache
- Cookies for web pages
Performance / Stability
- Are loading times acceptable according to connection speed? 2G, 3G, 4G, WiFi, etc.
- What happens when network drops out?
- Are page transitions smooth?
- Are animations smooth?
- Is battery drained by app?
- Does app crash due to memory leaks etc?
- Do cached pages load quickly?
- Do non cached pages load in acceptable time?
- How much space does app take up on device?
Handling content
- Display upper boundary value
- Display lower boundary value
- Display popular value(s)
- Null value
- Characters: Alpha, Numeric, Special, Foreign
- HTML escaped
- Data mapping
User input fields
- Upper boundary value
- Lower boundary value
- Upper boundary value +1
- Lower boundary value -1
- Characters: alpha, numeric, special, foreign, spaces, all spaces
- Digits: numeric, negative, positive, currency, decimal, spaces, all spaces, alpha, special chars (currency symbols, commas, decimal points etc)
- Client side & server side tested
- Security: Inject SQL, Inject HTML
Security
- Is user information accessible?
- Is sensitive data accessible?
- Can we view a user’s sensitive data (Credit card etc) in:
- xCode/Android Studio log files?
- web service requests?
- backend log files?
- databases? (encryption may be required at DB level for sensitive data)
- Can we view a user’s credit card information after navigating away from a page?
- Can we view private information in URLs?
- Secure login
- Integration to 3rd party authentication
Compatibility
- Supported Operating Systems
- Supported Devices
- Popular screen sizes / resolutions
- Connection speeds 2G, 3G, 4G, WiFi
- Desktop (for responsive websites, or for web views)
Close application
- Soft close – phone call interruption, timeout screen interruption, view other application interruption
- Hard close – delete application from phone’s memory, uninstall application
Caches (client side)
- cache override when page reloaded
- cache override on clear cookies
- cache override on delete from phone memory
- cache expires after (cache time period)
Alerts
- Received according to client’s timezone
- or is it appropriate to set the alert on server timezone?
- Allow alerts
- Do not allow alerts
- Turn off alerts
Special features
- audio
- video
- animations
- welcome screens
- navigation
- android device back button
- browser back button
- home buttons
Author: Holly Marshall