English version of my slides for Mobile Testing report (http://www.youtube.com/watch?v=pdWYmxbTgYw - video is russian)
Link on iOS specifications map: https://www.dropbox.com/s/40eb09lvlsn8flm/ios_testing.png
2. Who about what
Oleg Nikiforov
in
• Features of mobile
apps testing
• Preparation for
testing process
• Types of mobile
testing
• Information used for
testing
• Useful tools
Android apps
iOS apps
http://stanfy.com
UX/UI Design
3. Features of mobile apps testing
• Form factors
• Gestures
• Network connection types
• Social networks integration
• Achievements
• Push notifications
• Media content
• Usage of locale settings
• Focus on visual components
5. Gestures
• Standard actions, known by
users of mobile apps
• Custom actions bound to
standard gestures
• Custom gestures
• Several swipes in different
directions on one screen
(mostly for iOS)
6. Network connection types
3G
• Switching between 3G and WiFi
• Size of requests/responses
• Upload/download - pause, cancel
• Time outs
• Loss of connection
WiFiEdge
7. Social networks integration
• Authorization via social
networks
• Share
• Post messages: images, links
• Comments
• Login/logout -
app/browser/device settings
(iOS)
8. Achievements
• Related to time(e.g. “Using app for 2 weeks”)
• Related to certain actions – should trigger correctly
• Share achievements
9. Push notifications
• Receiving
• Open corresponding object
• Errors handling (e.g. object corresponding to received
notification don’t exist any more, empty notification, etc.)
10. Media content
Interaction with media content (photo,
video, sound) and external hardware:
• Usage of photos from library/camera,
usage of panoramas (memory issues)
• Usage of microphone (including
external hardware)
• Audio/video playback (pause,
handling of incoming/outgoing calls,
messages).
11. Link to time/localization/region:
• Application language depending on device settings
• Time depending on time zone
• Received from server content’s language depending
on device settings
• Date/time format depending on device settings
• Weight/volume/temperature measures depending on
local settings
Usage of locale settings
12. Focus on visual components
• Button size depending on app language
• Fonts
• Blurry images
• App resources should correspond to screen resolution
• Animations
13. Preparation for testing process
• Investigation of requirements, prototypes, mock-ups -
main point – to understand application’s flow
• Investigation of API documentation
• Creating API tests
• Creating application’s mind maps
14. Types of mobile testing
• Manual
• Automated ui:
o Calabash
o Frank
o Robotium
o UI Automation
o Appium
• Automated API:
o SoapUI
o LoadUI
15. Information used for testing
• Use cases which correspond to tested application 30% - 50%
• Specifications common for certain OS - iOS/Android 10% - 20%
• Common cases - use cases which are common for certain type of
applications, or for components inside applications (list view, scroll
view, alerts, etc.) 5% - 15%
• Testing patterns – boundary values, decision tables, etc 5% - 10%
• Sixth sense ;) 20% - ∞
17. Android
• Test on different devices:
o Different screen size > display of content
o Different pixel density > display of graphic elements (icons, buttons, images,
etc.)
• Test on different OS versions:
o Media files playback;
o Action bar;
o Custom animations;
o Web view.
• Test how application handles phone calls:
o If in app there are services, which work with sound in background (e.g. music
playback when app is minimized) > test how app works during incoming call;
o If in app there are no services, which work with sound in background >it is
possible just to test how app works when minimized.
18. Useful tools for testing mobile applications
• IDE:
o Eclipse + DDMS + Sim
o Xcode + Organizer + Sim
• Visual:
o Reflector
o Jing
o DDMS - capture android
device
• Network:
o Sniffers/proxy (Burp, Tcp
Catcher, Charles, etc.)
o Network Link Conditioner
• Location:
o iOS Sim
o Fake Location (Android)
o Eclipse
• Other:
o iPhone Configuration Utility
- manage certs
o XMind
o Crashlytics
19. IDE
• Android:
o Eclipse https://www.eclipse.org
o DDMS http://developer.android.com/tools/debugging/ddms.html
o Simulator
• iOS:
o Xcode https://developer.apple.com/xcode/
o AppCode http://www.jetbrains.com/objc/
o Simulator
21. Network
• Sniffers/proxy:
o Burp Suite http://portswigger.net/burp/
o Tcp Catcher http://www.tcpcatcher.org/download.php
o Charles proxy http://www.charlesproxy.com/
• Network Link Conditioner
26. Tips and Tricks
• Application update - preserve data (DB migration)
• User created data and iCloud
• Crashlytics and change of bundle
• Crashlytics and debug
• Crashlytics and Hockeyapp
• Flurry analytics
• NSLog and time to handle crash
• Activity is recreated in android after device orientation is
changed
• Cache
• Auth token
• Server errors handling
• Server error vs. no connection error