Upload
oleg-nikiforov
View
268
Download
2
Embed Size (px)
DESCRIPTION
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
Citation preview
Testing of iOS and Android applications
Practical guide
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
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
Form factors
Smartphone:• Landscape• Portrait
Tablet:• 10 inch• 7 inch
Different interface, size of elements, usability of UI components
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)
Network connection types
3G
• Switching between 3G and WiFi• Size of requests/responses• Upload/download - pause, cancel• Time outs• Loss of connection
WiFiEdge
Social networks integration
• Authorization via social networks
• Share• Post messages: images, links • Comments• Login/logout -
app/browser/device settings (iOS)
Achievements
• Related to time(e.g. “Using app for 2 weeks”)• Related to certain actions – should trigger correctly• Share achievements
Push notifications
• Receiving• Open corresponding object• Errors handling (e.g. object corresponding to received
notification don’t exist any more, empty notification, etc.)
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).
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
Focus on visual components
• Button size depending on app language• Fonts• Blurry images• App resources should correspond to screen resolution• Animations
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
Types of mobile testing
• Manual• Automated ui:
o Calabasho Franko Robotiumo UI Automationo Appium
• Automated API: o SoapUI o LoadUI
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% - ∞
iOS testing mind map
Android
• Test on different devices:o Different screen size > display of contento 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.
Useful tools for testing mobile applications
• IDE: o Eclipse + DDMS + Simo Xcode + Organizer + Sim
• Visual:o Reflectoro Jingo DDMS - capture android
device
• Network:o Sniffers/proxy (Burp, Tcp
Catcher, Charles, etc.)o Network Link Conditioner
• Location:o iOS Simo Fake Location (Android)o Eclipse
• Other:o iPhone Configuration Utility -
manage certso XMindo Crashlytics
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
Visual
• Reflector http://www.airsquirrels.com/reflector/• Jing http://www.techsmith.com/jing.html• DDMS - capture android device• Droid-at-Screen http://droid-at-screen.ribomation.com/
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
Location• iOS Sim• Fake GPS location (Android)
https://play.google.com/store/apps/details?id=com.lexa.fakegps&hl=en
• Eclipse
Other
• iPhone Configuration Utility http://support.apple.com/downloads/#iphone configuration utility
• XMind http://www.xmind.net
• Crashlytics http://try.crashlytics.com
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