You are on page 1of 39

iPhone & Android

Application
Testing
Author: Syeda Fatima Waseem

What is
Andriod???

AndroidisaLinux-basedoperatingsystemdesigned

primarilyfortouchscreenmobiledevices
FirstAndroid-poweredphonewassoldinOctober2008,andby
theendof2010Androidhadbecometheworld'sleadingsmart
phoneplatform
Ithadaworldwidesmartphonemarketshareof59%atthe
beginningof2012,andasofthirdquarter2012,therewere500
milliondevicesactivatedand1.3millionactivationsperday

What is
iPhone???

iPhoneisalineofsmartphonesdesignedandmarketed
byApple

TheiPhonerunsApple'siOSmobileoperatingsystem,originally
namediPhoneOS

ApplicationsfortheiPhonearewritteninObjective-C

DevelopmentofiPhonebeganin2004andfirstiPhonewasreleasedin
2007

Difference between iOS &


Android

Messaging:
AppleiOS:
Android:

SMS,MMS,eMail
SMS,MMS,eMailandC2DM

Technology Access:
AppleiOS:
3G,3.5G,Wi-Fi,Bluetooth(HSDPA,HSUPA,UTMS)
Android:2G,3G,3.5Gand4G(GSM,EDGE,CDMA,EV-DO,UMTS,Bluetooth,NFC,WiFi,LTEandWiMAX)

Compatible Devices:
AppleiOS:
Android:

iPad,iPodTouch,iPhones
AnyDevices

Web Browser:
AppleiOS:Android:

Safari
ChromesV8JavaScriptengine

Difference between iOS &


Android

Connectivity:
AppleiOS:
Android:

Wi-Fi,Bluetooth
Wi-Fi,BluetoothandNFC

Some Android OS Features:


3DGoogleMap
Chrometophone
3rdPartyBrandedOS
AdobeFlashSupport
AutomaticAppUpdate

Some Apple iOS Features:


Airprint,AirPlay
FindmyiPhone
Messageswithtexttone
KeyboardandDirectoryenhancement

Introduction

Mobiledeviceshavewitnessedaphenomenalgrowthinthepast
few years and there are more mobile phones in the world than
televisionsandPCscombined

Market of mobile applications is growing every day and even


going to become more demanding as technologies are rapidly
developing

In Mobile-Internet era people use smart phones to connect to


internet for work, networking, gaming, shopping and other
everyday activities, testing software applications across mobile
platformsbecomesindispensible

Why to perform Testing???

Testingisexpensiveandtimeconsumingbutitisneeded
to ensure that your consumers have a positive

experience when they use your mobile


applications

Failtodoagoodjoboftestingandyourcustomerwill
leaveforever

Goals of your Testing

Primarygoalofyourtestingeffortsisnottofinderrors

Goalintestingshouldbetounderstandthequalityofyour

offeringsi.e.

Mobile Application Testing

Mobileapplicationtestingisaprocessbywhichapplication

softwaredevelopedforhandheldmobiledevicesistested
foritsfunctionality,usabilityandconsistency

Application testing Ensures

Biggest Mobile testing


Challange
Therearenumberofclientdevicesthatcouldbeusedonyourmobilesite,andallof
themmustbeconsideredwhentestingyourmobileapplication

Number of devices can be reduced to an extent, but each time you reduce the
number of device types that you test against, you are taking a chance that your
applicationmightnotworkonadevice,lockingoutanumberofpotentialcustomers

To handle the device challenge, you have two options: You can test using real
devices, or you can test using emulated devices

Critical Factors of Mobile


Testing
The critical factors that determine the success of a mobile
testingprogramare:

Useofemulatorsandactualdevices
Useoftestautomation

Choosing Testing Strategy

Real Device
Advantage:

Real devices have the advantage of having all of the limitations and
quirkspresentintheactualclienthardware

Hardware Exceptions handling is possible e.g. low battery, power-offs,


insufficientmemory,etc

Disadvantage:

Testingwithrealdevicesisincrediblyexpensive

Real handsets are not designed with testing in mind so limited


processingpowerandstorageofthehandsetsdoesnotallowon-board
diagnosticsoftwaretobeloaded

Emulator
Advantage:

Emulated devices are easier to manage one can switch device types by simply
loadinganewdeviceprofile

EmulatorsrunonmorepowerfulPCs/serversanddesignedwithtestinginmind

Emulateddevicesarecosteffective

Disadvantage:

Emulated devices lack the quirks and faults that only the real device can
provide

Hardware Exceptions handling is not possible e.g. low battery, power-offs,


insufficientmemory,etc.

Issues with Android Emulator

Androidisfastsimulatorbutsmaller screen ofthephonemakesthings


alittleimpossibletotesttheentireapplication

Wecannotzoom in oncewehavethemodalwindow,andintheoriginal
zoomed out size we can hardly see anything for testing a specific
feature

Issues with iPhone Simulator

They are extremely slow and Problems occur while doing testing
onMobileApplications

Difference between Simulator


& Emulator

Asimulatorisapieceofsoftwarethatduplicatesaspreciselyas
possibletheprocessorto"run"codetoseeifitis
correct

Anemulatorgenerallyisapieceofhardwarewhichduplicatesthe
featuresandfunctionsofarealsystem;itisself-contained,andisable
tobehookedtosomekindofdevelopmentenvironment

Types of Mobile Application


Testing

Types of Mobile Application


Testing

Unit Testing

Primarygoalofunittestingistotakethesmallestpieceoftestable
softwareintheapplication,isolateitfromtheremainderofthecode,and
determinewhetheritbehavesexactlyasyouexpect

Eachunitistestedseparatelybeforeintegratingthemintomodulesto
testtheinterfacesbetweenmodules

Integration Testing

Integration testing isthephaseinsoftwaretestinginwhich


individualsoftwaremodulesarecombinedandtestedasagroup

Itoccursafterunittesting

Functional Testing

Functional testing is a type of Black box testing in which mobile


applications are tested to ensure that it is working as per the
requirements

Functionsaretestedbyfeedingtheinputandexaminingtheoutput

Performance Testing

Performance testingisperformed to determine how a system performs in


terms of responsiveness and stability and it uncovers what needs to be
improvedbeforetheproductgoestomarket

Check the performance and behavior of the application under certain conditions
such as low battery, bad network coverage, low available memory, simultaneous
accesstoapplicationsserverbyseveralusersandotherconditions

Asapplicationisinstalledon Mobile Phones ofdifferentmemory,processorand


screensizesoitshouldperformatitsbestdespiteofthesevariants

Evaluates the response time (speed) of Application to execute its required


functionsincomparisonwithdifferentMobiledevices

TestingisperformeduntiltheApplicationundertestachievestheexpectedlevels
ofperformance

Performance Testing

Performance Testing: Check


List

Systemtests(bootingthephone,orresumingfromstandby)

Userinterfacetests(rotatingthescreen,displayingamenu)

Media(startingavideo)

Phone(callingacontact)

Compatibility Testing

Compatibility testing isconductedontheapplicationto


evaluatetheapplication'scompatibilitywiththeenvironment
Operatingsystems(MVS,UNIX,Windows,etc)
Browsercompatibility(Firefox,Netscape,InternetExplorer,
Safari,etc)

Mobile devices have different size, resolution, screen, version


andhardwaresoapplicationshouldbetestedacrossalldevices
toensurethattheapplicationworksasdesired

Compatibility Testing: Check


List
Following are somebasic scenarios which should be consideredwhile testing mobile
application:

UI of the app is as per the screen size of the device, no text/control should be
cuttingoff

Textshouldbereadable

Suspend/Resume(Call/SMS/Alarm)whenappisrunning

Ifapphastimer/soundthenSuspend/Resumetimer/sound

BehaviorofapponFlip/Sliderclose

Behaviorofappwhenmemoryofthedeviceisalmostfull

Behaviorofwhennetworkisnotavailable

Behaviorofappifappisrunningforlongerperiodoftime

Behaviorofappwhenkeysarepressedrandomly

Load Testing

Load testing is done to check stability of the application when desired


concurrentnumberofusersaccessesthemobileapplicationatagiventime

Objective is to test whether the mobile application qualifies and sustains the
requirednumberofuserswithmaximumloadforminimumtomaximumperiodof
time

It helps to identify the maximum operating capacity of an application as well as


anybottlenecksanddeterminewhichelementiscausingdegradation

Stress Testing

Stresstestingisusedtodeterminethestabilityofagivensystemwhen
loadplacedonthesystemisraisedbeyondnormaloperationalcapacity
oftentobeabreakingpoint,inordertoobservetheresults

Processoffeedinglargesttasksitcanoperatewith,andconstantly
increasingtheloadonthesystemviaautomatedtoolstosimulatereal
timescenariowithvirtualusers

Regression Testing

Regressiontestingseekstouncovernewsoftwarebugsinexistingareasofa
systemafterchangeshavebeenmadetothem

Intentofregressiontestingistoensurethatachange,suchasabugfix,didnot
introducenewfaults

Commonmethodsofregressiontestingincludererunningpreviouslyruntestsand
checkingwhetherprogrambehaviorhaschangedandwhetherpreviouslyfixed
faultshavere-emerged

Determinewhetherachangeinonepartofthesoftwareaffectsotherpartsofthe
software

Other Testing

Security Testing: Check List


Brute Force:
ABruteForceattackisanautomatedprocessoftrialanderrorusedtoguessapersons
username,passwordorcredit-cardnumber

Insufficient Authentication:
Insufficient Authentication occurs when an application permits an attacker to access
sensitivecontentorfunctionalitywithouthavingtoproperlyauthentication

Weak Password Recovery Validation:


Weak Password Recovery Validation is when an application permits an attacker to

illegallyobtain,changeorrecoveranotheruserspassword
Insufficient Session Expiration:
InsufficientSessionExpirationiswhenanapplicationpermitsanattackertoreuseold
sessioncredentialsorsessionIDsforauthorization

iPhone & Android ApplicationTesting:


Check List
Brute Force:
ABruteForceattackisanautomatedprocessoftrialanderrorusedtoguessapersons
username,passwordorcredit-cardnumber

Insufficient Authentication:
Insufficient Authentication occurs when an application permits an attacker to access
sensitivecontentorfunctionalitywithouthavingtoproperlyauthentication

Weak Password Recovery Validation:


Weak Password Recovery Validation is when an application permits an attacker to

illegallyobtain,changeorrecoveranotheruserspassword
Insufficient Session Expiration:
InsufficientSessionExpirationiswhenanapplicationpermitsanattackertoreuseold
sessioncredentialsorsessionIDsforauthorization

iPhone & Android ApplicationTesting:


Check List

Pagescrolling

Navigationbetweenscreens

Datatesting

NetworkTesting:(iftheapplicationisNetworkbased)

VerifythebehaviorofapplicationwhenthereisNetworkproblemanduseris
performingoperationsfordatacall
UsershouldgetpropererrormessagelikeNetworkerror.Pleasetryafter
sometime

ApplicationSideEffects:

Installedapplicationshouldnotcauseotherapplicationsofdevicetohamper

iPhone & Android ApplicationTesting:


Check List

Check Application start/stop behavior

Check if No disruption to voice calls: Withtheapplicationinstalledandrunning


useasecondphonetocallthetestdevice

Check if No disruption to text messages:Withtheapplicationinstalledand


running,sendatextmessagetothetestdevice

Check for Multitasking: Nodisruptiontokeydeviceapplications

Check for social networking options suchassharing,postingandlinksetc

Memory testing: checkthememorybyfillingandemptyingit,thencomparethe


applicationresults

Check if any payment gateway occurs likePaypal,AmericanExpressetc

Tips for Android Usability


Testing

Itispreferredtohaveaquickandeasyappwithlessfunctionalitythanaslowand
difficultapplicationwithmanyfeatures

Anappthatiseasy-to-useandintuitive,andsimilartoindustry-acceptedinterfaces
willtendtodowell

Icons & Buttons

Buttonsshouldhavetherightsizeandbesuitabletobigfingers.

Buttonsinthesameplaceofthescreentoavoidconfusion.

Naturalandconsistenticons.

Buttonsthathavethesamefunctionshouldhavethesamecolor

Tips for Android Usability


Testing
Touch
Tappingshouldzoom-inandzoom-out
Theremustbeawaytogobackorundoanaction,astouchingthewrongitemisdonequickly
Minimizekeyboardinput
Menu
Contextualmenusshouldnotbeoverloadedbecauseithastobeusedquickly
Text
Keeptextsimpleandclear
Shortsentencesandparagraphsarereadable
Thefontsizeshouldbebigenough,nottoobigandnottoosmall
Messages
Whentheappstartsdownloadingalotofdata,theusershouldbewarned
Testtheclosingoftheappfromdifferentstatesandcheckifitre-opensinthesamestate

info@swaam.com
+92-42-35782346
www.Twitter.com/SwaamTech
www.FaceBook.com/SwaamTech

You might also like