introduction to mobile applications testing (english)

27
Testing of iOS and Android applications Practical guide

Upload: oleg-nikiforov

Post on 01-Nov-2014

268 views

Category:

Education


2 download

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

TRANSCRIPT

Page 1: Introduction to Mobile applications testing (english)

Testing of iOS and Android applications

Practical guide

Page 2: Introduction to Mobile applications testing (english)

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

Page 3: Introduction to Mobile applications testing (english)

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

Page 4: Introduction to Mobile applications testing (english)

Form factors

Smartphone:• Landscape• Portrait

Tablet:• 10 inch• 7 inch

Different interface, size of elements, usability of UI components

Page 5: Introduction to Mobile applications testing (english)

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)

Page 6: Introduction to Mobile applications testing (english)

Network connection types

3G

• Switching between 3G and WiFi• Size of requests/responses• Upload/download - pause, cancel• Time outs• Loss of connection

WiFiEdge

Page 7: Introduction to Mobile applications testing (english)

Social networks integration

• Authorization via social networks

• Share• Post messages: images, links • Comments• Login/logout -

app/browser/device settings (iOS)

Page 8: Introduction to Mobile applications testing (english)

Achievements

• Related to time(e.g. “Using app for 2 weeks”)• Related to certain actions – should trigger correctly• Share achievements

Page 9: Introduction to Mobile applications testing (english)

Push notifications

• Receiving• Open corresponding object• Errors handling (e.g. object corresponding to received

notification don’t exist any more, empty notification, etc.)

Page 10: Introduction to Mobile applications testing (english)

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).

Page 11: Introduction to Mobile applications testing (english)

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

Page 12: Introduction to Mobile applications testing (english)

Focus on visual components

• Button size depending on app language• Fonts• Blurry images• App resources should correspond to screen resolution• Animations

Page 13: Introduction to Mobile applications testing (english)

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

Page 14: Introduction to Mobile applications testing (english)

Types of mobile testing

• Manual• Automated ui:

o Calabasho Franko Robotiumo UI Automationo Appium

• Automated API: o SoapUI o LoadUI

Page 15: Introduction to Mobile applications testing (english)

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% - ∞

Page 16: Introduction to Mobile applications testing (english)

iOS testing mind map

Page 17: Introduction to Mobile applications testing (english)

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.

Page 18: Introduction to Mobile applications testing (english)

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

Page 19: Introduction to Mobile applications testing (english)

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

Page 20: Introduction to Mobile applications testing (english)

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/

Page 21: Introduction to Mobile applications testing (english)

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

Page 22: Introduction to Mobile applications testing (english)

Location• iOS Sim• Fake GPS location (Android)

https://play.google.com/store/apps/details?id=com.lexa.fakegps&hl=en

• Eclipse

Page 23: Introduction to Mobile applications testing (english)

Other

• iPhone Configuration Utility http://support.apple.com/downloads/#iphone configuration utility

• XMind http://www.xmind.net

• Crashlytics http://try.crashlytics.com

Page 24: Introduction to Mobile applications testing (english)
Page 25: Introduction to Mobile applications testing (english)
Page 26: Introduction to Mobile applications testing (english)

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