Top Banner
291

About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Jul 20, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 2: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AboutThiseBook

ePUBisanopen,industry-standardformatforeBooks.However,supportofePUBanditsmanyfeaturesvariesacrossreadingdevicesandapplications.Useyourdeviceorappsettingstocustomizethepresentationtoyourliking.Settingsthatyoucancustomizeoftenincludefont,fontsize,singleordoublecolumn,landscapeorportraitmode,andfiguresthatyoucanclickortaptoenlarge.Foradditionalinformationaboutthesettingsandfeaturesonyourreadingdeviceorapp,visitthedevicemanufacturer’sWebsite.Manytitlesincludeprogrammingcodeorconfigurationexamples.To

optimizethepresentationoftheseelements,viewtheeBookinsingle-column,landscapemodeandadjustthefontsizetothesmallestsetting.Inadditiontopresentingcodeandconfigurationsinthereflowabletextformat,wehaveincludedimagesofthecodethatmimicthepresentationfoundintheprintbook;therefore,wherethereflowableformatmaycompromisethepresentationofthecodelisting,youwillseea“Clickheretoviewcodeimage”link.Clickthelinktoviewtheprint-fidelitycodeimage.Toreturntothepreviouspageviewed,clicktheBackbuttononyourdeviceorapp.

Page 3: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Hands-OnMobileAppTesting

AGuideforMobileTestersandAnyoneInvolved

intheMobileAppBusiness

DanielKnott

NewYork•Boston•Indianapolis•SanFranciscoToronto•Montreal•London•Munich•Paris•MadridCapetown•Sydney•Tokyo•Singapore•MexicoCity

Page 4: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Manyofthedesignationsusedbymanufacturersandsellerstodistinguishtheirproductsareclaimedastrademarks.Wherethosedesignationsappearinthisbook,andthepublisherwasawareofatrademarkclaim,thedesignationshavebeenprintedwithinitialcapitallettersorinallcapitals.

Theauthorandpublisherhavetakencareinthepreparationofthisbook,butmakenoexpressedorimpliedwarrantyofanykindandassumenoresponsibilityforerrorsoromissions.Noliabilityisassumedforincidentalorconsequentialdamagesinconnectionwithorarisingoutoftheuseoftheinformationorprogramscontainedherein.

Forinformationaboutbuyingthistitleinbulkquantities,orforspecialsalesopportunities(whichmayincludeelectronicversions;customcoverdesigns;andcontentparticulartoyourbusiness,traininggoals,marketingfocus,orbrandinginterests),pleasecontactourcorporatesalesdepartmentatcorpsales@pearsoned.comor(800)382-3419.

Forgovernmentsalesinquiries,[email protected].

ForquestionsaboutsalesoutsidetheU.S.,[email protected].

VisitusontheWeb:informit.com/aw

LibraryofCongressCataloging-in-PublicationDataKnott,Daniel.Hands-onmobileapptesting:aguideformobiletestersandanyoneinvolvedinthemobileappbusiness/DanielKnott.pagescmIncludesindex.ISBN978-0-13-419171-3(pbk.:alk.paper)—ISBN0-13-419171-41.Mobileapps—Testing.I.Title.QA76.76.T48K642015006.3—dc232015009688

Copyright©2015PearsonEducation,Inc.

Allrightsreserved.PrintedintheUnitedStatesofAmerica.Thispublicationisprotectedbycopyright,andpermissionmustbeobtainedfromthepublisher

Page 5: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

priortoanyprohibitedreproduction,storageinaretrievalsystem,ortransmissioninanyformorbyanymeans,electronic,mechanical,photocopying,recording,orlikewise.Toobtainpermissiontousematerialfromthiswork,pleasesubmitawrittenrequesttoPearsonEducation,Inc.,PermissionsDepartment,200OldTappanRoad,OldTappan,NewJersey07675,oryoumayfaxyourrequestto(201)236-3290.

ISBN-13:978-0-13-419171-3ISBN-10:0-13-419171-4

TextprintedintheUnitedStatesonrecycledpaperatRRDonnelleyinCrawfordsville,Indiana.Firstprinting,May2015

Page 6: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Formywife,Sarah.Thankyouverymuchforyoursupportand

encouragementwhileIwrotethisbook.

Page 7: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Contents

Preface

Acknowledgments

AbouttheAuthor

Chapter1:What’sSpecialaboutMobileTesting?UserExpectationsMobilityandDataNetworksMobileDevicesMobileReleaseCyclesMobileTestingIsSoftwareTestingSummary

Chapter2:IntroductiontoMobileDevicesandAppsOverviewofMobileNetworksMobileDevicesandtheYear2007TheBigTwoWhatTypesofAppsExist?NativeAppsHybridAppsWebApps

BusinessModelsofMobileAppsFreemiumPaidTransactionChoosingaBusinessModel

AppStoresSummary

Chapter3:ChallengesinMobileTestingTheCustomer

Page 8: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CustomerSummaryMobilePlatformsandFragmentationMobileDeviceGroupsMobileDeviceLabs

SensorsandInterfacesAmbientLightSensorProximitySensorAccelerationSensorGyroscopeSensorMagneticSensorPressure,Temperature,andHumiditySensorsLocationSensorTouchlessSensorSensorsSummaryTouchscreenMicrophonesCamera

SystemAppsInternationalization(I18n)andLocalization(L10n)MobileBrowsersSummary

Chapter4:HowtoTestMobileAppsEmulator,Simulator,orRealDevice?ManualTestingversusAutomatedTesting“Traditional”TestingMobile-SpecificTestingMobileFunctionalTestingMobileUsabilityTestingAccessibilityTestingBatteryUsageTestingStressandInterruptTesting

Page 9: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

PerformanceTestingStandbyTestingInstallationTestingUpdateTestingDatabaseTestingLocalStorageTestingSecurityTestingPlatformGuidelineTestingConformanceTestingCheckingtheLogFilesBeCreative!

Checklists,Mnemonics,andMindMapsChecklistsMnemonicsMindMaps

HowtoFileMobileBugsBugIDDescriptionStepstoReproduceExpectedResultActualResultWork-aroundReproducibleOperatingSystem,MobilePlatform,andMobileDeviceMobile-Device-SpecificInformationBrowserVersionSoftwareBuildVersionNetworkConditionandEnvironmentLanguageTestDataSeverity

Page 10: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

BugCategoryScreenshotorVideoLogFilesTesterWhoFoundtheBugThreeMorePoints

AppQualityAllianceSummary

Chapter5:MobileTestAutomationandToolsTheFlippedTestingPyramidTheMobileTestPyramid

DifferentTypesofTestAutomationToolsImageRecognitionCoordinate-BasedRecognitionOCR/TextRecognitionNativeObjectRecognitionCaptureandReplayToolTypeRecommendation

WhatShouldBeAutomated?Emulator,Simulator,orRealDevice?Emulator/SimulatorProsEmulator/SimulatorConsRealDeviceProsRealDeviceConsWheretoAutomate?

HowtoSelecttheRightMobileTestAutomationToolSelectionCriteriaforaTestAutomationTool

CurrentStateofToolsAndroidToolsiOSToolsMobileTestAutomationToolsSummary

ContinuousIntegrationSystem

Page 11: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

BetaDistributionToolsSummary

Chapter6:AdditionalMobileTestingMethodsCrowdTestingPrivateCrowdTesting

MobileCloudTestingPrivateCloud

Cloud-BasedTestAutomationSummary

Chapter7:MobileTestandLaunchStrategiesMobileTestStrategyDefineRequirementsTestingScopeDefineTestLevelsandTestTechniquesTestDataSelectTargetDevicesandTestEnvironmentManualandin-the-WildTestingMobileChecklistsandToursTestAutomationProductRisks

MobileLaunchStrategyPre-Launch—ChecktheReleaseMaterialPost-Release—WhatHappensafteranAppLaunch?CommunitySupportReviewsCrashReportsTrackingandStatistics

Summary

Chapter8:ImportantSkillsforMobileTestersSkillSetofaMobileTester

Page 12: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CommunicationCuriosityCriticalThinkingTenacityConstantLearnerCreativityCustomerFocusProgrammingandTechnicalSkills

HowtoImproveYourMobileTestingSkillsLearnfromOtherAppsCrashesonSpecificDevicesObserveTakePartinCompetitionsandTestCyclesTheMobileCommunityandtheMobileWorldValuableSources

Summary

Chapter9:What’sNext?AndFinalThoughtsInternetofThingsConnectedHomeConnectedCar

WearablesSmartWatchesandFitnessWristbandsSmartGlasses

HealthAppsFinalThoughtsFiveKeySuccessFactors

Summary

Index

Page 13: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Preface

Mobilephoneshavebeenaroundsincethemiddleofthe1970s.Thedeviceshaveofcoursechangedprofoundlysincethen,butthebiggestchangecamein2007whenApplepresenteditsfirstiPhone.Fromthatmomenton,themobilesmartphonemarkethasknownonlyonedirection—UP!Eightyearslater,touchdevicessuchassmartphonesandtabletshavebecomeubiquitous.Morethantwomillionappsareavailablefordownloadinthestoresofthebiggestvendors,andthisnumberisstillrising.1Thereareappsforeveryaspectofourlives,rangingfromphotosandmusic,toofficeapplicationsandgames,andontofitnessandhealth.Butwhataboutthequalityofthoseapps?Aretheyreliable,trustworthy,easytouse,welldeveloped,andtested?

1.iOSStorenumbers,www.engadget.com/2014/06/02/apples-wwdc-2014-in-numbers-40-million-on-mavericks-and-more/;AndroidPlayStorenumbers,www.appbrain.com/stats/number-of-android-apps.NumbersarefromJune2014.

Thisbookisapracticalguidetomobiletestingforanyonewhoworksinthemobilebusiness,butitisespeciallyaimedatmobiletesters.

WhyIWroteThisBookItallstartedin2010whenIhadtheopportunitytoworkonmyfirstmobileproject.ThemobileteamIworkedinwasresponsiblefordevelopingamobileWebapp,anativeAndroidapp,andanativeiOSapp.Thiswasthecompany’sfirstmobileprojectandacompletelynewtestingenvironmentforthequalityassurancedepartment.Togetherwithacolleague,Ihadthechancetobuildamobiletestingstrategyfromscratch.Weevaluatedseveraltestautomationtoolstoseewhichonefitbestinoursoftwaredevelopmentlifecycle.Atthattime,mobiletestingtoolswerefewandfarbetween,andataveryearlydevelopmentstage.Wethentriedseveraltestingapproachesandtools.Ofcoursewefailedwithsomeofthem,butintheendthewholeteam,thecompany,andourcustomerswerehappy.AnotherreasonwhyIwrotethisbookwasbecauseofmyblog,

www.adventuresinqa.com.Istartedbloggingin2011aftergivingapresentationattheAgileTestingDaysinPotsdam,Germany.Thiswasmyfirsttalkatamajortestingconference,andIwastheonlyspeakerontheagendawhospokeaboutmobiletesting.AftermypresentationIwasverybusyfortherestoftheconferenceasalotofpeopleapproachedmetoaskaboutmobiletesting,theapproachesIuse,whatkindoftoolsIuse,andsoforth.Thehugeinterestinand

Page 14: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

thelackofknowledgeaboutmobiletestingconvincedmetostartwritingablog.Thegoalwastosharemyknowledgeofmobiletestingandtoexchangeviewsandideaswithothermobiletesters,whilealsoimprovingmywrittenEnglishskills.SofarI’vewrittenabout90postscoveringmobileappsandtesting,andIneverexpectedsomanypeoplefromaroundtheworldtotakeaninterestinmyblog.ThefeedbackI’vegottensofarhasbeengreat,anditconvincedmetotakethenextstep.Thatstepiswhatyou’rereading:abookaboutmobiletestingthatcapturesmy

practicalexperienceandknowledgeforanyoneinvolvedinthemobilebusiness.Ihopeyouenjoyreadingthisbookandcanlearnsomethingnewaboutthemobiletestingbusiness.

WhoShouldReadThisBook?Thisbookisaimedatanyonewhoisinterestedinmobileappsandmobiletesting,rangingfromjuniortoexpertmobiletesterswhoarealreadyinvolvedinmobiledevelopmentteams.Thisbookisalsoidealforsoftwaretestmanagerswhoneedtomanagemobile

testingteamsortoselectamobileteststrategy.It’salsogreatforsoftwaretesterswhoarenewtothistopicandwanttoswitchtomobiletechnologies.Softwaredeveloperswhowanttoknowmoreaboutmobiletestingandtesting

theirmobileappshavealsocometotherightplace.Thisbookisalsointendedforproductmanagerslookingtogainfurther

insightsintothechallengingjobofmobiletesting.

TopicsCoveredinThisBookThisbookcontainsthefollowingchapters:

•Chapter1:What’sSpecialaboutMobileTesting?Thefirstchapterfocusesonthespecialcharacteristicsofmobiletesting.Itprovidesanintroductiontomobileuserexpectations,mobiledatanetworks,mobiledevices,andwhymobiletestingissoftwaretesting.•Chapter2:IntroductiontoMobileDevicesandAppsChapter2introducesmobiledatanetworksandwhatisimportanttoknowaboutthem.Thechapteralsodescribesthemobiledeviceevolutionfromdumbphonestothecurrentsmartphones.Furthermore,thischapterintroducesthedifferenttypesofappsandpossibleappbusinessmodels.•Chapter3:ChallengesinMobileTestingChapter3isallaboutmobile

Page 15: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

testingchallengesandhowtohandlethem.Therearechallengessuchasthecustomer,devicefragmentation,sensorsandinterfaces,systemapps,andmobilebrowsers.Eachsectionofthechapterprovidessolutionsforhandlingthosechallengesinyourdailybusinessasamobiletester.•Chapter4:HowtoTestMobileAppsChapter4isallabouthowtotestmobileapplications.Thischapterexplainsthedifferencesamongemulators,simulators,andrealdevices.Italsoexplainswheretotestamobileapp.Furthermore,thischapterprovidesseveralfunctionalandnonfunctionalapproachestotestingamobileapp.Inaddition,thischapterpresentsmobiletestingmindmaps,mnemonics,andcheckliststoimproveyourmobiletestingefforts.•Chapter5:MobileTestAutomationandToolsChapter5coversthetopicofmobiletestautomation,whichisaveryimportantone.Thechapterintroducesthedifferenttestautomationtooltypesandapproaches.Itprovidesideasforhowtoselecttherightmobiletestautomationtoolforyourtestenvironment.Additionally,thechapterprovidesanoverviewofthecurrentstateofmobiletestautomationtoolsforAndroidandiOS.•Chapter6:AdditionalMobileTestingMethodsChapter6providesanoverviewofadditionalmobiletestingmethodssuchascrowdandcloudtesting.Bothmethodsareexplained,includingtheprosandconsandwhereitmakessensetousetheminyourmobiletestingapproach.•Chapter7:MobileTestandLaunchStrategiesChapter7dealswiththetopicofmobiletestandlaunchstrategies.Itisveryimportantfordevelopersofmobileappstohavebothinplaceinordertodevelop,test,andlaunchamobileappwithhighquality.Thischapterprovideslotsofideasaboutandexamplesofhowtoestablishmobiletestandlaunchstrategies.•Chapter8:ImportantSkillsforMobileTestersChapter8describestherequiredskillsetofamobiletester.Furthermore,thechapterprovidesideasandsolutionsonhowtoimprovetheskillsofamobiletester.•Chapter9:What’sNext?AndFinalThoughtsChapter9isthefinalchapterofthisbookanddealswithpossibletopicsthatsoftwaretestersmayhavetohandleinthenearfuture.ThechaptercontainstopicssuchastheInternetofThings,connectedhomes,connectedcars,andwearables.Attheend,fivekeysuccessfactorsareprovided.

Eachchapterfocusesonthepracticalsideofmobiletesting.Sure,therewillbesometheoreticalparts,butmostofthecontentisbasedonreal-lifeexperience

Page 16: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

asamobiletester.

HowtoUseThisBookThisbookisapracticalguidetomobiletesting.Youcanreaditfromfronttobacktogetanoverviewofmobiletesting,oryoucanjumpstraighttothechaptersyou’remostinterestedin.There’soneimportantpieceofadviceyoushouldbearinmindwhilereadingthisbook:makesureyouhaveatleastonemobiledevicenexttoyousoyoucantryoutthethingsyouread.Ifyouwanttogetstartedwiththetestautomationtoolsmentionedinthis

book,nowwouldbeagoodtimetogetyourcomputer.

Page 17: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Acknowledgments

ThankstoTobiasGeyerforbeingmydedicatedreviewer.Withoutyourcontribution,encouragement,help,feedback,andcriticalquestionsthisbookwouldnothavebecomewhatitis.ThankstoDominikDaryforyourawesomefeedbackonmobiletest

automationandhelpingmeshapethecontentofseveralchaptersinthisbook.ThankstoRudolfGrötzforyourgreatideasaboutseveralgraphicsand

images.Thankyouverymuchforyourhelpandcontributiontothecrowdandcloudtestingchapter.ThankstoDagmarMatheswhogavemetheopportunitytobepartofthe

mobiletestingbusiness.Thanksforyourtrust,support,andencouragement.ThankstoSergejMudrukandChristophWielgusforyoursupportinreading

mybookandprovidingmewithveryusefulfeedback.ThankstoAndrewRennisonforbeingmygreatcopyeditor,foryourhelpand

constantcontributiontomytext.Andlastbutnotleast,Iwanttosaythankyoutoallsoftwaretestersoutthere

forsharingyourknowledgeofvarioussoftwaretestingandmobiletestingtopics.Thanksforyourcontributiontothecommunityandallofthetimeandeffortyouputin.

Page 18: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AbouttheAuthor

DanielKnotthasbeenworkinginthefieldofsoftwaredevelopmentandsoftwaretestingsince2003.HestartedhiscareerasatraineeatIBMwherehewasinvolvedinenterprisesoftwaredevelopmentandtesting.AfterhistimeatIBM,DanielstudiedcomputerscienceattheUniversityof

AppliedSciencesinWiesbaden,Germany.Softwaretestingbecameapassionduringhistimeatuniversityandisthereasonhechoseacareerinthefield.DanielhasworkedatseveralcompaniesinvariousindustrieswherehewasresponsiblefortestingWeb,desktop,andmobileapplications.DuringanumberofprojectshedevelopedfullyautomatedtestingframeworksforAndroid,iOS,andWebapplications.Danielisawell-knownmobileexpert,aspeakeratvariousconferencesinEurope,andablogauthor(www.adventuresinqa.com).Furthermore,Danielisthefounderandorganizeroftwolocalsoftwaretesting

usergroupsincentralGermany.OneistheSoftwareTestUserGroupRheinMain(www.stugrm.de)andtheotheristheRheinMainMobileQualityCrew(www.meetup.com/Rhein-Main-Mobile-Quality-Crew).

Page 19: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter1.What’sSpecialaboutMobileTesting?

BeforeIstartdescribingtheuniqueaspectsofmobiletesting,I’dliketoshareatruestorywithyou.What’sspecialaboutmobiletesting?Someoneaskedmethisexactquestion

severalyearsagowhileatatestingconference.Istartedtalkingaboutmobiletechnologies,apps,howtotestthem,andwhat’sspecialaboutmobiletesting.Theguysimplysmiledatmeandsaid,“Butit’ssoftwarejustonasmallerscreen.There’snothingspecialaboutit.”Hewasreallyarrogantanddidn’tseethechallengespresentedbymobiletesting.NomatterwhichargumentsIusedtoconvincehim,hedidn’tbelieveintheimportanceofmobiletechnologies,apps,andtesting.Imetthesameguyagainin2014whileatatestingconferencewherehe

talkedaboutmobiletesting.Hespokeabouttheimportanceofappsandhowimportantitistotestthem.Asyoucansee,it’sveryeasytounderestimatenewtechnologies.Asa

softwaretesterit’sespeciallyhelpfultobecuriousaboutlearningsomethingnewandexploringnewtechnologiestobroadenyourskills.Solet’scomebacktotheinitialquestion:What’sspecialaboutmobiletesting?

IthinkIcanassumeyouhaveatleastonemobiledevice,namely,asmartphone.Ormaybeyouhaveatablet,orevenboth.Ifyoulookatyourdevice(s),whatdoyousee?Justasmallcomputerwithlittleshinyiconsonitsscreen?Ordoyouseeaverypersonalcomputerwithlotsofsensorsandinputoptionsthatcontainsallofyourprivatedata?Pleasetakeaminutetothinkaboutthat.Mysmartphoneandtabletareverypersonalcomputersthatholdalmostallof

mydata,beite-mails,SMS,photos,music,videos,andthelike.IcanaccessmydatanomatterwhereIamandusemysmartphoneasanavigationandinformationsystemtofindoutmoreaboutmysurroundings.ForthatreasonIexpectmyappstobereliable,fast,andeasytouse.InthosethreesentencesIdescribedmypersonalexpectationsofmobile

devicesandapps.Butyoumayhaveentirelydifferentexpectations,asdoesthenextperson.Andthisbringsmetothefirstspecialcharacteristicoruniqueaspectofmobiletesting:userexpectations.

UserExpectationsInmyopinion,theuserofanappisthemainfocusandmainchallengefor

Page 20: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

mobileteams.Thefactthateveryuserhasuniqueexpectationsmakesitdifficulttodevelopanddeliverthe“right”apptocustomers.Asseveralreportsandsurveyshaveshown,mobileusershavefarhigherexpectationsofmobileappsthanofothersoftwaresuchasbrowserapplications.1Themajorityofreportsandsurveysstatethatnearly80%ofusersdeleteanappafterusingitforthefirsttime!Thetopfourreasonsfordeletionarealwaysbaddesign,poorusability,slowloadingtime,andcrashesimmediatelyafterinstallation.Nearly60%ofuserswilldeleteanappthatrequiresregistration,andmorethanhalfofusersexpectanapptolaunchinundertwoseconds.Iftheapptakesmoretime,itgetsdeleted.Again,morethanhalfofusersexperiencecrashestheveryfirsttimetheystartanapp.Anaverageusercheckshisorhermobiledeviceeverysixminutesandhasaround40appsinstalled.Basedonthosenumbers,youcandeducethatmobileusershavereallyhighexpectationswhenitcomestousability,performance,andreliability.Thosethreecharacteristicswerementionedmostoftenbyfarwhenuserswereaskedabouttheirexperiencewithmobileapps.

1.http://offers2.compuware.com/rs/compuware/images/Mobile_App_Survey_Report.pdf

Currentlytherearemorethantwomillionappsavailableintheappstoresofthebiggestvendors.Alotofappsperformthesametask,meaningthatthere’salwaysatleastonecompetitorapp,whichmakesitveryeasyforconsumerstodownloadadifferentappasit’sjustasingletapaway.Herearesomepointsyoushouldkeepinmindwhendevelopingandtestingamobileapp:

•Gatherinformationaboutyourpossibletargetcustomergroup.•Askyourcustomersabouttheirneeds.•Yourappneedstosolveaproblemfortheuser.•Usabilityisreallyimportant.•Yourappneedstobereliableandrobust.•Appperformanceisreallyimportant.•Appsneedtobebeautiful.

Thereare,ofcourse,aplethoraofotherthingsyoushouldtakeintoaccount,butifyoupayattentiontothesepoints,yourusersarelikelytobehappy.You’veprobablyalreadyheardoftheKISSprinciple.2KISSisanacronymfor

KeepItSimple,Stupidandisalwaysausefulreminder—especiallyforsoftwareprojects—tonotinflatethesoftwarewithjustanotherfunctionoroption.Keepingitsmall,easy,andsimpleisbestinmostcasesandislikelytomakeyourcustomershappy.InspiredbyKISS,Icameupwithmyownprinciplefor

Page 21: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

mobileapps:KIFSU(seeFigure1.1).Thisabbreviationisagoodmnemonictohelpyoucovercustomerneedsandaconstantremindernottoinflateappswithuselessfunctions.

2.http://people.apache.org/~fhanik/kiss.html

Figure1.1KIFSU

MobilityandDataNetworksAnotherchallengemobileappshavetodealwithmorethansoftwarerunningoncomputersisthefactthatusersaremovingaroundwhiletheyuseapps,whichoftenrequiresanInternetconnectiontofetchdatafromthebackendandservetheuserwithupdatesandinformation.Mobileappsneedtobetestedinreallife,inrealenvironmentswherethe

potentialuserwillusethem.Forexample,ifyou’retestinganappforsnowboardersandskiersthataccessesslopeinformation,onethatisabletorecordthespeedofthecurrentdownhillrunandmakesitpossibleforuserstosharerecordsdirectlywiththeirfriends,youneedtotestthesefunctionsonaslope.Otherwiseyoucan’tguaranteethateveryfeaturewillworkasexpected.Ofcourse,therearepartsofanappthatyoucantestinalabsituation,suchas

slopeinformationavailabilityorwhetherornottheappcanbeinstalled,butwhataboutrecordingaperson’sspeed,theweatherconditions,ortheInternetconnectionatthetopofamountain?Theweatherconditionsonamountain,inparticular,canbeverydifficultto

handleastheycan,ofcourse,rangefromsunshinetoasnowstorm.Insuchscenariosyouwillprobablyfindlotsofbugsregardingtheusabilityanddesignofanapp.Maybeyou’llalsofindsomefunctionalbugsduetothetemperature,whichmayhaveanimpactonyourhardwareand,inturn,yourapp.AsIalreadymentioned,thespeedandavailabilityofInternetconnections

couldvaryinsuchregions.Youwillprobablyhaveagoodnetworkconnectionwithhighspeedatthetopofthemountainandareallypooronedowninthe

Page 22: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

valley.WhathappensifyouhaveabadornoInternetconnectionwhileusingtheapp?Willitcrashorwillitstillwork?Whathappensifthemobiledevicechangesnetworkproviderswhiletheappisbeingused?(Thisisacommonscenariowhenusingappsclosetoaninternationalborder,suchaswhensnowboardingintheAlps.)Allofthesequestionsareveryhardtoanswerwhentestinganappinalab.

Youasamobiletesterneedtobemobileandconnectedtodatanetworkswhiletestingapps.Asyoucansee,it’simportanttotestyourappinreal-lifeenvironmentsandto

carryouttestsindatanetworkswithdifferentbandwidthsasthebandwidthcanhaveahugeimpactonyourapp;forexample,lowbandwidthcancauseunexpectederrormessages,andtheswitchbetweenhighandlowbandwidthcancauseperformanceissuesorfreezes.Here’sanexerciseforyou.Takeanyappyouwantandfindthreeusage

scenarioswheretheenvironmentand/ornetworkconnectioncouldcauseproblems.

MobileDevicesBeforeyoucontinuereading,pickupyourmobiledeviceandlookatit.Takeyourdeviceinyourhandandlookateverysideofitwithoutturningiton.Whatdoyousee?Youwillmostlikelyseeadevicewithatouch-sensitivescreen,adevicewith

severalhardwarebuttonswithacharger,aheadphoneconnection,andacamera.That’sprobablyit—you’renotlikelytohavemorethanfivehardwarebuttons(exceptforsmartphoneswithaphysicalkeyboard).Inanerawhenthewordscellphonehavebecomesynonymouswith

smartphone,it’simportanttorememberthatthereusedtobeothertypesofcellphones,so-calleddumbphonesandfeaturephonesthathavelotsmorehardwarebuttonsformakingacallortypingamessage.Withaconventionaldumbphoneyouareonlyabletomakeacall,typeamessage,orstoreacontactlist;they’renotusuallyconnectedtotheInternet.Themoreadvancedones,thefeaturephones,havegames,acalendar,oraverybasicWebbrowserwiththeoptiontoconnecttotheInternet.Butallthesephonesarereallybasicintermsoffunctionalityandexpandabilityasusersaren’tabletoinstallappsoreasilyupdatethesoftwaretoanewerversion,ifitall.Bothtypesofphonesarestillavailable,especiallyinemergingmarkets,butsince2013moresmartphoneshavebeensoldworldwidethandumbphonesorfeaturephones,3andthistrendis

Page 23: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

likelytocontinueastimegoeson.Infact,inthenextcoupleofyearsdumbphonesandfeaturephoneswillbeathingofthepast.

3.www.gartner.com/newsroom/id/2665715

Thephonesweusenowadaysarecompletelydifferentfromthe“old”ones.Currentsmartphonesareminisupercomputerswithlotsoffunctionalityintermsofhardwareandsoftware.They’repackedwithvarioussensorssuchasbrightness,proximity,acceleration,tilt,andmuchmore.Besidesthat,allmodernsmartphoneshavebothfront-andrear-facingcameras,variouscommunicationinterfacessuchasBluetooth,nearfieldcommunication(NFC),andGlobalPositioningSystem(GPS),aswellasWi-FiandcellularnetworkstoconnecttotheInternet.Dependingonthemobileplatformandmobilemanufacturer,youmayfindanarrayofotherhardwarefeatures.Fromasoftwarepointofview,smartphonesofferlotsofapplication

programminginterfaces(APIs)formanufacturers,developers,anduserstoextendsmartphonecapabilitieswithapps.Ifyoujustfocusonthemajormobileplatforms,iOSandAndroid,thereare

plentyofhardwareandsoftwarecombinationsthatmobiletestershavetodealwith.Thefactthattherearesomanycombinationsisknownasfragmentation.Mobiledevicefragmentationisahugetopicandyetanotherchallengewhenitcomestomobiletesting.Youcan’ttestyourappwitheverypossiblehardwareandsoftware

combination.Andthefactthatyoushouldtestyourappinarealenvironmentmakesitevenmoreimpossible.Mobiletestersneedtofindastrategytodownsizetheeffortoftestingondifferentdevicesandtofindawaytotestontherightdevices.Buthowcanthatbeaccomplished?Bytestingonjustonemobileplatform?

Bytestingonjustthelatestdevice?Bytestingwithjustthelatestsoftwareversion?Beforeyoudefineastrategy,youshouldkeepinmindthateveryappis

unique,hasuniquerequirements,hasotherproblemstosolve,andhasauniqueuserbase.Withthesepointsinmind,youcanaskyourselfthefollowingquestionstofindthe“right”mobiledevicesfortesting:

•Whoismyuserbase?•Howoldistheaverageuser?•Howmanymenorwomenareinmytargetusergroup?•Whichplatformisusedmostamongthatuserbase?

Page 24: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Whichdeviceisusedmost?•Whichsoftwareversionisinstalledonmostofthephones?•Whatkindofsensorsdoesmyappuse?•Howdoestheappcommunicatewiththeoutsideworld?•Whatismyapp’smainusecase?

Ofcourse,therearelotsmorequestionstoask,butifyouanswermostoftheonesIsuggest,thelistofpossibledevicesyoushouldconsidertestingismuchshorter.InlaterchaptersIwilldescribeothertechniquesforselectingtherightdevices

formobiletesting.

MobileReleaseCyclesNowthatyouknowhowtofindtherightdevicesfortestingyourapp,itdoesn’tmeanthattheprocessisover.Tobehonest,it’snevergoingtoend!Themainmobilemanufacturersreleaseanewflagshipphonewithmore

featureseveryyear.Inandaroundthosereleasestheybringoutotherphonesfordifferentuserscenariosandusergroups.ThisisespeciallytrueintheAndroidworldwhereeverynewphonecomeswithanewversionoftheoperatingsystempackedwithnewfeatures,designs,orAPIs.Therearemultiplesoftwarereleaseswithinthecourseofayear,rangingfrombugfixestofeaturereleases.Youasamobiletesterneedtobesurethatyourappwillrunonthelatesthardwareandsoftware.Buthowshouldyouhandlethesesituations?Bybuyingeveryphonethat

appearsonthemarket?Byconstantlyupdatingtothelatestoperatingsystemversion?Again,themostimportantfactorsareyourtargetcustomergroupandtheapp

you’retesting.Whenyouknowthatyourtargetgroupalwaysusesthelatestandfastestphonesonthemarket,youneedtobuythosephonesassoonastheyappear.Regardlessofwhetherornotyourtargetgroupisup-to-date,youshouldalwaysmonitorthemobilemarket.Youneedtoknowwhenthemainvendorsareduetoreleasenewflagship

phonesthatalotofpeoplearelikelytobuy.Youalsoneedtoknowwhentheoperatingsystemsreceivepatches,newfeatures,ornewdesignpatterns.Sotheanswertothequestionofwhetheryouneedtobuyeveryphoneand

constantlyupdatetheoperatingsystemsisyesandno.Ofcourseyoudon’tneedtobuyeveryphonethat’sonthemarket,butyoushouldconsiderupdatingtothe

Page 25: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

latestoperatingsystemversion.Whendoingso,keepinmindthatnoteveryuserwillinstalltheupdate.Manypeopledon’tknowhowtodothat,ortheydon’tcareaboutnewversions.Youneedatleastsomephonesthatarerunningolderversionsoftheoperatingsystemtoseehowtheappreactsinthatenvironment.Olderversionsoftheoperatingsystemarealsoneededtoreproducereportedproblemsandbugs.Agoodwaytomanageallthisistostickwiththesameoperatingsystem

versiononthephonesthatyouhaveandbuynewphoneswiththelatestsoftwareversion.Thisofcourseleadstoanotherproblem—it’sreallyexpensive!Noteverymanagerwantstospendsomuchmoneyonmobiledeviceswhenaphoneisgoingtobeusedforonlyacoupleofmonths.Asolutionforthatistorentdevices.ThereareseveralprovidersandOpenDeviceLabswhereyoucanrentadeviceforacertainperiodoftime(alistofproviderscanbefoundinChapter3,“ChallengesinMobileTesting”).Anotherwaytorentdevicesisthemobiledevicecloudasthereareanumberofproviderswhogivemobiletestersexclusiveaccesstothephysicaldevicestheyhavemadeavailableinthecloud.Justuseyoursearchengineandcheckthemout.InthemobileprojectsI’veworkedon,wealwayshadthetoptento15devices

usedbyourtargetusergroupindifferentvariationsfordevelopingandtesting.Thiswasagoodnumberofdevicesthatcoverednearly90%ofourtargetgroup.Withthosetento15deviceswewereabletofindmostofthecriticalbugs;theremaining10%ofdeviceswedidn’thavewereofnomajorconsequencetotheprojectoruserexpectations.Inordertohandlethefastpaceofmobilereleasecycles,youshouldkeepthe

followingthingsinmind:•Monitorthemobiledeviceandsoftwaremarket.•Knowwhennewphoneswillberolledout.•Findoutaboutthenewfeaturesoftheoperatingsystems.•Keepaneyeonyourtargetcustomergrouptoseeifnewdevicesareshowingupinyourstatistics.•Thinktwicebeforeupdatingaphonetothelatestoperatingsystemversion.•Buynewphoneswiththelatestoperatingsystemversion.•Ifbuyingisnotanoption,rentthedevices.

Updating,buying,andmaintainingallofyourdevicesisachallengingtaskandshouldnotbeunderestimated!Atsomepoint,dependingonthenumberoftestdevicesusedwithinaproject,thiscouldbeafull-timejob.

Page 26: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

MobileTestingIsSoftwareTestingLet’scomebacktothestoryItoldatthebeginningofthischapterwhentheguyattheconferencedidn’tbelieveintheimportanceofmobiletesting.Hehadtheattitudethatmobiletestingisnotrealsoftwaretesting.Inhisopinion,mobileappswereonlysmallprogramswithlessfunctionalityandnorealchallengeswhenitcomestosoftwaretesting.Butthisisdefinitelynotthecase.IfyoulookatthetopicsIdescribedinthischapter,youshouldhaveaninitialimpressionaboutthechallengingjobofamobiletester.MobiletestingistotallydifferentfromtestingsoftwareapplicationssuchasWebordesktopapplications.Withmobileapps,physicaldeviceshavefarmoreinfluenceoverthesoftwarethatisrunningonthemwhencomparedtoothersoftwaresuchasWebapplications.Becausetherearesomanydifferentsmartphonesavailableonthemarket,mobiletestersneedtofocusalotmoreonhardwareduringthetestingprocess.Inaddition,usersmovingaroundandusingdifferentdatanetworksforcemobiletesterstobeonthemovewhiletesting.Besidesthehardware,userexpectationsplayanimportantpartinthedaily

businessofamobiletesterandneedtobetakenseriously.Therearemanymoretopicsandissuesmobiletestersneedtoknowaboutin

ordertohelpthewholeteamreleaseasuccessfulapp.Therestofthechaptersinthisbookwillcoverthefollowingtopics:

•Morechallengesformobiletestersandsolutionstothosechallenges•Howtotestmobileappssystematically•Howtoselecttherightmobiletestautomationtool•Thedifferentconceptsofmobiletestautomationtools•Howtofindtherightmobiletestingstrategy•Additionalmobiletestingmethods•Requiredskillsformobiletesters

Keepthetopicsfromthischapterinmindasastartingpoint.Keepyourappsimpleandfast(rememberKIFSU).Testwhileyou’reonthemove,andtestondifferentdevicesbasedonyourtargetcustomergroup.

SummaryThefirstchapterofthisbookmentionedsomeveryimportanttopicsfromthemobiletestingworld.Asyouhaveseen,mobiletestingiscompletelydifferentfromtestingonothertechnologiessuchaslaptopsordesktopcomputers.Thebiggestdifferencebetweenmobileandothertechnologiesisthatthemobileuser

Page 27: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

isonthemovewhileheorsheisusingyourproduct.Therefore,itisveryimportanttoknowaboutthedifferentdatanetworksandthedifferenttypesofmobiledevices.Thischapteralsoprovidedafirstoverviewofmobileusers’highexpectations.

ItisreallyimportanttokeepKIFSUinmindwhendesigning,developing,andtestingamobileapp.Itwillhelpyoutofocusontheimportantelementsandnotwastetimeonunnecessaryfeaturesthatyouruserswon’tuse.Andlastbutnotleast,thischaptershouldremindyoutoneverunderestimatea

newtechnology.Beopen-mindedandcurioustoimproveyourdailyworklife.

Page 28: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter2.IntroductiontoMobileDevicesandApps

BeforeIdivedeeperintothetestingchapters,I’dliketointroduceyoutothehistoryofmobiledevicesandcellularnetworks.Thismaysoundabitboring,butasyouwillseebytheendofthischapter,it’sreallyimportanttoknowthebackgroundofthemobileworldandtohavethoroughknowledgeofformermobiletechnologies.LaterinthischapterIdescribethedifferentmobileapptypesandtheappbusinessmodelsandprovideyouwithashortoverviewofthecurrentstateofmobileappstores.Let’sstartwiththewordmobile.ItcomesfromtheLatinwordmobilis,which

itselfisderivedfromtheLatinverbmovere,“tomove”—tobeabletomovearoundfreelyandeasilybywalking,driving,orflying.Thisdefinitionsoundsreallysimpleandcomprehensible,andI’msureyou

hadsomethingsimilarinmind.Ifyoulookatthewordmobilefromatechnologicalpointofview,it’snotquiteassimpleduetothevastchangesinthewaypeoplehavebeguntousemobiletechnologiesoverthepastfewdecades.Solet’sgobackafewdecadesintime.

OverviewofMobileNetworksBeforewecancommunicatewithanykindofmobiledevice,acommunicationinfrastructuremustbeavailable.Themobileinfrastructureiscurrentlyinitsfourthgeneration,knownaptlyas4GorLTE(Long-TermEvolution).1Beforethatwesawthegenerations0G,1G,2G,and3G,andeachgenerationwasamilestoneatitstimeofintroduction.

1.www.etsi.org/technologies-clusters/technologies/mobile/long-term-evolution

Thezerogeneration—theearlypredecessors—includedjustanalogradiocommunicationandwasmainlyusedinthe1960s.ItisalsoknownastheMobileRadioTelephoneSystem.Communicationatthistimewashalfduplex,meaningthatonlyonepersonwasabletotalkatatimewhiletheotherlistened.ThezerogenerationconsistedofdifferentmobiletechnologiessuchasMobileTelephoneService(MTS),MobileTelephonySystemD(MTD),AdvancedMobileTelephoneSystem(AMTS),andOffentligLandmobilTelefoni(OLT).Thecellphoneswerereallyheavyandwereinstalledmostlyintrucks,trains,andothervehicles.Thephoneconsistedoftwoparts,thetransceiver(transmitterandreceiver)andthehead.Thetransceiverwasresponsibleforestablishingtheconnectiontothelocaltransmitterstations,andtheheadwas

Page 29: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

wiredtothetransceiverandconsistedofdialkeys,adisplay,andahandset.Thisgenerationhadalotofproblemswithconnectivityandhadlimitednumbersofsubscribers.Thefirst-generation(1G)cellularnetworkwasanimprovementoverthezero

generationandwasintroducedinthe1980s.1GstillusedanalogradiosignalstotransmitinformationusingtheAdvancedMobilePhoneService(AMPS)orNordicMobileTelephone(NMT)technology.ThefirstnetworkswerelaunchedinJapan,followedbyDenmark,Finland,Norway,Sweden,andtheUnitedStates.Acoupleofyearslaterothercountriesbuiltuptheir1Gnetworkinfrastructure.Thebiggestadvantageoverthezerogenerationwasthat1Gwasabletoaccommodateuptotentimesmoreusersbydividingthelocalareaintosmallercells.Thisgenerationhaditsdrawbackswhenitcametosecurityasuserswereabletolistentosomeoneelse’sconversationandhackthesystemtomakefreecalls.Thebiggestimprovementinmobilecommunicationnetworkswasintroduced

withthesecondgenerationofcellularnetworks.2Gwasfirstlaunchedin1991inFinlandusingtheGSM(GlobalSystemforMobileCommunications)standard.2AcoupleofyearslaterCDMA(CodeDivisionMultipleAccess)waslaunchedintheUnitedStates.3Thesenewstandardsformedthebasisoftoday’smobilecommunicationinfrastructureandofferedthreemainadvantagesovertheirpredecessors:

2.www.etsi.org/technologies-clusters/technologies/mobile/gsm3.www.etsi.org/technologies-clusters/technologies/mobile/w-cdma

•Forthefirsttimeever,communicationwasdigitalandencrypted.•2Gwaswaymoreefficientandprovidedbetterglobalcellphonecoverage.•Dataserviceswereintroduced,themostcommonlyknownonebeingtheSMS.

The2Gnetworkwasbuiltmainlyforvoiceandtextcommunicationandonlyhasslowdatatransmission.Afterthe2Gnetworkswereestablished,mobileservicesusageincreasedanddatatransmissionbecametooslow.Toachievehigherdatatransferrates,the2GnetworkwasextendedwiththeGPRS(GeneralPacketRadioService)4andEDGE(EnhancedDataratesforGlobalEvolution)5standards.GPRSisalsocalled2.5GandEDGE,2.75G.Bothtechnologieshavehigherdatatransferrates(GPRS=56Kbit/supto115Kbit/s,EDGE=upto236Kbit/s)thanthenormal2Gnetworkandarethepredecessorsofthe3Gnetwork.

4.www.etsi.org/index.php/technologies-clusters/technologies/mobile/gprs5.www.etsi.org/index.php/technologies-clusters/technologies/mobile/edge

Page 30: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Thethirdgenerationofmobilenetworks(3G)hasbeenaroundsince2001andisanevolutionoftheexisting2Gnetworks.ThethirdgenerationusestheUMTS(UniversalMobileTelecommunicationsSystem)6andCDMA2000standards.3Goffershigh-speeddatatransferratesupto21Mbit/sdependingontheuser’scurrentlocation.Thishighdatatransferrateallowssmartphone,tablet,orcomputeruserstomakevideocalls,watchmobileTV,andsurftheInternetwhileonthemove.The3Gnetworkswiththeirhigh-speeddatatransferrateshavehadamajorinfluenceonthesuccessofmobiledevicesandapps.

6.www.etsi.org/technologies-clusters/technologies/mobile/umts

Thefourthgenerationofmobilecommunicationnetworksaccommodatedthehugeamountsofdatanowbeingtransferredoverthenetworkbyincreasingdatatransferratesevenfurther.The4Gnetworkisbasicallydividedintotwostandards:WiMAX(WorldwideInteroperabilityforMicrowaveAccess)7andLTE.WiMAXoffersadownloadtransferrateofupto128Mbit/sandanuploadrateofupto56Mbit/s.LTEoffersdownloadratesofupto100Mbit/sandanuploadrateofupto50Mbit/s.Ifbothstandardsarefullyimplemented,thedownloadspeedcanincreaseto1Gbit/s.

7.www.wimaxforum.org/index.htm

Dependingonyournetworkproviderandcountry,yoursmartphoneisconnectedtoeitheraWiMAXorLTEnetwork.Ifyourphonesupports4Gnetworks,youwillseealittleLTEor4Giconinthestatusbarofthephone.Thefifthgenerationofmobilenetworksiscurrentlyunderdevelopment.

Severalresearchgroupshavebeenformedtodescribeanddevelopthenextgenerationofmobilecommunicationandarchitecture.However,thisstandardwillnotbeavailablebefore2020.8

8.http://europa.eu/rapid/press-release_IP-13-159_en.htm

Thiswasahigh-leveloverviewofthetechnologybehindmobilenetworks,buteventhishigh-levelviewisimportantwhenyoustarttestingyourappindifferentnetworksusingdifferentstandards.It’simportanttoknowwhatkindofnetworkstandardsareavailableandwhichnetworkspeedsareprovided.Furtherinformationonhowtotestthedifferentdatanetworkswillbeprovidedinlaterchapters.Ihighlyrecommendthatyouusethisknowledgeinyourdailyapptesting.

MobileDevicesandtheYear2007Priorto2007mostphoneswereso-calledfeaturephones(asdescribedinChapter1,“What’sSpecialaboutMobileTesting?”)whosefunctionalitycould

Page 31: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

notbeextendedwithsoftware(apps).NotallofthemwereabletoconnecttotheInternet,evenwhenthemobilenetworkswereabletohandledatatransmission.AtthattimeNokia,Motorola,BlackBerry(ResearchinMotion),andsomeothermobilemanufacturersdominatedthemobiledevicemarket.Mostofthedeviceshadasmallscreenandaphysicalkeyboardandweregoodjustformakingacallortypingatextmessage.However,thosedeviceswerenofuntousewhentryingtosurftheWeborsearchforcontactswithinthephone.ThesmartphonerevolutionstartedinJanuary2007whenApplelaunchedits

firstiPhone.SteveJobspresentedthefirstgenerationoftheiPhonewiththefollowingsentence:“Today,Appleisgoingtoreinventthephone.”AndSteveJobswasright.Themobiledevicemarkethasofcoursechanged

dramaticallysince2007.Justoneyearlater,GooglepresentedthefirstAndroidsmartphonedevelopedbyHTC,theHTCDream(alsoknownasT-MobileG1).InthefollowingyearslotsofothermanufacturersbuilttheirownAndroidsmartphoneswithdifferentAndroidsoftwareversions.WhenAppleannouncedtheiPhone,onlyGooglewasfastenoughtoadaptand

buildanothermobileplatform.However,MicrosoftandBlackBerry(ResearchinMotion)haveupdatedtheirmobiletechnologiestoclosethegapbetweenthemselvesandAppleandGoogle,butuntilnowtheystillhaven’tmanagedtocatchup.Since2007,smartphoneshaveconstantlybeenimprovedwithnewhardware

andsoftwarefeatures,andsometimesit’shardtofollowallthenewfeaturesthatarerolledoutintothemobilemarket.Youneedtoknowwhat’sinsideasmartphonetogetanoverviewofits

physicalpartsandwhateachofthemdoes.Thisknowledgewillhelpyouunderstandthedevicesyouwanttotest,whichinturnwillhelpyoutestmoreeffectively.Ifyoulookatthemobiledevicenexttoyou,youwillseeasmall,thin,and

flatorcurvedpieceofglass,plastic,ormetal.Allthehardwarethatisneededtobringthislittlethingtolifeispackedintothesmallcaseandisnotseenbytheuser.Butwhat’sinside?Atypicalsmartphoneconsistsofthefollowinghardwarecomponents:•Mainboardorlogicboard•CPU(centralprocessingunit)•GPU(graphicsprocessingunit)•Memory

Page 32: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Differentantennasandinterfaces:•Cellularnetworkchipstoconnectto2G,3G,or4G•Wi-Fi•NFC(nearfieldcommunication)•GPS(GlobalPositioningSystem)•Bluetooth

•Varioussensors(notnecessarilyalloftheonesinthislist):•Ambientlightsensor•Proximitysensor•Accelerationsensor•Gyroscope•Magneticsensor•Pressuresensor•Temperaturesensor•Humiditysensor

•Battery•Vibrationmotor•Slotforadditionalmemorycard•SlotforSIMcard

Herearethepartsyoucanseewhenyouhaveyoursmartphoneinyourhand:•Smartphonecase•Touchscreen•Hardwarebuttons(powerbutton,volumeupanddownbutton,navigationbuttons)•Headphonejack•Speakersandmicrophones•Charger/USBconnector•Frontandrearcameras•Flash

Ifyouwanttogetmoredetailedinformationaboutaspecificphone,justusetheInternetandsearchfor“teardowns”ofthedeviceorcheckoutthedevicemanufacturer’sWebsite.ThehardwareIlistedalsoappliestotabletswithsome

Page 33: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

variations.Asamobiletester,it’sveryimportantthatyouknowallthepossible

componentswithinamobiledevice.Thisknowledgeisneededtoidentifyandnarrowdownproblemsorbugsthatcouldberelatedtothedevicehardwareoryourapp.

TheBigTwoAsmentionedinthepreviouschapter,othermobileplatformssuchasWindowsPhoneandBlackBerryhaveverylittlemarketsharecomparedtoAndroidandiOS.9AsofFebruary2015,marketshareswereasfollows:Android,55.26%;iOS,23.82%;WindowsPhone,2.32%;andBlackBerry,1.66%.Themissing17%includesdevicesrunningSymbian,Series40,andotheroutdatedmobileoperatingsystems.

9.Exactfiguresonmarketsharecanbefoundhere:http://gs.statcounter.com

ImportantThesefigureswillofcoursevarydependingongeographicallocation,butthey’reagoodindicatorofthebigpicture.

SinceBlackBerryandWindowsPhonehaveverylittlemarketshare,I’llfocusonthebigtwofortherestofthechapter:iOSandAndroid.Whatarethedifferencesbetweenthetwooperatingsystems?Whatdothey

haveincommon?Table2.1comparestheoperatingsystemsbasedoncertaincriteria.

Page 34: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Table2.1ComparisonofAndroidandiOS

Asyoucansee,bothplatformshavelotsoftechnologies,functions,andappsincommon,suchasappsforvoicecommands,maps,videochats,e-mail,acalendar,andmuchmore.Butifyoulookatthesourcemodelandprogramminglanguages,you’llnoticethemaindifferences.Partsoftheopen-sourceAndroidoperatingsystemarewritteninCandC++.AndroidappsarewritteninJava.iOSisalsowritteninCandC++andisclosedsource.iOSappsarewritteninObjective-CorSwift.iOSusestheopen-sourceDarwinoperatingsystemasasystembasis,butthefinishediOSversionasweknowitisclosedsource.Anotherobviousdifferencebetweenthetwoisthemanufacturers.Apple

Page 35: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

producesiOSdevicesonitsown,whereasGooglegivesothermanufacturerstheopportunitytobuildtheirownhardwaredevicesbasedontheAndroidoperatingsystem.ThemanufacturersareabletoextendtherawAndroidoperatingsystemandbuildacustomizedAndroidversiontailoredtothehardware.Mobiletestersneedtoknowallaboutthetailoringofthedifferenthardware

manufacturersbecausetheuserinterfacesonAndroidcandifferalotandthereforeinfluencethebehaviorofanapp.ThefragmentationofAndroiddevicesandsoftwareversionsisoneofthemainchallengesthatmobiletestersneedtohandle.However,thereisalsoapureAndroiddeviceavailableonthemarketasGooglecooperateswithsomehardwaremanufacturerstobuildtheirNexusdevices.Last,Iwanttopointoutthedifferencesbetweentheuserinterfaces.Both

platformsprovidetouchinterfacesthathavelotsofgesturesincommonsuchasswiping,tapping,pinch,andzoom,buteachhasitsownUIanddesignpatterns.ForcompleteinstructionschecktheAndroiddesignguide10andtheiOSdesignguide.11Witheachnewversionoftheoperatingsystem,checkthoseguidelinesagain,becausechangesarelikely.Thesepatternsmustbefollowedinordertopublishanapp.Ifyourappdoesn’tfollowtheguidelines,itmaywellberejectedfromtheappstore,whichismorelikelytohappenintheAppleAppStorethanintheAndroidappstores.Togetanoverviewofpossiblereasonswhyanappisrejectedfromanappstore,lookatthe“CommonAppRejections”pageprovidedbyApple.1210.https://developer.android.com/design/index.html11.https://developer.apple.com/design/12.https://developer.apple.com/app-store/review/rejections/

Anothergoodreasontofollowthedesignprinciplesistomakecustomershappybecausetheyknowhowtousetheplatform-specificfeaturessuchasswipingfromlefttorighttoswitchviews,ortopulldowntorefreshthecurrentview.Whenthedevicehasbooted,bothplatformspresentahomescreentotheuser

thatissimilartoacomputerdesktop.WhiletheiOShomescreencontainsonlyrowsofappiconsspreadoverseveralhomescreens,Androidgivestheusertheabilitytocustomizethehomescreenwithappsandwidgets.13Widgetsareabletodisplaymoreinformationonthedesktop,suchascontentfromthee-mailapp,Twitter,ortheweather.Widgetscanberesizedandplacedwherevertheuserwantstohavethem.SinceiOS8,usersareabletoplacewidgetsintheiOSnotificationcenteraswell.

Page 36: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

13.https://developer.android.com/guide/topics/appwidgets/index.html

Bothhomescreenshaveadocksectionatthebottomofthescreentopinthemostimportantappsthatareavailableoneveryhomescreen.Also,bothplatformshaveastatusbarthatisavailableatthetopofthescreenanddisplaysdevice-relevantinformationsuchasthebatterystatus,thenetworkstrength,thecurrenttime,andanynotificationsfrominstalledapps.Again,onAndroidthestatusbarcandisplaymoreinformationsuchasreceivede-mails,messages,phonecalls,orreminderslinkedtoinstalledapps.Ifyou’refamiliarwithonlyoneplatform,youshouldbuyorrentthe

unfamiliaronetolearneverythingaboutit.Youwillneedtoknowasmuchaspossibleaboutthemajorplatformstosucceedinthelongrunasamobiletester.

WhatTypesofAppsExist?Ifyouunlockyourphonetogettothehomescreen,youwillseeyourinstalledapps.Butwhichtypesofappsdoyouhaveinstalled?Aretheynative,hybrid,orWeb-basedapplications?Ifyoujustlookattheappicon,youprobablycan’ttell.Maybeyoucanfindoutbytappingonanappicontoopenit.Let’stryitout.Getyourmobiledevice,unlockit,andopenanappofyour

choice.Whatdoyousee?Isabrowserwindowshown,oristheappvisibleinfull-

screenmode?Ifyouseeabrowserwindow,yourappisaWeb-basedapplication.Butcanyouseethedifferencebetweenahybridandanativeapp?Thatwill

dependonhowwellthehybridappisdevelopedandoptimizedforyourphone.InthefollowingsectionIwilldescribethedifferentmobileapptypesandlist

theprosandconsofeachofthem.

NativeAppsNativeappsareprogrammedwithaspecificprogramminglanguageforthespecificmobileplatform.Forexample,AndroidappsaredevelopedinJava,whereasiOSappsarewritteninObjective-CorSwift.Nativeappshavefullaccesstoallplatform-specificlibrariesandAPIsinordertotakeadvantageofallthefeaturesamodernsmartphonehastooffer.Assumingtheuserhasgrantedthenecessarypermissions,theapphasdirectaccesstothecamera,GPS,andalltheothersensors.DevelopersareabletobuildappsthatmakeuseofsystemresourcessuchastheGPUandCPUtobuildpowerfulapps.Nativeappsgenerallyexhibitexcellentperformanceandareoptimizedformobileplatforms.Inmostcases,nativeappslookandfeelgreatandareabletosupportevery

Page 37: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

possiblegestureonthetouchscreen.Appdistributionisalsoquitesimpleasyoucanuploadyournativeapptothe

appstoresofthedifferentvendorsandstartsellingit.Someappstorevendorshaveanapprovalprocess,meaningthatitcantakesometimeuntilyourappisavailable.Thesameprocessapplieswhenanalreadyreleasedappisupdated,whichcanbeaproblemespeciallywhenyouwanttofixareallyurgentbuginyourapp.

Pros:•Nativeappshavefullaccesstoplatform-specifichardwareandsoftwarefeatures.•Nativeappshavegoodperformancebecausetheyareoptimizedforthespecificmobileplatform.•Nativeappshaveagoodlook-and-feel.•NativeappsoffergoodusabilityiftheplatformUIguidelinesaremet.•Nativeappshavefullaccesstoalltouchgestures(ifimplemented).•Nativeappdistributioniseasy.Userscansearchforyourapp.•Nativeappscanstoredataoffline.

Cons:•Theamountofdevelopmentworkincreaseswitheachsupportedplatformbecauseeachplatformneedsitsowncodebase.•Theapprovalprocesscanbequitelong.•Updatingareleasedappmaytakesometime(whichisannoyingwhenitcomestourgentbugfixes).•Developmentcostscanbehigher.•Youmustshare30%ofyourapprevenueswiththeplatformprovider.

HybridAppsHybridapps,asthenamesuggests,areappsthatconsistofdifferentWebtechnologiessuchasHTMLorJavaScript.OncetheWebparthasbeenbuilt,developersareabletocompilethiscodebasetothedifferentnativeformats:Android,iOS,WindowsPhone,orBlackBerry.TocompiletheWebcodeintonativemobilecode,developersneedtouseahybriddevelopmentframeworksuchasPhoneGap.14SuchframeworksofferAPIstoaccessthedevice-specifichardwarefeatureswithintheWebpartoftheapp.14.http://phonegap.com/

Page 38: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Howdoessuchaframeworkwork?

ImportantThedescriptionhereisaverysimplisticviewofhybridmobileframeworks.

Theframeworkbuildsaso-calledbridgetotheWebcodeviaanHTMLrenderingengine.AsmallpartoftheapprunsonthenativeoperatingsystemandcommunicateswiththeWebcodeintherenderingengineviathebridge.Withtheaidofthisbridge,theWebcodecanaccesssomeofthenativehardwarefeatures.TheHTMLcontentorcomponentsofhybridappscanbehostedonaserver.

Thisapproachmakesitveryeasytomakesmallupdateswithoutupdatingthewholeappthroughtheappstoresubmissionprocess.Storingtheinformationandelementsontheserverhasonebigdrawback;however,thecontentandelementsdon’tworkwhenthephoneisoffline.Thesepartsareavailableonlyifthedeviceisconnectedtoadatanetwork.However,youcanputallthecontentandelementsintotheappforfullofflinesupport,butthensmallonlineupdatesarenolongerpossible.Ifyourteamisdevelopingahybridapp,keepthosepointsinmind.

Pros:•Thereisonecodebasefordifferentmobileplatforms.•Frameworksofferaccesstohardwarefeatures.•Smallupdatescanbeperformedontheserver.•Appdistributioniseasy.•Userscansearchforyourapp.

Cons:•Performanceisbadwhenthecontentandcomponentsareaccessedfromtheserver.•Meetingthedesignguidelinesofthedifferentmobileplatformsisnoteasy.•Platform-specificfeaturescan’tbedeveloped,becausetheymaynotbeavailableontheotherplatforms.•Theapprovalprocessmaybelong.

Anicecomparisonofdifferentmobiledevelopmentframeworkscanbefound

Page 39: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

onthe“MobileFrameworksComparisonChart”Website.1515.http://mobile-frameworks-comparison-chart.com/

WebAppsAmobileWebappisaWebsitethatcanbeaccessedfromthedevice’sWebbrowser.SuchWebsitesareoptimizedformobilebrowserusageandareindependentofthemobileplatform.MobileWebappsaredevelopedwithWebtechnologiessuchasHTMLandJavaScript,particularlywithHTML5,16CSS3,andJavaScript.1716.http://dev.w3.org/html5/html-author/17.www.w3.org/Style/CSS/

HTML5offersdevelopersthecapabilitytoimplementmobileWebsiteswithanimatedandinteractiveelements.Theycanintegrateaudioorvideofilesandusepositioningfeaturesaswellassomelocalstoragefunctionality.TheuseofHTML5,CSS3,andJavaScriptmakesiteasytodevelopmobileWebapps.Furthermore,mobileWebappsrequirenoappstoreapprovalandcanbeeasilyandquicklyupdated.However,mobileWebappshavesomedrawbacks.Forexample,theyoffer

onlyverylimitedtonoaccesstothedevicehardwarefeaturessuchasproximityoraccelerationsensors.MobileWebappshavenoaccesstothecamera,compass,microphone,oranykindofnotifications.Theytendtobeslowerthannativeorhybridappsbecausetheyneedtodownloadalltheinformationthatisshownonthescreen.Dependingonthemobilebrowser,mobileWebappscanworkandbehave

differentlybecausenotallmobilebrowserssupportthefullstandardsofHTML5,CSS3,andJavaScript.ThiscanhaveamajorinfluenceonthemobileWebapp,meaningthatdifferentmobileWebbrowsersneedtobecoveredduringthetestingprocess.Tosummarize,Webappshavethefollowingadvantagesanddisadvantages:

Pros:•Populartechnologiesareusedfordevelopment.•Webappsarefasterandcheapertoimplementthannativeandhybridapps.•Theyaremobileplatformindependent.•ThereiseasyaccesstothemviaaWebbrowser(noinstallationrequired).

Page 40: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Noappstoresubmissionisrequired.•Theupdatingprocessisfastandeasy.

Cons:•Thereislimitedaccesstohardwarefeatures.•Thereislimitedofflinebehavior.•Largemediafilessuchasimagesorvideoscantakealongtimetodownload.•TheyhavedifferentWebbrowsersupportfortheHTML5,CSS3,andJavaScriptstandards.•Theyarenotasconvenienttouseasnativeapps.•Thereislimitedusageoftouchgestures.•Userscan’tfindtheappintheappstores.

BusinessModelsofMobileAppsWhere’sthemoneyinmobileapps?Andhowcanyoutesttomakesuremoneyisbeingearned?Thesetwoquestionsareimportantwhendevelopingandtestinganapp.Nearlyeveryappdeveloperandcompanywantstomakemoneyfromin-apppurchases!Youthereforeneedtotestthepaymentmodelstobesurethatthemobileapp

isgeneratingrevenues,whichinturnmeansthatyouneedtobeawareofcurrentbusinessmodels:

•Freemium•Paid•Transaction

FreemiumThefreemiummodelisdesignedtoreachasmanyusersaspossible.Oncetheappisinstalled,thereareseveralwaystogeneraterevenuesoutof

thefreeapp:•Themostwidelyusedapproachisthefreeversionoftheapp.Thefreeversionislimited,suchasintermsoffunctionalityorcontent.Ifauserwantstohavefullfunctionality,heorshecandownloadtheenhanced(paid)versionoftheapp.Thisapproachisthemostwidelyusedfreemiumappmodel.

Page 41: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Thesecondmostusedapproachforgeneratingrevenuesissellingadvertisementswithintheapp.Therearedifferentkindsofadvertisementformatsthatcanbeaddedtoanappinordertogeneraterevenues.Advertisementsarepartofnearlyeveryfreeappandcanoftenbereallyannoyingandfrustratingfortheuser.Thinkverycarefullybeforeaddingadstoanappasyouruntheriskoflosingcustomers.DeveloperscanimplementadframeworkssuchasAdMob18oriAd.19

18.www.google.com/ads/admob/19.http://advertising.apple.com/

•Thethirdapproachforgeneratingrevenuesisthe“in-apppurchase.”Thisisoftenusedwithingamingappswherenewlevelsormoretoolscanbeboughttohavemorefunwiththegame.Lotsofnewspaperappsalsoofferin-apppurchasestogetthelatestversionoftheirdailynews.Someappscanbecomeadfreeiftheuserpaysforit.

PaidThepaidbusinessmodelisquitesimple:beforeuserscandownloadtheapp,theyhavetopayforit.ThisisacommonusecaseforgamingappsorappsthatfulfillaspecialtasksuchasapplyingfilterstoimagestomakethemlooklikePolaroids.

TransactionInthetransactionbusinessmodeltheuserpaysonlyaftercompletingatransactionwiththeapp.AnexampleofatransactionalappisGoogleWallet,whereusersareabletosendmoneytoanotheraccountusingtheircreditordebitcard.20Oncethetransactioniscomplete,asmallfeeispaidthatdependsonthetransactionamount.20.www.google.com/wallet/

ChoosingaBusinessModelResearchcarriedoutbyGartnershowsthatfreemiumappscontainingin-apppurchasesaredownloadedthemost(approximately90%)fromtheappstores,whereaspaidappsaredownloadedfarlessfrequently.21Developersthereforeneedtoputsomethoughtintotheirapp’sbusinessmodelandprice.21.www.gartner.com/newsroom/id/2592315

Whenchoosingabusinessmodelforyourapp,makesureyoukeepthedifferentapptypesinmind.Noteverymodelcanbeappliedtoeveryapptype.

Page 42: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Forexample,ifyouwanttodevelopapaidmobileWebapp,yourappneedsalogintoidentifytheuser’ssubscriptionsoastogainaccesstothepaidcontent.Theloginfunctionmaynotbenecessarywithinanativeorhybridappbecausepaymentismadewithintheappstore.

AppStoresAppstoresformthecoreofthemobileworldwhereappscanbedownloadedandreviewed.Withouttheappstores,smartphoneswouldn’tbeasintelligentandfunctionalaswewantthemtobe.Atthetimeofwriting,theappstoresofthebiggestmobileplatforms—Google22andApple23—containmorethantwomillionapps.Sofarmorethan100billionappdownloadshavebeencounted.Thesearehugenumbersthatareboundtoincreaseinthefuture.22.GooglePlaystore,https://play.google.com/store23.AppleAppStore,https://itunes.apple.com/us/genre/ios/id36?mt=8

BesidesthebigtwoappstoresfromAppleandGoogle,thereareotherstoressponsoredbydevicemanufacturersandnetworkoperators.Thefollowinglistisnotcompletebutcontainssomeotherappstoresforthedifferentmobileplatforms:

•Amazon•AT&T•ChinaMobile•Mozilla•Samsung•T-Mobile•Vodafone

Butwhyaretheresomanydifferentstores?EspeciallyintheAndroidworldthereismorethanoneappstoreavailable,suchastheAmazon24andSamsung25stores.Theanswertothisquestionissimple:everyappstoreproviderwantstomakemoneyoutofthemobileappbusiness!24.www.amazon.com/mobile-apps/b?node=235014901125.http://apps.samsung.com/

Let’staketheSamsungstoreasanexample.SincethelaunchofitsGalaxydeviceseries,SamsunghasgrowntobecomeoneofthebiggestandmostsuccessfulAndroiddevicemanufacturersandhassoldandcontinuestosellmillionsofdevicesaroundtheworld.HavingitsownappstorepreinstalledoneverySamsungphoneisahugeadvantagebecauseitdirectspotentialmobile

Page 43: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

appcustomersstraighttoSamsungandawayfromGoogle.Ifmillionsofusersusethisstore,thestoregeneratestraffic,whichmeansitcansellads.Ontopofthat,appsalesviatheappstoreallowSamsungtogenerateadditionalrevenues.Inmostoftheappstores,30%ofthesalepricegoestotheplatformprovider,andthesameappliestoin-apppurchases.Ithinkthisisindicativeofwhytherearesomanydifferentmobileappstores.

IfyousearchtheInternet,I’msureyou’llfindevenmoreofthem.Theothermobileplatformsalsohaveappstores.BlackBerryappscanbe

downloadedfromtheofficialBlackBerryWorld,26andWindowsPhoneappscanbedownloadedfromtheMicrosoftStore.2726.BlackBerryWorld,http://appworld.blackberry.com/webstore/?

d=android&o=m&countrycode=US&lang=en27.MicrosoftStore,www.windowsphone.com/en-us/store

Beforeamobileteamdistributesanappinthebiggeststores,theyshouldthinkaboutthegoalsoftheapp.Maybethereareotherstoresthatarebettersuitedtotheirappthanthebigplayers.Forexample,somestoresofferabetterrevenuesharethantheusual70%(developerrevenues)/30%(storeproviderrevenues)split,ortheyofferbetterapptargeting,forexample,indifferentmarketssuchasAfricaorAsia.However,uploadinganapptooneofthestoresrequiresonethinginparticular

—knowledgeofthestore’sreviewandpublishingprocess.Yourappneedstofulfillthereviewandpublishingguidelinesofthevariousvendorsandappstores;otherwiseyourappisverylikelytoberejected.Knowledgeofthedifferentreviewguidelineswillallowyoutobettersupport

yourteamwhiledevelopingandreleasingyourapp.ThereviewandpublishingguidelinesofthemajormobileappstorescanbefoundonthefollowingWebsites:

•AmazonAppstoreGuidelines(https://developer.amazon.com/help/faq.html)•AppleAppStoreGuidelines(https://developer.apple.com/app-store/review/)•BlackBerryWorldGuidelines(http://developer.blackberry.com/blackberryworld/vp_checklist.html)•GooglePlaystoreGuidelines(http://developer.android.com/distribute/googleplay/publish/preparing.html)•SamsungAppStoreGuidelines

Page 44: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

(http://developer.samsung.com/distribute/app-submission-guide)•WindowsPhoneStoreGuidelines(http://msdn.microsoft.com/en-us/library/windows/apps/br230835.aspx)

SummaryChapter2coveredtheevolutionofmobiledatanetworksandmobiledevices.Itisveryimportanttoknowthedifferencesamongthedatanetworks,theirspeed,andtheirtechnologies.Thisknowledgeisrequiredwhentestingamobileappwhileyouareonthemove.Besidesthedatanetworks,knowledgeaboutmobiledevicesandtheir

evolutionisalsoveryimportant.Amobiletestermustknowallthehardwareandsoftwarecomponentsofamodernsmartphoneinordertotestmobileappsinvarioussituationsandwithdifferenthardwareandsoftwarecombinations.InalatersectionofthischapterIexplainedthedifferentapptypesthatare

currentlyavailableonthemarket.Thedifferencesamonganative,hybrid,andWebappaswellastheirprosandconsshouldbeclearbynow.Thedifferentbusinessmodelsformobileappswereexplained.Theclosing

sectionofthischapterdealtwiththedifferentmobileappstoresthatareavailableforeachplatformandwhatisimportanttoknowaboutthem.

Page 45: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter3.ChallengesinMobileTesting

InChapter1,“What’sSpecialaboutMobileTesting?”Idescribedtheuniqueaspectsofmobiletesting,coveringuserexpectations,datanetworks,mobiledevices,andmobilereleasecycles.Butthereare,ofcourse,othertopicsthatmakemobiletestingaspecialandchallengingjob.Thischaptercontainsmoremobiletestingchallengestogetherwiththeir

possiblesolutions.

TheCustomerAsImentionedinChapter1,customersandtheirexpectationsareoneofthemainchallengesformobiledevelopersandtesters.Tosatisfycustomers,it’sreallyimportantthatyougatherinformationabout

yourpossibletargetcustomersandtheirneeds.Ifyoureleaseanappwithoutanykindofknowledgeofyourtargetgroup,theappwillmostlikelynotbeinstalledoritwillreceivereallybadreviews.Thisleadstofewerdownloads,andcustomersmayevendownloadanappfromyourcompetitor.Inordertohandlethecustomerchallenge,youneedtogatherasmuch

informationaboutyourpotentialusersaspossible.This,inturn,meansthatyouneedtoincorporatethespecificsofyourtargetgroup,suchasage,gender,andgeographicalbackground,duringthedevelopmentandtestingprocess.Youneedinformationsuchasthefollowing:

•Gender•Age•Monthlyincome(importantforpossibleappbusinessmodels)•Educationalbackground•Geographicalbackground(e.g.,dotheyliveinacity?)•Whatappstheyuseandwhatkind•Smartphonehabits(howoftentheychecktheirsmartphone)•Whethertheyuseacompetitor’sappsandifso,how,andaretheyhappywiththem•Whatdevicestheyuse

Important

Page 46: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Becarefulwhenaskingpeoplepersonalquestionsasyoucouldendupinfringinguponprivacylaws.

Anotherwayofgettinginformationaboutyourtargetgroupistoconductinterviews:inviteyourcustomerstoyourofficeandaskthemabouttheirmobileusageandhabits.Ifyouencounterproblemsgettingtheanswerstoallofthesequestionsorarenotallowedtoaskyourpotentialcustomersdirectly,youcanuseservicessuchasMobilePersonas1togetgeneralinformationaboutthebehaviorofmobileusers.

1.www.mobilepersonas.com/

Ifyougather,analyze,andgroupthatkindofinformation,youwillmostlikelyhavemorethanonetypeofpersontheappwillbemadefor.Tosatisfythedifferenttypesofcustomers,itishelpfultocreateso-calledpersonas2torepresenttheirvariousneeds.PersonaswereintroducedbyAlanCooper3in1998inhisbookTheInmatesAreRunningtheAsylum.

2.www.usability.gov/how-to-and-tools/methods/personas.html3.www.cooper.com/journal/2008/05/the_origin_of_personas

Personasarefictionalcharactersthatarerepresentativeofyourrealcustomers.Personasareacommonandveryusefulwaytoidentifyusermotivations,expectations,problems,habits,andgoals.Personascanhelpyoutomakedecisionsaboutyourapp,suchasfeatureset,

possiblegestures,anddesign.Personascanhelpamobileteamgetafeelfortheircustomers’needsandproblems.Youasamobiletestercanalignyourdailyworkflowtothepersonadescription.Table3.1presentsanexampleofatypicalpersona.

Page 47: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Table3.1PossiblePersonaDescription

Youcanalsowriteapersonadescription,suchasthisone:Martinisa28-year-oldtech-savvymalewithamaster’sdegreeincomputerscience.HelivesinNewYorkandisafrequentsmartphoneuserwhocheckshissmartphonearound150timesaday.MartinusesappslikeTwitter,Facebook,Spotify,andTumblr.Hismonthlyincomeisabout$3,000.Martinisafriendly,smart,andpolitepersonwholikestomeetfriends.

Withtheaidofpersonasandknowledgeoftheirhabits,it’sabiteasiertotestamobileappasthetestingprocessismorefocusedoncustomerneedsthanonthetester’sexpectationsorhabits.Personasareagoodwaytohandlethecustomerchallengewhenitcomesto

mobiletesting.Oncethepersonasareinplace,themobileteamshouldtrytofindrealcustomerswhomatchthepersonas.Onceyou’vefoundsomecustomers,talktothemandaskthemquestionsaboutyourappanddiscusspossibleadditionalfeatures.Inviteuserstoausabilitytestingsessioninyouroffice.Thiswaytheusersfeelconnectedwiththecompanyandyourapp.Anotherwayofgettinguserfeedbackorengagementisabetatestingphase.Thisisacommonapproach;somebigmobileappvendors4invitecustomerstotestbetaversionsofnewappstocollectfeedbackatanearlydevelopmentstagesotheycanimprove

Page 48: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

theappbeforegoinglive.4.www.sonos.com/beta/screen/

Othervaluablesourcesofinformationaboutyourcustomersaretheappstoresofthedifferentvendorsandtheratingsforandcommentsaboutyourapp.Readthecommentscarefullyandlearnfromthem.Ofcourse,theremaybelotsofcommentsthatdon’tdeliveranyusefulinsights.However,thereareuserswhocomplainaboutusability,bugs,orproblemsyouhaveneverheardof,andthosecommentsareextremelyusefulforyouandyourteam.Moreinformationaboutappstorereviews,ratings,andcommentscanbefoundinChapter7,“MobileTestandLaunchStrategies.”

CustomerSummaryDothefollowinginordertomaximizethechancesthatyouwillsatisfyyourcustomers:

•Gatheruserinformation.•Createpersonas.•Usepersonaswhiletesting.•Invitecustomerstousabilitytests.•Interviewcustomersaboutyourproduct.•Invitecustomerstobebetatesters.•Checktheappstorereviewsandlearnfromtheusefulcomments.

MobilePlatformsandFragmentationInthepreviouschaptersIexplainedthedifferentmobilevendorsandmobileplatforms,soyounowknowwhat’sinsideamobiledevice.Youalsoknowthatforsomemobileplatformsthereismorethanonemobiledevicemanufacturer.Fragmentationisahugeprobleminthemobileworldandespeciallyinthe

Androidworld.BasedonthenumbersfromOpenSignal,5nearly19,000Androiddevicesareavailableonthemarket.It’ssimplynotpossibleand,asyouwillsee,notnecessarytotestonallofthosedevices.Thisproblemisn’tjustlimitedtoAndroid;othermobileplatformssuchasiOS,WindowsPhone,andBlackBerryarealsoaffectedbyfragmentation.Thepossiblehardwareandsoftwarecombinationsonthoseplatformscanalsobeaproblem.

5.http://opensignal.com/reports/2014/android-fragmentation/

Thenextseveralsectionsofthischapterpresentsomesolutionsforhandlingfragmentationwhiletesting.

Page 49: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

MobileDeviceGroupsOnesolutionforhandlingdevicefragmentationinyourmobiletestingprojectistogroupyourmobiletestdevices.Ifthedevicesaregrouped,youcantestononlysomedevices(onetothree)fromeachgroup,whichhelpsyoudownsizetheamountoftestingwork.I’veadoptedthisapproachinallofmymobileproj-ectsandithasprovenveryefficient.Basedonyourtargetcustomergroup,youcancreatethreedevicegroups(thisexampleassumesthatthetargetgroupisreallytechsavvy).Thefirstgrouphasthehighestpriority:A.Devicesinthisgrouparemost

likelytobenewdeviceswithpowerfulhardwareandabigscreenwithahighresolutionandpixeldensity.Theyalsousuallyhavethelatestoperatingsystemversioninstalled.Devicesinthisgroupmustbefullysupportedbyyourappintermsoffunctionality,design,andusability.

•Group1,PriorityA:•High-enddevices•Dual/quad-coreCPU•RAM>=2,048MB•Displaysize>=5″•Retina,fullHDdisplay•Latestoperatingsystemthatisavailableforthedevice

Thesecondgrouphasmediumpriority:B.DevicesinthisgrouparemidrangedeviceswithaveragehardwaresuchasasmallerCPU,screenresolution,andsizethanthedevicesingroupA.Theoperatingsystemversionisprobablylessthanoneyearold.Thedevicesinthisgroupshouldfullysupporttheappintermsoffunctionalityandusability.Thedesigndoesn’tneedtobeperfectforthisgroupduetothesmallerscreens.

•Group2,PriorityB:•Midrangedevices•Dual-coreCPU•RAM<2,048MB•Displaysize<5″•NoRetinaorfullHDdisplay•Softwarelessthanoneyearold

Thethirdgrouphaslowpriority:C.DevicesinthisgrouphaveasmallCPU

Page 50: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

andasmallscreenresolutionanddensity.Thesoftwareversionismorethanoneyearold.Devicesinthisgroupstillhavetofullysupporttheappintermsoffunctionality,butthedesignandusabilitymaydifferfromtheothergroupsbecausethehardwaremaybetooslowtoprovidesufficientresponsiveness.

•Group3,PriorityC:•Slowdevices•Single-coreCPU•RAM<1,024MB•Displaysize<4″•Lowscreenresolution•Operatingsystemmorethanoneyearold

Onceyouhavedefineddevicegroups,youneedtomakesureyoukeepthemcurrentbymonitoringthemobiledevicemarketfornewdevicesthatmatchyourtargetgroups.Ontheotherhand,youcanremoveolderdevicesfromyourdevicegroupsifyourcustomersdon’tusethemanymore.Andlastbutnotleast,youneedtocheckyourgroupcriteriafromtimetotimetomakesuretheystillsufficientlycoveryourcustomerspectrum.Withtheaidofsuchdevicegroups,you’llfinditmucheasiertohandledevice

fragmentationandhavetherightdevicesfortesting.AniceWebpageprovidedbyGoogleis“OurMobilePlanet,”6whereyoucan

getinformationbasedonthecountry,theage,thegender,andthebehaviorofusers.Suchinformationcanbeusedwhenthetargetcustomerisunknown.

6.http://think.withgoogle.com/mobileplanet/en/

ImportantDevicegroupsmayvarygreatlyfromprojecttoproject!

MobileDeviceLabsDependingonthemobileappproject,youmayneedlotsofdevicesfortesting,whichisofcourseveryexpensiveandtime-consuming.Agoodalternativetobuyingallofyourtestingdevicesistorentthem.Youcanusemobiledevicelabsordevicecloudstorentthetestingdevices

youneed.However,beforeyourenttestdevices,keepthedevicegroupinginmindtodownsizetheamountoftestingrequiredforallthosevirtualandphysicaldevices.

Page 51: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Currentlythereareplentyofmobiledevicelabprovidersthatoffermobiletestdeviceswithinthecloud.Mobiledevelopersandtestersareabletouploadtheappfiletothecloud,selectthedevices,andstartmanualorautomatedtesting.Themainadvantageofsuchservicesisthatyoudon’thavetoworryabout

buyingnewdevicesandmaintainingthem.However,beforechoosingamobilecloudprovider,youshouldcheckwhethertheproviderofferstestingonrealdevices,simulators,oremulators.Amobilecloudtestingprovidershould:•Testonrealdevices•Beabletouseemulatorsorsimulatorsaswell•Notusejailbrokenorrooteddevices•Beabletotestondifferentmobileplatformsifpossible•Beabletowritetestautomationscriptsindifferentprogramminglanguages•Offercontinuousintegration•Havesomeperformancemonitoringinplace•Generateatestreportattheendofthetestcycle

Testingyourmobileappinthecloudonemulatorsorsimulatorscanbeveryannoyingduetoperformanceissues.Usingemulatorsorsimulatorsonalocalmachineisoftenalreadyfairlyslow;usingthemontheInternetviaaWebGUIcanbeevenslower.Eveniftheproviderofferstestingonrealdevices,it’sstillpossiblethatthe

performancemaynotbethesameaswhentestingonalocalphysicaldevice.Thelatencymaybetoohigh,whichcanleadtoveryslowreactionsonthedevice.Scrolling,tapping,orjustloadingtheappcantakealongtime,whichmayhaveabigimpactonyourtestingandthesubsequentresults.Anotherthingtolookoutforwhenchoosingacloudprovideristomakesure

youhaveexclusiveaccesstothephysicaldevicesandthatyourappisdeletedoncethetestsessioniscomplete.Checkthattheprovideroffersaprivatetestcloud;otherwiseyourappmaystillbeinstalledonthetestdevicesforsubsequentcustomerstosee.Discoveringsuchanissuewhileevaluatingaproviderisaclearwarningsignthatshouldnotbeignored.Ifsecurityandprivacyareimportanttoyou,considerpickinganotherprovider.Thefollowingprovidersofferamobiledevicetestcloud:•AppThwack(https://appthwack.com/)

Page 52: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•CloudMonkeyLabManager(www.cloudmonkeymobile.com/labmanager)•KeynoteMobileTesting(www.keynotedeviceanywhere.com/)•MobileLabs(http://mobilelabsinc.com/)•PerfectoMobile(www.perfectomobile.com/)•SauceLabs(https://saucelabs.com/)•Testmunk(www.testmunk.com/)•TestObject(http://testobject.com/)•TouchTest(www.soasta.com/products/touchtest/)•XamarinTestCloud(http://xamarin.com/test-cloud)

ImportantThislistisbynomeanscomplete.JustbrowsetheInternettosearchformoreprovidersthatfitinyourenvironment.

Ifyoudon’twanttobuyeverytestingdeviceforyourcompanyordon’twanttouseacloudprovider(ormaybeyou’renotallowedtouseone),thereisanotherwayofgettingphysicalmobiledevices:ODLs,orOpenDeviceLabs.OpenDeviceLabswereintroducedbythemobilecommunitywiththeaimof

establishingphysicalstoreswheremobiletesters,developers,andanyoneinvolvedinthemobilebusinesscanobtaindevicesfortestingpurposes.TheprimarygoaloftheseOpenDeviceLabsisthateveryonecanborrowdevicesforfree!Inordertomakethisideasuccessful,OpenDeviceLabsneeddevicedonationsfromindividualsorcompanieswhowanttosupportthemobilecommunity.Dependingonyourgeographicalregion,youmighthaveanOpenDeviceLabnearby.TheWebsite7providesanicemapthatshowsyouwhereyournearestOpenDeviceLabislocated.Youshoulddefinitelytrythem!

7.http://opendevicelab.com/

Chapter7includesmobiletestlabsandOpenDeviceLabsaspartofthemobiletestingstrategyandalsoprovidesfurtherinformationonthistopic.Inthispartofthechapteryouhavelearnedthattherearethreepossible

solutionstotheproblemofhowtohandlemobilefragmentation:•Groupingthedevicesyouneedfortesting•Mobiledevicelabsinthecloud•UsingphysicaldevicesfromanOpenDeviceLab

Page 53: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

SensorsandInterfacesEverysmartphonehasavarietyofsensorsandinterfacesthatcanbeaccessedbytheinstalledappstoprovideusefulfeaturestousers.Theactualsensorsandinterfacesuseddependontheapp’sspecificusecase.Theinstalledsensorsandinterfacesarereallycomplexandarepotentiallysusceptibletoelectricalinterference.Asamobiletesterit’syourresponsibilitytoensurethattheimplemented

sensorsandinterfacesareusedcorrectly.It’salsoimportanttoverifythatfailingsensorsdon’taffecttheappinanegativeway.

AmbientLightSensorTheambientlightsensorisabletodeterminehowmuchlightisavailableinthecurrentlocationandautomaticallyadjustthescreen’sbrightnessbymeansofsoftwareinordertoprolongthedevice’sbatterylife.Ifyourappmakesuseoftheambientlightsensorinanyway,youshouldtest

yourappindifferentlocationswithdifferentprevailinglightsituations.Forexample,testyourappinadarkroom,outsideinthesunshine,oratyourworkplacetoseeiftheapprespondscorrectly.Becreativewithyourtestingenvironments.Differentlocationscouldinclude:•Adarkroom•Yourworkplacewithadesklampon•Outsideinthesunshine•Roomswithdifferentlightsontheceiling

ProximitySensorAnotherlittlehelperistheproximitysensor,whichdetermineshowclosethephoneislocated,suchastoafaceorsurface.Itcanbeusedtoautomaticallyturnoffthedisplaywithoutanyphysicalcontact.Thispreventsyoufromaccidentallyclickingortouchingbuttonsonanactivescreen.It’salsousefulforsavingbatterylife.Makesureyoualsotesttheusageoftheproximitysensorindifferent

locationswithdifferentlightsituationsaswellaswithdifferentkindsofsurfacestoseewhethertheappisusingthesensorcorrectly.Differentlocationsandsurfacescouldincludethefollowing:

Page 54: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Adarkroom•Yourworkplacewithadesklampon•Outsideinthesunshine•Yourhandmovingoverthedisplay•Yourhandclosetothedisplay•Thedevicemovingtowardyourface•Thedevice’sdisplaymovingtowardamirrororpaneofglass

AccelerationSensorTheaccelerationsensordetectschangesinthedevice’smovement.Themostcommonusecaseforthissensoriswhenthedeviceisrotatedbetweenportraitandlandscapemodes.Thissensorisusedinnearlyeveryappifthedevelopersimplementedaportraitandlandscapeview.Ifbothmodesaresupported,youshouldchangetheorientationofthedevicealotduringtesting.Bydoingso,youwillprobablyfindlotsofUIglitchesbecausetheUIelementscouldbemovedtoadifferentposition.Itisalsolikelythattheappwillcrash,forexample,whendataisfetchedfromthebackendwhileaUIrefreshisbeingperformed.

GyroscopeSensorThegyroscopesensorisusedtoeithermeasureormaintaintheorientationofthedevice.Unlikeanaccelerometer,whichmeasuresthelinearaccelerationofadevice,agyroscopemeasuresthedevice’sexactorientation.Thismeansthatthedeviceisabletodetect360-degreemotion.Thankstotheaccelerometerandgyroscopesensors,thedeviceisabletooperateonsixaxes—leftandright,upanddown,forwardandbackward—andtrackroll,yaw,andpitchrotations.Thecombinationofbothsensorsismostlyusedingamingappssuchasflight

simulationstocontrolaplanewithrealphysicalmovements.Keepthesixaxesinmindwhentestingyourapp,andtesteachaxisseparatelyaswellasmultipleaxesatoncetobesuretheappisrespondingcorrectly.

MagneticSensorAmagneticsensorisabletomeasurethestrengthandorientationofmagneticfieldsaroundthedevice.Thissensorismostlyusedbyappsthatrequirecompassinformation,suchasfornavigation.Withtheaidofthissensorthedeviceisabletodeterminethedirectioninwhichit’sfacing:west,east,north,orsouth.Ifyourappusesthemagneticsensor,youshouldalsotestitindifferent

Page 55: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

locations.Forexample,ifyou’reusingtheappinabuildingwhereyou’resurroundedbylotsofmetal,themagneticsensormaydeliverfalseinformationordata,whichcanleadtoadversesideeffectsinyourapp.Differentlocationscouldincludethefollowing:•Insideabuilding•Outsideonthestreet•Whenstuckintraffic•Nearbuildingswithlotsofmetal

Pressure,Temperature,andHumiditySensorsThesethreesensorsarenotincludedineverysmartphoneyet,buttheywillbesoon.Allthreesensorscanbeusedtocollectmoredataabouttheuser’scurrentlocationtoprovideappswithusefulinformationsuchasthecurrenttemperature,currentaltitudebasedonatmosphericpressure,andhumidity.Thesesensorsareused,forexample,byoutdoororweatherapps.Again,make

sureyoutestthesesensorsindifferentlocationswithdifferenttemperatures,pressures,altitudes,andhumidities.Youcan,ofcourse,simulatepressureorhumidityinatestlabsituationtocheckthatthesensorsareworkingcorrectly,buttestingtheminrealsituationscouldproducesideeffectsthataren’tlikelytohappeninalab.

LocationSensorYoucertainlyknowthelocationsensor,betterknownasGPS.ThankstoGPS,appscandeterminethecurrentdevicelocation.GPSisusedinlotsofdifferentkindsofappssuchasmapapps,cameraapps,andsocialmediaapps.Userscansharetheircurrentlocationwithappsandsendtheircurrentposition,forexample,tofriendstoletthemknowwheretheyare.IfyourappusesGPStodeterminethedevice’scurrentposition,besurethat

theGPSsensorisswitchedoffafteruse.Otherwisethedevice’sbatterywillbeemptyverysoon.GPSfunctionalityshouldofcoursebetestedinvariouslocations,suchasin

thecountrysideorindowntownsprawlwithlotsofhugebuildings.InbothscenariosyoumayfindthatthecurrentlocationisincorrectornotfoundbytheGPSsensor.Thisisespeciallytrueincitiesduetointerferencecausedbysurroundingbuildings.IftheGPSsignalisnotstrongenoughtodeterminethecurrentlocation,checkthattheWi-Fiornetwork-basedlocationfindingfeature

Page 56: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

ofthephoneisactivatedtolocatethephone.AlowGPSsignalcanalsocauseperformanceproblemswithinyourappduetodifficultiesincalculatingthecurrentposition.WhentestingtheGPSfunctionofyourapp,keepaneyeonthetemperatureofyourdevice.UsingGPSwillheatupyourdevice,consumelotsofbattery,andthereforepossiblyinfluencetheperformanceofyourapp.IalsorecommendthatyouturnGPSofftoseehowyourappreactstothisscenario.

TouchlessSensorAnothersensorthatisnotbuiltintoeverysmartphoneisatouchlesssensor.Inmostcasesthissensorisbuiltintothefrontofthedevicetoaccepttouchlessgesturesfromafingerorahand.Whatthismeansisthatyoucanswipebetweenphotosinyourphotogallerysimplybywavingyourhandoverthescreen.Oryoucanansweraphonecallbyholdingthedevicenexttoyourearwithouttouchingtheanswerbutton.Ifyourappsupportstouchlessgestures,besureeverygesturealsoworksat

differentangles.

SensorsSummaryMostofthesensorsjustdescribedareinfluencedbytheuser’scurrentlocationandsurroundings.Anykindofmovementisveryimportantwhiletestingyourappandthedevice’ssensors.It’salsousefultotestthesensorsincombinationwithoneanothertocheckthatyourapprespondscorrectlytochangesofsensordata.Possiblesensortestscouldincludethefollowing:•Walkwhileusingtheappasthissimulatesback-and-forthmotion.•Whilewalking,suddenlystopforafewmomentsbeforecontinuingonyourway.•Shakeandrotatethedevice.•Simulatevibrationsasifyou’reonatrainorinacar.•Performextrememovementssuchasspinningorrotatingthedevice.•Usetheappoutdoorsinsunny,cloudy,anddarklocations.•Usetheappindoorswithnormallightorunderalamp.•Waveyourhandsinfrontofthedevice.•Testtheedgecases,forexample:GPScoordinates0,0;temperatureat0degrees;waterproofdevicesinareaswithhighhumidity.

Page 57: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Checktoseeiftheappcanbeusedondevicesthatdon’thavebuilt-insensorsandinterfaces.

Whileperformingthesetasks,watchoutforappcrashesorfreezes.CheckthattheUIelementsarevisibleanddisplayedcorrectlyonthescreen,especiallyindifferentlightsituations.Keepaneyeontheperformanceoftheappandthesmartphone’sbatterylifetimeaswell.

TouchscreenThebiggestandmostimportantinterfaceinsmartphonesisthetouchscreen.Thankstothetouch-sensitivescreen,userscanuseoneormorefingersonthedevicetocreategesturesthatthephoneisabletoconvertintocommands.

ImportantThedescriptionoftouchscreentechnologieshereissimplified.Ifyouwanttogetmoredetailedinformationaboutthem,pleasedosomeonlineresearch.

Therearebasicallytwokindsoftouchscreentechnologiesavailable.Thefirstistheresistivescreenthatismadeoutofvariouslayersandreactstopressure.Usuallythiskindoftouchscreenismadeforusewithastylus.Wheneveryouhavetosignforaparceldelivery,youprobablysignonaresistivescreen.Thistechnologyhasonebigdrawback:itdoesn’tsupportmultitouchgestures.Thatisthereasonwhythesecondtechnology,capacitivetouchscreens,isused

insmartphones.Capacitivescreensreacttotouchratherthanpressureandsupportmultitouchgestures.Capacitivescreensconsistofaninsulator,whichinmostcasesisglasscoated

withatransparentconductorlikeindiumtinoxide.Sincethehumanbodyisalsoanelectricalconductor,touchingthecapacitivescreenresultsinadistortionofthescreen’selectrostaticfield.Thisdistortionisthenconvertedintodatathatthedevicehardwareisabletounderstand.Thefollowinggesturesarepossibleonacapacitivetouchscreen:•Touch:Touchthescreenwithafingertip.•Longtouch:Touchthescreenforalongertime.•Swipe:Moveyourfingertipoverthescreen.•Tap:Brieflytouchthescreenwithafinger.•Doubletap:Brieflytouchthescreenwithafingertiptwice.

Page 58: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Drag:Moveafingeroverthescreenwithoutlosingcontactwiththescreen.•Multitouch:Usetwoormorefingersonthescreenatthesametime.•Pinchopen:Touchthescreenwithtwofingersandmovethemapart.•Pinchclose:Touchthescreenwithtwofingersandbringthemclosertogether.•Rotate:Usetwofingersonthescreenandrotatethem.Someapps,suchasmapapps,willrotatethecontentintheapp.

Thevarietyofpossibletouchgesturesposesaspecialchallengewhiletestingamobileapp.Youshouldkeepallthepossibletouchgesturesinmindandusethemwhiletesting.Agoodwaytoseeifanappcanstanduptotouchgesturesistousemultiplefingersonthetouchscreenatthesametime.Youshouldalsoperformseveraldifferenttouchgesturesveryquicklyonthescreentoseehowtheappreactsandhandlestheinputs.AlsowatchoutforperformanceissuesorUIglitchesthatcanhappenwhileusingmultitouchgestures.Oneimportantfactortonoteabouttouchscreensisthecurrentweather

conditions.Theycanaffectyourfingersandpreventtouchesfrombeingregisteredproperly.Therefore,it’sagoodideatoalsousethedifferentgesturesindifferentweatherconditionssuchasoncoldorhotdaysoronadaywithhighorlowhumiditytoseehowtheappreactstoyourgesturesonthetouchscreen.

MicrophonesAnotherwayofcommunicatingwithyourappisbyusingyourvoiceorsound.Mostsmartphoneshavemorethanonemicrophoneinstalled.Usuallythereareuptothreemicrophones,oneatthefront,oneattheback(nearthecamera),andoneatthebottomofthedevice.Thethreemicrophonesensureverygoodvoicerecordingfromallpossibleanglesandregardlessofthephone’sposition.Whentestingsoundinputsviathemicrophone,makesureyoudothe

following:•Testvoiceinputindoorswithnormalsoundandinnoisysituations.•Testtheappindoorswithmorebackgroundnoisesuchasinanofficeorrestaurant.•Testtheappoutdoorswithbackgroundnoisescomingfromastreetorcars.•Checkthattheappcanhandletheusermutingandunmutingthephoneorthemicrophone.•Startotherappsthatgeneratesounds,suchasmusicapps,andcheckthe

Page 59: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

behaviorofyourapp.•Usethevolumeupanddownbuttonstoincreaseordecreasethesoundlevelandcheckthebehavioroftheapp.•Checkthatvoiceinputsareprocessedcorrectly.•Ifthevoiceinputisstoredonthephone,checkthatplaybackisworkingproperly.•Testthevoiceinputinareal-lifeenvironment(thepurposeoftheapp).

Whiletestingthesoundinputsinallthedifferentsurroundings,watchoutforinputdelaysordistortionintherecordingorplaybackmode.Keepaneyeontheperformanceoftheappandthephonetoseeifthedevicefreezesorcrashesduetoalackofhardwareresources(especiallywhensavingtheinputs).Anddon’tforgettocheckthedigitalrightsmanagement(DRM)whenworkingwithvoiceorsoundinputs.

CameraAtypicalsmartphonehasatleastonecamera,usuallylocatedatthebackofthesmartphone.However,mostoftoday’ssmartphonesalreadyhavetwocameras:arear-facingandafront-facingcamera.Therearcameraisusedtotakehigh-resolutionpictures,andthefrontcameraismostlyusedforvideochattingwithalowerresolution.Also,mostoftherear-facingcamerashaveaflashincluded.Camerasareusedinavarietyofmobileappsfortakingpicturesorvideos.

SomeappsusethecameraasascannertocaptureinformationusingOCR(opticalcharacterrecognition)orotherkindsofshapes.GoodexamplesofthisincludeQR(QuickResponse)codes,scanningapps,orappsthatscanbusinesscardstotransformthemintodigitalcontactsinyourphone.SomeappsjustusetheLEDflashtoactasaflashlight.Ifyourappusesthecamera,testitwithavarietyofmobiledevicesthatmatch

yourtargetcustomergroup.Everysmartphonehasauniquecamerawithauniquelens,flash,andresolution.Thedifferentresolutionsofthecamerahaveanimpactontheimagesize.Thehighertheresolution,thebiggerthepicturesare.Besuretotestthecamerafunctionwithdifferentresolutionsandcameratypesinordertoseeiftheappisabletoprocessbothsmallandlargeimages.Besidesthat,youshouldchecktheperformanceoftheappwhilethecamera

modeisactivated.Thecameratakesupalotofthedevice’shardwareresources,whichcanhaveanadverseimpactontheappandcauseittocrashorfreeze.Heavycamerausecanheatupthecamerasensorandcancausehardwaredamage,sobesurethatthisisnotpossiblewithinyourapp.Finally,don’tforget

Page 60: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

totestthattheappcanuseanimagestabilizertopreventthecamerafromtakingblurrypictures.Thesameappliestovideocapturingwithinyourapp.

SystemAppsMostpreinstalledappsfromdevicemanufacturersaresystemapps.Thereareoftenpreinstalledappssuchasacontactapp,aphoneapp,acalendarapp,andthelike.However,onmostofthemobileplatformsusersareabletoinstallappsthatreplacethesystemapps.Themainreasonsusersdothisisbadusabilityorthelackoffunctionalityonthepartofthesystemapps.Ifyouchecktheappstoresofthedifferentvendorsforcalendarapps,forinstance,you’llfindplentyofappswithfarmorefeaturesthanthepreinstalledones.Areallyinterestingexampleofthisiskeyboardappsonsmartphones.Such

appsarelikelytohaveanimpactonyourapp.OnAndroidphonesandtablets(and,sinceiOS8,alsooniOSdevices),usersareabletoreplacethepreinstalledkeyboardappwithspecialkeyboardsthatofferatotallydifferentwayoftypingandkeyboardlayouts.Thereareconventionaltapkeyboards(likeQWERTY),keyboardswithdifferentlayouts(multiplesymbolsperkey),keyboardswithtap-sliderfunctions,andkeyboardsthatofferaswipingmethodtoinserttext.Changingthekeyboardcanhaveaninfluenceonyourapp.Forexample,the

keyboardmaybemuchtallerthanthestandardoneandthereforehideUIelementsthatareimportanttointeractwith,orthescreenmightnotrecognizethatitneedstoscroll.Youmaycomeacrossimportantkeysthataremissingfromthekeyboard,thuspossiblyrenderingyourappunusableinsomecases.Itisalsopossibleforsettingstogetlostwithinyourphone,andyourappmightcausefreezesorcrashes.Thisisjustoneexampleofhowreplacedsystemappscanhaveanimpacton

yourapp.Ifyourappinteractswithoneofthepreinstalledsystemapps,keepinmindthatusersareabletoreplacethemwithotherapps.Youneedtohaveanoverviewofpopularappsthatreplacesystemappsinordertotesttheirintegrationandinteractionwithyourapp.

Internationalization(I18n)andLocalization(L10n)Anotherchallengethatneedstobehandledduringthemobiledevelopmentprocessistheinternationalization(I18n)andlocalization(L10n)ofmobileapps.I18nistheprocessofdesigningsoftwareapplicationsinsuchawaythattheycanbeadaptedtovariouslanguagesandgeographicalregionsthroughouttheworld,withoutchangingthecodebaseandwhilethesoftwareisrunning(some

Page 61: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

appsandsomemobileplatformsrequirearestart).L10nistheprocessofadaptingtheinternationalizedsoftwaretoaspecific

languageorregionbyaddinglocale-specificelementsortranslatingthetext.It’sreallyimportanttotestbothI18nandL10nifyourappisdesignedtobe

usedindifferentcountries.YoumustbesurethatthedifferentlanguageswillnotbreakyourUIelementsorhaveaninfluenceontheapp’susability.

ImportantManylanguageshavetheirowncharacterset,andonewordcanhaveaverydifferentwidthandheight.

Havealookattheexamplewordlogout.IfyoucomparethewordwithtranslationsfromGermany,France,Turkey,andRussia,youwillseelotsofdifferenceincharacters,width,andheight:

•Logout(English)•Ausloggen(German)•Déconnexion(French)•Çıkışyap(Turkish)•(Russian)

BoththeGermanwordAusloggenandtheFrenchwordDéconnexionaremuchlongerthanLogout.TheTurkishversionevenconsistsoftwowords.Asasample,Asianlanguagescanbeusedas“short”languages,whileGermanandPortugueseareconsidered“long”languages.AlltranslationscanleadtoaUIglitchorevenbreakyourdesignrules.Whentestinganappindifferentlanguages,checkthateverytexttranslationwillfitintotheUIelementsandthateveryscreenhasthesamelook-and-feel.Alsocheckthatthedifferentcharactersandfonttypescanbestoredinthelocaldatabase.Thesameappliestodateformatsthatareusedwithinapps.Dependingonthe

countryorregioninquestion,differentdateformatsarealsoused.Youneedtocheckthatthecorrectformatisshowndependingontheregionsettingsofthephone.Youshouldalsotesttheparsingfromonedateformattoanother.Thefollowingdateformatsarecommonlyused:•DD/MM/YYYY(Day/Month/Year)•DD.MM.YYYY•DD-MM-YYYY

Page 62: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•MM/DD/YYYY(Month/Day/Year)•MM.DD.YYYY•MM-DD-YYYY•YYYY/MM/DD(Year/Month/Day)•YYYY.MM.DD•YYYY-MM-DD

Ifyourappisgoingtobeusedindifferentcountriesorregionsintheworld,makesureyouaddtheimportantlanguagesbasedonyourtargetcustomergroupinordertoprovideagooduserexperience.Whentestingtheapp,youneedtocheckitineverylanguage.Youalsoneedtocheckthatthelanguageswitchisworkingtobesurethatonlyasinglelanguageisshowndependingonthedevice’slanguagesettings.Alsocheckthefallbacklanguageofyourapp.Totestthis,changethedevicelanguagetoonethatisnotsupportedandcheckthattheappusestheimplementedfallbacklanguage.Languagesanddateformatsshouldneverbemixedupwithintheapp.Ifyouwanttotestiftheusedlanguageiscorrect,youshouldaskanativespeakerinordertoavoidusingmisleadingtranslationsortextthatissimplywrong.

ImportantThedifferentlanguagesanddateformatsmustbeconsideredduringthedesignphaseoftheappsothatdesignerscanplanthelook-and-feeloftheappinalloftheprovidedlanguages.Latechangesduetotranslationissuescandelaythereleasedateoftheappornegativelyaffecttheapp’sdesign.

MobileBrowsersIfyou’retestingamobileWebapp,youwillofcourseneedtodosoinamobileWebbrowser.MobileWebbrowsersareoptimizedtodisplayWebcontentsuchthattheycanbeaccessedonsmallerscreens.Unfortunately,thereismorethanonemobileWebbrowseravailableindifferentversionsofthedifferentmobileplatforms.Besidesthat,thebrowsersusedifferentlayoutenginessuchasthefollowing:

•Blink(www.chromium.org/blink)•Gecko(https://developer.mozilla.org/en-US/docs/Mozilla/Gecko)•Presto(www.opera.com/docs/specs/)

Page 63: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Trident(http://msdn.microsoft.com/en-us/library/aa741312(v=vs.85).aspx)•WebKit(www.webkit.org/)

Dependingonthelayoutengine,browsersettings,andbrowserversion,mobileWebappsmaylookandbehaveverydifferently.Thisisespeciallythecaseforthedifferentbrowserlayoutengines.EverybrowserlayoutenginehandlesstandardslikeHTML,CSS,andJavaScriptdifferently.Noteverybrowserhasimplementedthecompletefeaturesetorthelatestversionofthevariouslanguages(HTML,CSS,JavaScript),whichcanleadtodifferencesinbehavior.TobesurethatyourmobileWebappworksondifferentbrowsers,testiton

differentmobileplatformssuchasAndroid,iOS,WindowsPhone,orBlackBerrytogetherwithdifferentbrowserversions.Thisisofcoursethesameproblemnativeappshave:fragmentation.However,testingmobileWebappscanbemoredifficultbecausenowyouhaveanothervariableaddedtoyourtestingmatrix:thedifferentWebbrowsers.Thismeansthatyouhavetofocusonthedifferentbrowserversions,mobileplatforms,andoperatingsystemversions.ThemobileWebbrowserslistedinTable3.2areavailableforthedifferent

mobileplatforms.Toseewhichbrowserlayoutengineisusedbywhichbrowserversion,checkthebrowservendorWebsites.

Page 64: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Table3.2OverviewofMobileBrowsers

ImportantNoteverybrowserisavailableoneveryplatform.Table3.2showsthemostusedmobileWebbrowsers.8Thetableisnotcomplete.

8.http://akamai.me/1EQZbP0

Asyoucansee,testingamobileWebappondifferentmobilebrowserscanalsobearealchallenge.TokeeptheamountoftestingworkneededformobileWebbrowserstoaminimum,youshouldcreatemobilebrowsergroupsoraddmobilebrowserrequirementstothedevicegroups.Ifyoucreatebrowsergroups,prioritizethembasedonyourtargetcustomergroupandonlytestyourWebapp

Page 65: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

withinthesegroups.

SummaryChapter3wasoneofthefirsthands-onchaptersofthisbook.Youarenowabletocreateyourownpersonasbasedontheinformationaboutyourtargetcustomergroupandtheusageofyourapp.Thosepersonaswillhelpyoutofocusyourdevelopmentandtestingeffortsonyourtargetgroupandnotwastetimeonunnecessaryfeatures.Inadditiontopersonas,younowknowhowtohandledevicefragmentationin

themobileworld.Testingyourapponeverymobiledeviceisnotpossibleoreconomical.Basedonyourtargetgroup,youcandefineso-calledmobiledevicegroupstotestonlyonthedeviceswithineachgroup.Thiswillhelpyoutodownsizethetestingeffortdramatically.Anotherapproachtohandlingdevicefragmentationistousemobiledevicelabs.Asyouknow,mobiledevicesarepackedwithlotsofsensorsandinterfaces,

andifyourappusesthem,youneedtotestthemaswell.Testingthedifferentsensorsandinterfaceswasanotherbigtopicinthischapter.Foreachsensorandinterface,testingideaswereprovided.Whenyourappisavailableindifferentcountriesandsupportsdifferent

languages,thesection“Internationalization(I18n)andLocalization(L10n)”shouldhelpyouremembertotestyourappagainstthoselanguagesandsettingsrelatedtolocationsfromaroundtheworld.Thechapterclosedwithanoverviewofthedifferentmobilebrowsersthatare

currentlyavailableonthemarket.

Page 66: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter4.HowtoTestMobileApps

Inthepreviousthreechaptersyoulearnedalotaboutthemobileappworld,rangingfromthedifferentnetworktypes,apptypes,businessmodels,appstores,customerexpectations,andchallengesformobiletesterstodevice-specifichardwareelements.Inthischapteryouwilllearnhowtotestmobileapps.Thisisahands-onchapter,andIsuggestthatyouhaveatleastonedevicewithanappofyourchoicenexttoyouwhilereadingit.Useyournewlyacquiredknowledgetotesttheappandseeifyoucanfind

bugsorotherdiscrepancies.

Emulator,Simulator,orRealDevice?Beforeyoustarttotestanapp,there’soneimportantquestiontoanswer:Areyougoingtotestitonarealdevice,inasimulator,orinanemulator?Mobiledeviceemulators,suchastheAndroidEmulator,1aredesktop

applicationsthattranslatetheinstructionsofthecompiledappsourcecodesothattheappcanbeexecutedonadesktopcomputer.Theemulatoractsexactlylikethemobiledevicehardwareandoperatingsystem,thusallowingthedeveloperandtestertodebugortesttheapplication.Sincetheappisexecutedonacomputer,notallofthemobile-specifichardwareelementssuchasthesensorsortouchgesturescanbeemulated.However,emulatorscanbeveryusefulatanearlystageofthedevelopmentprocessinordertoobtainquickfeedbackabouttheimplementedfeatures.

1.http://developer.android.com/tools/help/emulator.html

Simulators,suchastheiOSsimulator,2arelesscomplexsoftwareapplicationsthatsimulateasmallsubsetofthedevice’sbehaviorandhardware.Incontrasttoemulators,simulatorsareonlysimilartothetargetplatformandsimulatetherealdevice’shardware,makingthemmuchfasterthanemulators.Itisalsonotpossibletotestdevice-specifichardwareelementswithsimulators.However,simulatorsareusefulatanearlystageofthedevelopmentprocessinordertoobtainfeedbackabouttheimplementedfeatures.

2.https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/iOS_Simulator_Guide/Introduction/Introduction.html

Thebiggestdifferencebetweenasimulatorandanemulatoristhatasimulatorattemptstoduplicatethebehaviorofthemobiledevice,whileanemulatortriestoduplicatetheentireinnerarchitectureofthemobiledeviceandistherefore

Page 67: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

closertothetargetplatform.Dependingonthemobileplatform,vendorsprovideeitherasimulatororanemulator.AppleandBlackBerry(ResearchinMotion)offerasimulator;GoogleandMicrosoftprovideanemulator.Asyouhavelearnedinthepreviouschapters,mobiletestingrequires

movementanddifferenthardware,meaningthatyouneedtotestyourapponphysicaldevicestobesurethateverythingworkstogetherinreal-lifesituations.Emulatorsandsimulatorsshouldbeusedonlyforverybasictestssuchas

simplefunctionality(isthebuttonclickable?)ortomakesurethelook-and-feeloftheappisOK.

ManualTestingversusAutomatedTestingThere’sanotherimportantdecisiontomake:Areyougoingtotesttheapppurelywithautomatedtests,purelywithmanualtests,orwithacombinationofboth?Thisdecisiondependsonyourapp.Simplyperformingtestautomationwillnotworkandisnotsufficientfor

severalreasons.Noteverymobile-device-specificfunctioncanbeautomated—forexample,locationdata—andotherenvironmentalsensordataisreallyhardtotestinalabsituation.Becauseoftheselimitations,yourappwillmostlikelycontainlotsofbugsandproblemsthatyourcustomerswillfind.Onlyperformingmanualtestingcanwork,butit’salsonotsufficient.You

shouldperformonlymanualtestsofyourappifitmeetsthefollowingcriteria:•Yourappisverysimpleandbasic.•Yourapphasonlyverylimitedfunctionality.•Yourappisavailableforonlyalimitedtimeintheappstores.

Inallothercasesyoushouldcombinemanualandautomatedtesting.Beforeperformingtestautomation,youshouldalwaysdomanualtesting.Everynewfeaturemustbemanuallytestedsystematicallyondifferentdevices.Onceyou’vecompletedmanualtesting,youcanthendefinethepartsoftheappthatrequiretestautomation.InChapter5,“MobileTestAutomationandTools,”Idescribethedifferent

mobiletestautomationconcepts,explainhowtoselectamobiletestautomationtool,andprovideyouwithanoverviewofpossibletools.

“Traditional”TestingMobileapplicationsaresoftwareapplications.Besidestestingthemobile-specificfunctionsandelements,itisstillnecessarytotestmobileappsinthe

Page 68: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

samewayyoutestWebordesktopapplications.Youstillneedtodesignthetestcases,managethetestdata,andofcourserunthetests.IfyoulookatFigure4.1,youcanseethetypicalactions/stepsthatshouldbe

takenduringthesoftwarequalityassuranceprocess.Therearetwotypesofsoftwarequalityassurancemeasures:productfocusandprocessfocus.Theproductfocusphaseisusedtofindbugs,whereastheprocessfocusphaseaimstoprotectthesoftwarefrombugs.

Figure4.1Softwarequalityassurancemeasures

Theprocessfocusphaseofsoftwarequalityassurancecoversthemethods,languages,tools,guidelines,standards,andprocesseswithwhichthesoftwareisdeveloped.Inthisphase,softwaretestersareresponsibleformakingsure,forexample,thattheguidelines,developmentmethods,andtoolsaswellasthestandardsaremetduringthewholedevelopmentprocess.Theyshouldguideandhelpdevelopersandotherteammembersinfulfillingthedefinedprocessesinordertopreventanybugsfromarising.Theproductfocusphaseisdividedintostatictestinganddynamictesting.Instatictesting,thesoftwareisnotexecuted.Testersanddevelopersshould

performreviewsduringthisstageofthesoftwaredevelopmentprocess,eithercodereviewsbeforecommittingthecodetoarepositoryorreviewingthedocumentsandspecificationsbeforedevelopmentstarts.Duringthestaticphase,theapplicationcodewillbecheckedwithtoolstoseeifitmatchescoding

Page 69: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

guidelinesorcontainsanymemoryleaksorraceconditions.ThefollowinglistcontainssomeJavastaticanalysistools:•Checkstyle(http://checkstyle.sourceforge.net/)•FindBugs(http://findbugs.sourceforge.net/)•Lint(http://tools.android.com/recent/lint)•PMD(http://pmd.sourceforge.net/)

ImportantTherearestaticanalysistoolsavailablefornearlyeveryprogramminglanguage,justhavealookforthemontheInternet.

Indynamictesting,theapplicationcodeisexecutedtoseehowtheapplicationbehaveswhilebeingrun.Dynamictestingisagainsplitintotwotypes:whiteboxtestingandblackboxtesting.Whiteboxtestingisawayoftestingsoftwarewithknowledgeoftheinternal

structureofmethodsandclasses.Whiteboxtestingisusuallydonebydeveloperswhotesttheircodeonaunitlevel,inmostcasesusingtoolssuchasJUnit,3TestNG,4XCTest,5orsimilarunittestingtools.

3.http://junit.org/4.http://testng.org/doc/index.html5.https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/Introduction/Introduction.html

Whiteboxtestingtechniquesincludethefollowing:•Statementcoverage•Pathcoverage•Branchcoverage•Decisioncoverage•Controlflowtesting•Dataflowtesting

Blackboxtestingisawayoftestingsoftwarewithoutanyknowledgeoftheinternalstructureofthemethodsorclasses.Thisapproachisusuallydonebysoftwaretesterswhoneedtoknowwhatthesoftwareshoulddoanddon’tneedtoknowhowthesoftwareactuallydoesit.Writingtestcasesandplanningtestingactivitiesareimportantpartsofblackboxtesting.Therearetestdesigntechniquesthatshouldbeconsideredinordertodeveloptherighttestcases,for

Page 70: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

example,boundaryvalues,decisiontables,andequivalenceclasspartitioning.Boundaryvaluetestingwasdevelopedfromtheexperiencethatbugsoccuron

theboundariesandedgesofconditionsandlists.Thesebugsmaycausethesoftwaretocrash,freeze,orbehaveincorrectly.Decisiontableswillhelpyoutosplitcomplexapplicationsandconditionsinto

smallersections,whichpreventsyoufromforgettingimportantfeatures.Theyhelpyouobtainanoverviewofthecriticalelementsofthefeatureset.Equivalenceclasspartitioningisatechniqueusedtodefinetestcasesthat

uncovererrorclasses.Equivalenceclasspartitioninghelpsyoureducethenumberoftestcasesthatneedtobedevelopedduringyourtestingactivities.Thisapproachistypicallyusedtotestpossibleinputsoftheapplication.Moreexamplesofblackboxtestingtechniquesfollow:•Cause-effectgraph•Errorguessing•Statetransitionanalysis•All-pairstesting•Exploratorytesting

ImportantThissectiongivesjustaverybriefoverviewofpossibletestingmethodsandtechniques.Iroughlysummarizedthefoundationsofsoftwaretestingandanalysis,soifyou’renotfamiliarwiththedifferenttesttechniques,methods,andapproaches,IhighlyrecommendthatyoureadsomesoftwaretestingbooksortakeatestingclasssuchasISTQB6foundationlevelorBlackBoxSoftwareTesting.7

6.www.istqb.org/7.www.testingeducation.org/BBST/

Mobile-SpecificTestingInthispartofthechapteryouwilllearnhowtotestyourappindifferentcategoriesandensurethatitisrobust,stable,usable,andasfreeofbugsaspossible.PleaseusetheknowledgeyougainedinChapter3,“ChallengesinMobileTesting,”aswellwhentestingyourapp.Keepthesensors,networks,gestures,customers,languages,andsystemappsinmind.

Page 71: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Beforeyoucontinuereading,getyourmobiledeviceoutofyourpocketandstartanappsothatyoucantryoutthethingsyou’reabouttoread.

MobileFunctionalTestingTestingthefunctionalityofyourappshouldbethefirstthingyoudo.Executethedesignedtestcaseswithyourmobileapptomakesurethatthefeaturesandrequirementshavebeencorrectlyimplemented.Besidestestingyourtestcases,itisimportantthatyoualsotestthedefinedacceptancecriteria.Testtomakesurethatallthefunctionsperformastheyshould,forexample,

inputs,outputs,tappablebuttons,navigation,anddataprocessing.Testthefunctionalityindifferentmobileuserscenariosandenvironments.Keepthesensorsandinterfacesofamobiledeviceinmindwhiletestingthefunctionality(seeChapter3again).Furthermore,usethequalityassurancemeasurestotestthefunctionalityof

yourappinastaticanddynamicway.

ImportantTestingthefunctionalityisoneofthemostimportantaspectsofeverysoftwareproject.Dependingonyourapp,functionaltestingwillbedifferentineveryproject.

MobileUsabilityTestingUsability,especiallymobileusability,isahuge,complex,andimportanttopic.Withinyourmobiledevelopmentteamyoushouldhaveausabilityexpertwhocoversthispartofthedevelopmentprocess.Goodusabilityrequireslotsofrefining,intenseuserresearch,andevenmoretestingwithrealusers.Itisimportantthatyourappbeeasytouse;otherwiseitmightendupwithlowratings,whichcausedamagetotheapp’sandpossiblyyourcompany’sreputation.Toavoidsuchreputationdamage,mobiletesterscanperformtheactionsdescribedinthispartofthechapterinordertohelptheteamdevelopausableapp(keepKIFSUinmind).Thefollowinglinksareagoodstartingpointifyouwanttolearnmoreabout

mobileusability:•Usabilityheuristics(www.nngroup.com/articles/ten-usability-heuristics/)•Mobileusability(www.nngroup.com/articles/mobile-usability-update/)•GoogleBestPractices(www.google.com/think/multiscreen/#mobile-best-

Page 72: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

practices)•Usabilityprinciplesandtechniques(www.usability.gov/what-and-why/index.html)•Mobileuserinterfaceandusabilitydesignprinciples(www.neobytesolutions.com/mobile-user-interface-and-usability-design-principles/)

Oryoucanrefertothefollowingbook:•MobileUsabilitybyRalucaBudiuandJakobNielsen(www.nngroup.com/books/mobile-usability/)

LessIsMoreWhentestingtheusabilityofanapp,thedesignprinciple“Lessismore”isagoodstartingpoint.Checktheappforuselessnavigationelementsandbuttons.Ifyoufindany,talktoyourteamortheusabilityexpertandgetthemremoved.Thesameappliestotextandwords.Removethemiftheyarenotrequiredtointeractwiththeapp.Trytofocusontheprimarycontentoftheapp.Keepthegoalandtheproblemtheappshouldsolveinmind,andgetridofanythingthatisdistracting.

Self-ExplanatoryCheckiftheappisself-explanatory.Askyourselfthesequestions:Istheuserabletoseetheelementswithwhichheorshecaninteract?Iseveryelementonthescreenclearandunderstandable?Thisaspectofusabilitytestinggetsmoredifficultovertimebecausethemoreyouworkwiththeapp,themoreblindyouwillbecometothingsthatarenotself-explanatory.Youwillmostlikelybeusedtopotentialusabilityissues.Inthatcaseitmakessensetoaskcolleaguesnotinvolvedintheappdevelopmentprocessoryourcustomersforearlyfeedback.

PayAttentiontoPatternsEveryappshouldfollowausabilityanddesignpattern.Ifsuchapatternisinplace,verifythatyourappfollowsthoserules.Ifthereisnopatternavailable,keepaneyeonthelook-and-feeloftheapp.Sametype-elementssuchasbuttonsortextlabelsshouldhavethesamespacings,sizes,andcolors.Checkthatalloftheelementsareaccessible,forexample,thatbuttonscanalsobetappedbyapersonwiththickerfingersandondifferentscreensizesanddensities.Alsocheckthedefaultpatternsthatareprovidedbythemobileplatformsasyourappshouldatleastfollowthosepatterns.

Page 73: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AllowMistakesInordertoprovideatrulyusableapp,yourappmustallowuserstomakemistakes.Ifauser,forexample,missesarequiredinputfield,providefriendlyandusefulerrormessages.Checkthattheerrormessagesarenottoogenericandthattheydescribetheerrorinawaythatpeoplewithoutatechnicalbackgroundcaneasilyunderstand.Furthermore,niceerrorhighlightingshouldbeinplacetoshowtheuserthemistakeheorshemade.Keepyourtargetcustomergroupinmindwhenverifyingerrormessagesasthiswillhaveanimpactonthewording.Besidesthat,yourappshouldprovideundoandgobackactionsinordertooffertheuseraneasywaytocorrecterrors.Anotherapproachmayinvolveuserinputrecommendationsorso-calledtype-aheadsearches,whichprovidetheuserwithpossibleinputsolutions;forexample,whenheorsheistyping“NewY,”theappwillsuggestNewYorkasapossibleinput.

CheckWorkflows,Details,andNavigationIfyourappfollowsaspecialworkflow,checkthatitfollowsthesameworkflowineverysection.Keepaneyeonthedetailsofthoseworkflows.Besurethatbuttons,labels,andotherelementsarebigorsmallenoughtobeused.Screendivisionisimportant,sochecktheapponsmallerandbiggerscreens.Don’tforgettochecktheappforimportantdetails.Aretheyprominentenough?Istheuserabletofindthem?Alsokeepaneyeonvisualtransitionssuchasanimationsorelementsthatfadeinorout.Isthetransitionofthoseelementssmoothordoesitfeelchoppy?Makesureyoualsouseslowdevicestocheckthatallofyouranimationsaresmoothenough.Checkthatthemainnavigationandsub-navigationoftheappareeasytouse.

Arethereanyunnecessarytapsthattheusermustperforminordertoreachhisorhergoal?Checkthatthenavigationhasnounnecessarysteps,andchecktoseeifsomeofthestepscanbecombined.Isthenavigationdoablewithonehand?Askpeoplewhohavedifferenthandsizesandareleft-orright-handedtoperformthistask.Havetheplatform-specificnavigationpatternsbeenmet?

ChecktheWordingVerifythatthetextusedwithintheappisclearandeasytounderstand.Askdifferentpeopleiftheyunderstandthewordingandthefeaturebehindit.Ifyourappcontainstext,itmustbefreeoftyposastheycanbeveryembarrassingandhaveanimpactonyourstorereviewsandratingsaswellasyourreputation.Ifyourappsupportsmorethanonelanguage,besurethetextfitsintoeveryUIelementandthatthetranslationiscorrect.Don’tforgettotestyourappfor

Page 74: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

placeholdertextslike“Loremipsum”oranyotherdefaulttextsfromdevelopersordesigners.

CheckConsistencyAreallyimportanttaskwithinmobileusabilitytestingistocheckforconsis-tency.Verifythatyourappisconsistentineverysectionorview.AsIalreadymentioned,theUIelementsmusthavethesamelook-and-feel,thesametext,spacings,colors,andimages.Furthermore,itisreallyimportanttocheckthatyourappisconsistentoverallofthesupportedmobileplatformssuchasiOS,Android,WindowsPhone,orBlackBerry,notjustintermsofnavigationorpatterns(eachmobileplatformhasitsownrules),butbyensuringthatthetexts,colors,andimagesarethesame.MakesureyoualsochecktheconsistencyofanyofferedWebordesktopapplicationsthatprovideadifferentviewtoyourapplication.Allofyourapplicationsmustfollowthecorporateidentityguidelinesofyour

companyinordertolendafamiliarlook-and-feeltoyourproduct;otherwisetheusermaygetconfused.Askforyourcorporateidentityguidelines,whichwillincludetopicssuchascolors,fonts,logos,images,andtext.

WriteItDownWhiletestingyourapp,itisimportantthatyouwritedowneverythingthatfeelsdifferentorsomehowjumpsoutatyou,nomatterhowtrivialitmayseem.Detailedobservationsarereallyimportantandwillhelpimprovetheapp.Youcancreatescreenshotsoftheentirescreenusingthemobile-platform-specificbuttoncombinationorscreencapturevideoswithaWebcamwhileusingtheapptoshowthese“wrong”thingstoyourproductownerordevelopersothatyoucandiscussthem.Animportantpointis:don’tgiveupwritingdownsuchthings,evenifthe

productownerorthedeveloperrejectsyourfindingstimeandtimeagain.Fightforthosethingsandkeepraisingthem.However,dobecarefulwithyourbugremindersasitislikelythatyourcomplaintswillbeignoredifyouconstantlyraisethesameissues.Isuggestthatyoucollectandcategorizerejectedbugsandpresentthemasanimprovementstorytoyourproductmanagerordeveloperforoneofthenextreleases.Anotherapproachwouldbetoincludefixesofoldbugsineveryreleasetoimprovethemobileappandcleanupthebugpool.Talktoyourteamandfindthesolutionthatworksbestwithyourapp.Testersneedtobecuriousandtenacious,andyourcustomerswillloveyoufor

that!

Page 75: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AccessibilityTestingAsyouhavelearnedfromthepreviouschapters,lotsofpeoplearoundtheworldareusingmobiledevicesandmobileappsintheirdailylife.Appsareusedforawholerangeofdifferentreasons,suchasnavigation,hotelbookings,ticketpurchases,listeningtomusic,orplayinggames.Whendevelopingandtestinganapp,didyouthinkaboutpeoplewith

disabilities?Therearemanypeopleouttherewhoarevisually,audibly,physically,and/or

cognitivelyimpaired.Makingmobileappsaccessibleisnoteasyandit’salotofwork,butitdoesn’tjustbenefitpeoplewithdisabilities;italsoimprovesyourcompany’sreputationandincreasesyouruserbase.Itisthereforeveryimportantthateveryoneinvolvedinyourmobileapp

developmentprocessbeawareofaccessibilityandknowabouttheaccessibilityrequirementsofmobileapps.Therearefourtypesofimpairmentthatarerelevanttomobileappdevelopment:visual,auditory,physical,andcognitive.

VisualImpairmentPeoplewithvisualimpairmentmaybeblind,havelimitedvision,becolor-blind,orhaveacolordeficiency.Duetotheirvisualimpairment,theymaynotbeabletoseeallofthebuttons,labels,text,andotherelementsinyourappandarethereforeunabletoaccessorcontroltheappcorrectly.Toadaptyourmobileappforvisuallyimpairedpeople,youcanimplementthe

followingfeatures:•Makeallelementsavailableforscreenreaders.Nearlyeverymobileplatformofferstheoptiontouseabuilt-inscreenreadertoreadoutthecontentandtheelementsofthemobileapp.Iftherearenobuilt-inscreenreadersavailable,youcaninstallthemfromthird-partyvendors.•Everymobileplatformoffersabuilt-infeaturetoenlargethefontsizeoftheentirephoneandapps.Implementyourappinsuchawaythatthefontsizecanbeadjustedwhileretainingapleasantlayout.•Everymobileplatformoffersafeaturetochangetheforegroundorbackgroundcolorofthescreen,ortochangethecontrast.Therefore,youshouldusecolors,brightness,andcontrastoftheUIelementsthatworkwiththedifferentforegroundandbackgroundsettings.•Built-inscreenmagnifierscanbeusedtoenlargetheelementsonthescreentomakethemeasiertoread.

Page 76: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Anotherwayofhelpingvisuallyimpairedpeopleisthroughtheuseofvoicerecognition.Thisallowsmobileuserstocontroltheentiremobileappthroughvoicecommands.

AuditoryImpairmentSomepeoplehavetroublehearing,meaningthattheydon’thearifsomeonecallsthemoriftheyreceiveaudionotifications,instructions,oranyotherkindofaudiocontent.Tohelppeoplewithhearingproblems,youcandothefollowing:•Usethebuilt-invibrationorvisualnotificationtoinformuserswhentheyreceiveacall,message,oranyothernotification.•Ifyourappreliesonvideocontent,usesubtitlestoinformtheuseraboutthecontentofthevideo.•Implementadjustablesoundorvolumecontrols.Thisisreallyimportantforpeoplewithahearingaid.•Ifyourappgeneratesanysounds,implementafeaturetoswitchthedevicetomonoaudio.Thiswillhelppeoplewhocanhearwithonlyoneear.

PhysicalImpairmentPhysicallyimpairedpeoplehaveproblemsperforminggestureswiththeirhands.Theyarenotabletousegesturessuchaspinch,tap,orswipetocontroltheelementsonthephoneorwithinthemobileapp.Tohelpthemuseyourapp,youcandothefollowingthings:•Usevoicerecognitionasthisallowsmobileuserstocontroltheentiremobileappthroughvoicecommands.•Implementafeaturetoincreaseordecreasethespeedofpressingbuttonsasthiswillmakeiteasierforphysicallyimpairedpeopletocontrolyourapp.

CognitiveImpairmentCognitivelyimpairedpeoplemayhaveproblemsrelatedtoattention,communication,memory,computation,andreadingskills.Thosepeopleexperienceproblems,forexample,withunderstandingcomplexnavigationsorinstructionsthattheyneedtofollowwithinanapplication.Tohelpthemuseyourapp,youcandothefollowingthings:•Implementaneasyandintuitiveuserinterface.Makeitassimpleas

Page 77: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

possibletounderstandanduse.•Usescreenreadersincombinationwithsimultaneoustexthighlighting.•Implementanauto-textfeatureforinputfieldssothatpreloadedanddefinedtextelementsarealreadyinplace.•Implementyourappinsuchawaythatcognitivelyimpairedpeoplehaveenoughtimetocompleteanoperation.

AccessibilityGuidelinesAsyouhaveseen,accessibilitytestingisareallychallengingtask,andyouandyourteamneedtofindawaytosupportsuchfeatures.Ifyourappisaccessible,itisveryimportantthatyoutestitwithpeoplewhohavesuchimpairmentsinordertobesurethattherequirementshavebeencorrectlyimplemented.Providinganaccessibleappwillincreaseyouruserbaseandimproveyourreputation.TheW3Ccreatedanaccessibilityinitiativethatcoversmostofthe

accessibilityconcerns.Youcanfindinformationatwww.w3.org/WAI/orwww.w3.org/WAI/mobile/.Togetdetailedmobileaccessibilityinformationforthedifferentmobileplatforms,checkthemanufacturers’Webpages.TheguidelinesforAndroidcanbefoundhere:•Androidaccessibilityguide(http://developer.android.com/guide/topics/ui/accessibility/index.html)•Androidaccessibilitytesting(http://developer.android.com/tools/testing/testing_accessibility.html)

TheguidelinesforiOScanbefoundhere:•iOSaccessibilityintroduction(https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/iPhoneAccessibility/Introduction/Introduction.html•AccessibilityoniPhone(https://developer.apple.com/library/ios/documentation/UserExperience/Conceptual/iPhoneAccessibility/Accessibility_on_iPhone/Accessibility_on_iPhone.html•iOSaccessibilitytesting(https://developer.apple.com/library/ios/technotes/TestingAccessibilityOfiOSApps/TestingtheAccessibilityofiOSApps/TestingtheAccessibilityofiOSApps.html

TheguidelinesforWindowsPhonecanbefoundhere:•WindowsPhoneaccessibilityguide(www.windowsphone.com/en-us/how-to/wp8/settings-and-personalization/accessibility-on-my-phone)

TheguidelinesforBlackBerryarehere:•BlackBerryaccessibilityguide

Page 78: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

(http://ca.blackberry.com/legal/accessibility.html)

BatteryUsageTestingWhiletestingamobileapp,youneedtotestbatteryconsumptionduringuse.Ifyourappconsumestoomuchpower,userswilldeleteitandmoveontoanotherone.Totestyourapp’sbatteryusage,youcanrunthroughthetwoscenarios

describedinthefollowingsections.

FullyChargedBatteryInthefirstscenario,youhaveafullychargedbattery.Afterinstallingandstartingtheapp,leaveitopenandputthedeviceinstandbymode(yourappisnowrunningintheforeground).Nowyouhavetowaitacoupleofminutes(orhours)toseewhethertheappisconsuminglotsofbattery.Checkthebatteryusagefromtimetotimeandnotethebatterylevel.Youshoulddothiswithdifferentdevicestogetbetterresults,anddon’tforgettocloseanyotherappsthatarerunningonthedevicetoeliminateanysideeffectstheymaycause.Thesametestshouldbedonewhentheappisrunninginthebackground.Toputtheappinthebackground,juststartitandthencloseit(bypressingthehomebuttonorclosebutton).Onmostmobileplatforms,theappwillnowruninthebackgroundormultitaskmode.Again,checkthedevicefromtimetotimetomonitortheapp’sbatteryusage.Usethesmartphonehardwarefeatures(ifusedwithinyourapp)suchasGPS

orothersensorsandcheckthebatterylevelofyourdevicewhileusingthosefeatures.It’simportantthatyourappswitchoffdevicefeaturesoncetheyarenolongerneeded.Ifyourappdoesn’tdothis,itwillconsumelotsofbattery.Checkthattheappisnotsendinganyunnecessaryrequeststoabackendsystemwhilerunninginthebackgroundorforeground.Unnecessaryrequestswillhaveanimpactonbatterylife.Tocheckthis,useaproxytoolsuchasCharles8orFiddler9tosendallyourrequestsandcommunicationsfromthedevicethroughyourworkstationtothebackendsystem.

8.www.charlesproxy.com/9.www.telerik.com/fiddler

Whileusingthedeviceandtheapp,checktoseeifthedevicegetshot.Insomecasesdevice-specificfeatureswillcausethedeviceandbatterytoheatup,whichwillhaveanimpactonyourdevicehardwareandmayultimatelydamageit.

Page 79: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Alsocheckthatyourappreallyisclosedafterremovingitfromthemultitaskthread.Toverifythis,openthemobile-specificappsystemsettingsandcheckthatyourappisnotcurrentlyrunningthere.

LowBatteryThesecondscenarioyoushouldtestiswhenthebatteryofthephoneisnearlyempty,whenithas10%to15%ofitscapacityleft.Inthisbatterystate,mostmobiledevicesswitchofffeaturessuchasnetworkconnections,GPS,andsensorsinordertoprolongthebatterylife.Ifyourappusesanyofthosefeatures,checkhowithandlesthislowbatterystate.Watchoutforfreezes,crashes,andperformanceissues.Onsomedevicesyoucanactivateapower-savingmodethatswitchesoff

sensorsorInternetconnections.Again,don’tforgettocheckhowyourapphandlesthispower-savingmode.Areallyimportanttestistoseehowyourapphandlesacompletelyempty

battery.Useyourappuntilthephonebatterydies.Thenpluginachargerandstartthephoneagain.Oncethephonehasbootedup,checkyourappfordatalossordatacorruption.Theappshouldworkasexpectedandnodatalossorcorruptionshouldoccur.Youshouldalsotestyourappinthetransitionfromagoodtoabadbattery

state.Mostdeviceswillpopupanalertinformingtheuserthatthebatteryisnearlyempty.Thistransitioncanhaveanimpactonyourapp,socheckitforfreezes,crashes,andperformanceissues.Thesameshouldbedonetheotherwayaround.Useyourappwhilethebatteryischargingasthiscanalsoimpacttheapp.

BatteryConsumptionToolsSomemobileplatformsofferabatteryusagestatistictoseewhichappisconsumingthemostbattery.Android,forexample,providessuchanoverviewtoseethecurrentstateofthebattery(seeFigure4.2).Usethistoolforyourbatterystatetesting;it’sreallyusefulformobiletesters!

Page 80: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure4.2Androidappbatteryusageoverview

Ifyouoryourdeveloperswanttoconstantlymeasurebatteryconsumptionduringyourproject,therearetoolsavailableforthat.ForAndroidthereisatoolcalledJouleUnit.10JouleUnitisanopen-sourceenergyprofilingtoolforAndroidappsthatfindsanyunnecessarybatteryusageofappswhentheyarerunning.ItalsomeasurestheusageoftheCPU,Wi-Fi,ordisplaybrightness.ThetoolbasicallyhasthesamestructureasJUnittestsandisreallyeasytointegratewithinyourdevelopmentenvironmentsoyoucangetearlyfeedbackaboutthebatteryconsumptionofyourapp.10.https://code.google.com/p/jouleunit/

iOSallowsyoutousetheenergyusagefunctionwithinInstruments11toprofiletheenergyusageofyourapp.InstrumentsispartoftheXcodedevelopmentenvironmentandisfreefortestersanddevelopers.11.

https://developer.apple.com/library/mac/documentation/developertools/conceptual/instrumentsuserguide/Introduction/Introduction.html

ThereareacoupleofusefuldocumentsonlineaboutenergyusagewithinInstruments:

•EnergyUsageInstrument(https://developer.apple.com/library/ios/documentation/AnalysisTools/Reference/Instruments_User_Reference/EnergyUsageInstrument/EnergyUsageInstrument.html

Page 81: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•LoggingenergyusageiniOS(https://developer.apple.com/library/ios/recipes/Instruments_help_articles/LoggingEnergyUsageinaniOSDevice/LoggingEnergyUsageinaniOSDevice.html

Batterytestingiseasytodoandshouldbepartofyourtoolchain.Combinethemanualwiththeprofilingapproachtogetgoodresults.

StressandInterruptTestingStressandinterrupttestingisanimportantpartofthemobiletestingprocess.Withtheaidoftools,mobiletestersareabletodetermineanypotentialperformanceorstabilityissuesexhibitedbyanapp.Totestyourappagainstinterrupts,youcanmanuallytriggerlotsofnotificationstothedevicewhileusingtheapp.Notificationscanbeincomingmessages,calls,appupdates,orpushnotifications(softwareinterrupts).Furthermore,pressingthevolumeupanddownbuttonsoranyotherkindofhardwarebuttonisalsoaninterrupt(hardwareinterrupt)thatcanalsohaveanimpactonyourapp.Doingallofthesetasksmanuallyisalotofworkandverytime-consuming.In

mostcases,thesetestscenarioscan’tbedonemanuallybecauseitisveryhardtosimulatefastandmultipleuserinputswithoneortwohands.Butitcanbedonewiththeaidoftools,anditisreallyeasytointegratethemintothedevelopmentandtestingprocess.ForAndroidapps,atoolcalledMonkey12canbeusedwhichispartofthe

AndroidSDK(SoftwareDevelopmentKit).Monkeycanrunoneitheraphysicaldeviceoranemulator.Whilerunning,itgeneratespseudo-randomusereventssuchasatouch,click,rotate,swipe,mute,Internetconnectionshutdown,andmuchmoretostress-testtheappandseehowithandlesallthoseinputsandinterrupts.12.http://developer.android.com/tools/help/monkey.html

ThepackagenameoftheAndroid.apkfileisneededtobeabletorunMonkey;otherwiseitwillexecuteitsrandomcommandstotheentirephoneinsteadofjusttheappundertest.Withaccesstotheappcode,thepackagenamecanbefoundinthe

AndroidManifest.xml.Ifonlythecompiled.apkfileisavailable,mobiletesterscanusetheAndroidAssetPackagingTool13(aapt)togetthepackagenamefromtheapp.aaptislocatedinthebuild-toolsfolderoftheinstalledAndroidSDKversion.13.http://elinux.org/Android_aapt

Thepathtoaaptmaylooklikethis:Clickheretoviewcodeimage

Page 82: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

/../daniel/android/sdk/build-tools/android-4.4/

Withthefollowingcommand,thepackagenamecanbereadoutfromthe.apkfile:Clickheretoviewcodeimage

./aaptdbadging/daniel/myApp/myApp.apk|grep'pack'

...package:name='com.myApp'versionCode=''versionName=''...

Whenthepackagename(inthiscasecom.myApp)isavailable,executeMonkeywithadb14(AndroidDebugBridge):14.http://developer.android.com/tools/help/adb.html

Clickheretoviewcodeimage

./adbshellmonkey-pcom.myApp-v2000

Thenumber2000indicatesthenumberofrandomcommandsthatMonkeywillperform.Withanadditionalparameter-sforseed,Monkeywillgeneratethesamesequenceofeventsagain.ThisisreallyimportantforreproducingabugthatmayoccurwhenrunningMonkey.ForiOSappsthereisasimilartoolcalledUIAutoMonkey.15UIAutoMonkey

isalsoabletogeneratemultiplecommandstostress-testaniOSapp.TouseUIAutoMonkey,aUIAutomationInstrumentstemplatemustbeconfiguredwithinXcode.Afterthetemplateisconfigured,aJavaScriptfileneedstobewrittentotellthetoolhowmanyandwhichcommandsshouldbeexecutedduringthestresstestingsession(seeListing4.1).15.https://github.com/jonathanpenn/ui-auto-monkey

Listing4.1UIAutoMonkeyScript

Clickheretoviewcodeimage

config:{numberOfEvents:2000,delayBetweenEvents:0.05,//Inseconds

//EventsthatwillbetriggeredonthephoneeventWeights:{tap:30,drag:1,flick:1,orientation:1,clickVolumeUp:1,

Page 83: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

clickVolumeDown:1,lock:1,pinchClose:10,pinchOpen:10,shake:1},

//ProbabilitythattoucheventswillhavethesedifferentpropertiestouchProbability:{multipleTaps:0.05,multipleTouches:0.05,longPress:0.05}},

Ifthescriptiswritten,itcanbeexecutedwithinXcode.Attheend,bothtoolsgenerateanoverviewofpossibleerrorsandproblemswithintheapp.

ImportantPleasevisitthetoolmanufacturer’sWebsiteforinstallationinstructions.

Asyoucansee,thesetoolsmakeitsimpletostress-andinterrupt-testamobileapplication.Besidesthat,usingthemisahugebenefitformobiletestersasithelpstheteambuildareliableandrobustmobileapp.Bytheway,it’susefultocombinebatterytestingwithstressandinterrupttestingtoseehowthebatteryisusedwhenlotsofinterruptsanduserinputsaretriggeredthroughouttheapp.

PerformanceTestingPerformancetestingisoneofthekeytestingareasineverysoftwaredevelopmentprojectandespeciallyformobileapps.IfyourememberthehighuserexpectationsdescribedinChapter1,“What’sSpecialaboutMobileTesting?,”mobileperformancetestingisareallyimportantandcriticalpartofappdevelopment.Mobileusersexpectanapptostart/loadwithintwoseconds;otherwisetheyareunhappyandmaydeleteit.Testersanddeveloperscanuseperformanceteststodiscoverpotential

bottlenecksintheirsoftwareapplication.Normally,performancetestingisdoneonserversorbackendsystemstocheckhowthesystemsorsoftwarecanhandlehugenumbersofrequests,tomeetacceptableresultsfortheusers.Performancetestsmustbeexecutedinadefinedstateoftheapplicationwith

hardwareresourcesthatareequaltothelivebackendenvironment.Thecollected

Page 84: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

datamustthenbeanalyzedtofindpossiblebottlenecksandproblemsinthesoftware.Performancetestingisacomplextopicthatshouldneverbeunderestimatedorpostponedtotheendoftheproject;itshouldbedoneasearlyaspossible.Keyperformancefiguresshouldbepartoftherequirementsphaseofappdevelopmentinordertostartplanningrightfromthebeginning.Formobileapps,performancetestsaremorecomplexandneedtocovermore

systemsinordertogetmeaningfulresultsthatimproveperformance.Thetypicalmobileappreliesonabackendsystem(server)withwhichit

communicates.Theappsendsrequeststotheserver,whichthenhandlesthoserequestsandsendsbackaresponse.Tosendasimplerequesttoabackendsystem,therearethreecriticalperformanceareasthatneedtobecovered:

•Theserver•Themobiledatanetworks•Themobiledeviceandappitself

Totesttheperformanceofmobileapps,youneedtoperformance-testatleastthebackendsystemandtheappitself.Itisnotpossibletotesttheperformanceofthemobiledatanetworks,anditmakesnosenseforyouasamobiletester.Thenetworkspeedandlatencycanbesimulatedduringthetestingphase,butthenetworkspeedwillbetotallydifferentwhileauserisonthemoveinrealdatanetworks.Inthischapter,Iwanttofocusonperformancetestingofthemobileappitself.

KeepthebackendsystemperformanceinmindandlookforfurtherinformationontheInternet.Thereareplentyofgoodtoolsavailabletohelpyousetupaperformancetestingsuite.Ifyouwanttodoperformancetestingwithinyourprojectandusetoolstodoso,keepthefollowingstepsinmindastheywillhelpyoutodefineaclearstrategy:

1.Planperformancetestsearlyinthedevelopmentphase.2.Designtheperformancetestsforyourapp.3.Preparetestdataandinfrastructure(theseshouldbethesameasfortheliveenvironment).

4.Executetheperformancetests.5.Collect,analyze,andevaluatethedata.6.Findpotentialbottlenecksandrefinetheapp.7.Monitortheapplicationchangesagaintoseeiftherefinementsweregoodenough.

Page 85: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

MobileAppPerformanceTestingWhentestingtheperformanceofamobileapp,keepitsimpleandfocusontheUIoftheapp.Forexample,useastopwatchandmeasuretheapplicationlaunchorthedelaysbetweencertainoperations.Measuretheloadingtimeofthecontentsuchasimages,text,oranimationsthatneedtobecreatedorprocessedbytheapp.Performthosetestsseveraltimesandnotetheperformedstepsinordertoreproduceandtrackpossibleperformanceissues.Also,writedownhowoftentheproblemoccurred.Ifithappensallthetime,that’sfine;thatisaneasyfix.Butsomeproblems,especiallyperformanceproblems,mayhappenonlythreeoutoftentimes.It’sthereforeimportanttofindthebugandreproducethebehavior.Whiletestingtheapp,writedowneverythingthatseemsslowasitcouldbea

potentialperformanceissue.Manualperformancetestingshouldbedoneonseveraldeviceswithdifferenthardwarespecificationsinordertogetmeaningfulresults.Anothertestthatshouldbedoneisacomparisonbetweenthecurrentapp

versionthatisliveandavailablefordownloadintheappstoresandthenewreleasecandidateapp.Comparebothversionsintermsofapplaunchtimeandallotherareas.Thenewreleasecandidateshouldnotbeslowerthanthecurrentversion;otherwisetheappwillgetbadfeedbackfromusers.

ImportantThecomparisonshouldbedoneonthesamehardware;otherwisetheresultswilldiffer.

Ifyourappcontainsthird-partyelementssuchasadvertisingornewsfeeds,checkthatthoseelementshavenoimpactontheperformanceoftheapp.Asanexample,youcanuseaWebproxytoollikeFiddlertosendthethird-partyrequesttoatime-outtoseethatithasnoimpactontheapp’sperformance.Anotherwaytotesttheperformanceoftheappistoprofileandmeasurethe

processandoperationtimeofthecode.Thereareplentyofprofilertoolsavailabletochecktheappcodeforpotentialbottlenecksandperformanceissues.Thistaskshouldbedonebythedevelopers,soencouragethemtousesuchtools.Tosummarizethesimplemobileappperformancetests:•Measuretheapp’slaunchtime.•Checkfordelaysduringoperationsoruserinteractions.

Page 86: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Measuretheloadingtimeofthecontent.•Noteeverythingthatseemsslow.•Testondifferenthardware,especiallyonslowerphones.•Comparetheliveappversionwiththenewreleasecandidate.•Checkforthird-partyelements.•Useprofilingtoolstomeasuretheprocessandoperationtimeofmethodsandclasses.

Asyoucansee,thesearesimplestepstotesttheperformanceofamobileapp.Ifyouwantmorecomplexanddetaileddataabouttheperformanceoftheapp,thebackend,andthedatanetworks,you’llneedtouseaperformancetestingtoolorsolutionthatcoversallparts.Thereareplentyofmobileappperformanceprovidersavailable,sosearchforthemontheInternetandseewhichonebestfitsyourdevelopmentandtestenvironment.

StandbyTestingStandbytestingisreallyeasyandsimpletodobutcanshowsomenicecrashes,freezes,andUIglitcheswithintheapp.Whiletheappisrunning,putthedeviceintostandbymodebypressingtheoffbuttononce.Dependingontheappundertest,wakeupthedeviceafteracoupleofseconds,minutes,orhourstoseehowtheappreactsuponwake-up.Mostappsfetchdataupdatesfromthebackendsystemafterawake-uptorefreshthecurrentUI.It’spossibleforabugtopreventtheappfromdisplayingthenewlyfetcheddatacorrectly,oritmayfreezeorcrash.IfaUIviewupdatemechanismisimplemented,youmustmakesurethismechanismworksafterthedevicewakesupandfetchesthelatestdata.AlsotestthescenarioofnothavinganInternetconnectionwhiletheappisin

standbymode.Totestthat,opentheapp,closethedevice’sInternetconnection,andputthedeviceintostandby.Afteracertainamountoftime,wakeupthedeviceandcheckthebehavioroftheapp.Itwillprobablycheckforupdates,butthereisnoInternetconnection.Inthiscase,theappmustshowapropererrormessagetotheuser,informinghimorherofthecurrentsituation.Don’tforgettocheckthatthedeviceisabletocommunicatewithdevice-

specifichardwareelementsafterwakingup.Feelfreetogetcreativewhentestingtheappforstandbyandwake-upproblems.

InstallationTestingTheinstallationprocessisthefirstimpressionamobilecustomerhasofanapp.

Page 87: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Iftheinstallationfailsduetoerrorsorproblems,thecustomerwillnottrytodownloadtheappagainandwillmoveontoanotherone.Toavoidsuchproblems,installationtestingmustbemadepartofthemobiletestingprocessandshouldbeperformedatleastbeforeanewversionisdueforrelease.Totestyourappforinstallationproblems,performthefollowingtasks:•Verifythattheappcanbeinstalledsuccessfullyonthelocalstorageormemorycardofthedevice.•CheckthattheinstallationworkswithdifferentInternetconnectionssuchasWi-Fiormobiledatanetworks.•ChangetheInternetconnection(Wi-Fito3G,forexample)whiletheappisinstalling.•Switchtootherappswhiletheappisinstalling.•Switchthedevice’sInternetconnectionoff,forexample,toairplanemode,whiletheappisinstalling.•Trytoinstalltheappwhenthereisnotenoughspaceleftonthelocalstorage.•Trytoinstalltheappviadatacableorsyncingfrommobile-specificsoftwareapplications.

Whenperformingthoseactions,watchoutforerrormessagesintheappaswellascrashesandfreezes.Whentheappsuccessfullyinstalls,mobiletestersshouldalsotesttheother

wayaroundbytestingtheuninstallprocess.Souninstalltheappandcheckthatitiscompletelyremovedfromthedevicewithnodataleftonthehardwareorlocalstorage.Toverifythattheappwasremovedcompletely,checkthedevice’smemoryandfoldersforleftoverdata.Anotherwaytoverifythattheappwasremovedsuccessfullyistoinstalltheappagainandtocheckthat,say,auserisnotloggedinautomaticallyorthattheappdoesn’tshowanydatafromthepreviousinstallation.Thesetestsarereallyimportantbecausesomedevicesaresharedwithinacompanyorfamilyandleftoverdatacanleadtoserioustrouble.Somemobileplatformsofferdifferentwaysofuninstallinganapp,soyou

havetotestallofthem.Whileuninstallingtheapp,watchoutforerrormessages,crashes,andfreezes.

UpdateTestingAsyouhavelearnedintheprevioussections,testinganappduringtheinstallanduninstallprocessesisreallyimportant.Besidesinstallinganduninstallingan

Page 88: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

app,usersarealsoabletoupdatetheappfromoneversiontoanother.Duringthisupdateprocess,lotsofthingscangowrongandneedtobetestedbeforeanewappversionissubmittedtotheappstores.Testingtheupdateprocessincludesscenariossuchasthefollowing:•Logged-inusersshouldnotbeloggedoutfromtheappaftertheupdateisinstalled.•Theupdatewillnotaffectthelocaldatabase;thatis,existingdatawillnotbemodifiedordeleted.•Theappisinthesamestateasbeforetheupdatewasinstalled.•Testingtheupdateprocesswillsimulatetheupdateprocessintheappstores.

Youshouldalsotesttheupdateprocessfromafarolderappversiontothelatestonetoseewhathappenstotheapp.Whiledoingupdatetesting,keepaneyeoutforerrormessages,crashes,freezes,andperformanceissuesrightaftertheupdate.Inthefollowingtwosections,Iwilldescribehowtoperformupdatetestingon

iOSandAndroid.Nevertheless,ifyouaretestingaWindowsPhone,BlackBerry,oranyotherkindofapp,youshouldofcoursedoupdatetestingaswell.

iOSUpdateTestingTherearetwowaysofsimulatingtheupdateprocessforiOSapps.ThefirstonecanbeperformedwithiTunesbyfollowingthesesteps:

1.BuildanadhocversionoftheappthatiscurrentlyliveintheAppleAppStore.HINT:Thisversionmusthavethesamebundleidentifier(packagenameorstructureoftheappclasses)asthenewapp.

2.BesurethatnoolderversionoftheappisinstalledwithiniTunesandonthetestdevice(syncwithiTunestobesure).

3.Dragtheappfromstep1intoiTunesandsynctheversiontoyourtestdevice.

4.Launchtheappanddosomemanualtestingtomakesurethattheappisworking.

5.Buildthenewreleasecandidateversionoftheapp,dragittoiTunes,andsyncittothedevice.iTunesshouldconfirmthattheolderversionwillberemoved.

Page 89: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

HINT:Donotdeletetheoldbuild!InthenextstepiTuneswillinstallthenewappovertheoldoneandsimulatetheupdatefromtheAppStore.

6.LaunchthenewversionoftheappandcheckthateverythingisOK.ThesecondwayoftestingtheupdateprocessforiOSistousetheApple

Configurator.16Thistoolisfareasiertouse,especiallyifyouwanttotesttheupdateprocedureonseveraliOStestdevicessuchasaniPhone4(S),iPhone5(S),oriPad.16.http://help.apple.com/configurator/mac/1.7/?lang=en

1.BuildanadhocversionoftheappthatiscurrentlyliveintheAppleAppStore.HINT:Thisversionmusthavethesamebundleidentifierasthenewapp.

2.Besurethatnoolderversionoftheappisinstalledonthetestdevice.3.Usethetooltoinstalltheappfromstep1tothedevicesforwhichyouwanttochecktheupdateprocess.

4.Launchtheappanddosomemanualtestingtomakesurethattheappisworking.

5.Buildthenewreleasecandidateversionoftheappandinstallitwiththetool.Theupdateprocesswillbesimulated.

6.LaunchthenewversionoftheappandcheckthateverythingisOK.Forfurtherinformation,pleasereadthetechnicalnoteTN228517fromApple

abouttestingupdatesoniOSdevices.17.

https://developer.apple.com/library/ios/technotes/tn2285/_index.html#//apple_ref/doc/uid/DTS40011323

AndroidUpdateTestingThesameupdatetestingcanbedonewithAndroidapps.TotesttheupdateprocessforAndroidapps,youcanusetheadbtoollocatedintheAndroidSDKfolder:

1.InstallthecurrentGooglePlaystoreversionoftheapptothetestdevice:Clickheretoviewcodeimage

./adbinstallRELEASED_APP_NAME.apk

2.Checkthatthisversionworks.3.BuildareleasecandidateoftheAndroidapp.

Page 90: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

HINT:BesuretosignthereleasecandidatewiththePlaystorekeystore.4.Usethefollowingcommandtoinstallthenewversionoftheappandtotesttheupdateprocedure:

Clickheretoviewcodeimage

./adbinstall-rNEW_VERSION_APP.apk

Theoption-rmeanstheappwillbereinstalledandretainitsdataonthephone.

5.Thenewversionoftheappisnowinstalledandcanbetested.Asyoucansee,updatetestingisveryeasytodo.It’sreallyimportantto

performthesechecksbeforesubmittinganapptothevariousappstores.

DatabaseTestingAppsuselocaldatabases,inmostcasesaSQLite18database,topersistdataonthephone.Storingthedataorthecontentofanappinalocaldatabaseenablesmobileappstopresentthecontentwhenthedeviceisoffline.ThisisahugeadvantagecomparedtomobileWebappsthatrelyonastableInternetconnectioninordertoworkproperly.Thefactthatmobileappsusedatabasesmeansthatmobiletestersneedtotestthemandtheactionsthatwillbeexecutedonthedatabase.18.www.sqlite.org/

Localdatabasetestingcanbeperformedmanuallyorautomated.Thegoalistotestdataintegritywhileediting,deleting,ormodifyingthedata.Inordertoachievegooddatabasetesting,youneedtoknowthedatabasemodelwiththetablenames,procedures,triggers,andfunctions.Withthehelpofdatabasetools,youcanconnecttothedevicedatabasetotestandverifythedata.Thefollowingtypesoftestsshouldformpartofyourmobiledatabasetesting:•Databasevalidationtesting•Databaseintegrationtesting•Databaseperformancetesting•Procedureandfunctiontesting•Triggertesting•CRUD(Create/Read/Update/Delete)operationstestingtomakesuretheywillworkonthedatabase•TestingthatthedatabasechangesareshowncorrectlyontheUIoftheapp

Page 91: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Searchandindexingfunctiontesting•Databasesecuritytesting•Testingthedatabaseformigrations

Becausedatabasesanddatabasetestingarehugetopicsinthemselves,Irecommendfurtherreadingtogathermoreinformationaboutthedifferentdatabasetechnologies.The“BooksaboutSQLite”19pagecontainslotsofusefulbooksonthistopic.19.www.sqlite.org/books.html

LocalStorageTestingLocalstoragetestinghasnothingtodowiththeappdatabase;instead,youshouldcheckhowtheappreactsindifferentstatesofthedevice’slocalstorage.Everydevicehasacertainamountofstoragecapacityformusic,images,apps,andanyotherkindofdatathatcanbestoredonthedevice.Somedeviceshaveonlyasinglecentralandpermanentlyinstalledlocalstorage,andusersarenotabletoextendthosedeviceswithadditionalstorage.However,therearemanydevicesthatofferthepossibilitytoextendthelocalstorage,forexample,withamicroSDcard.Whentestingamobileapp,youshouldtesttheapptogetherwithdifferent

statesofthelocalstoragetobesurethattheappcanhandlethemproperly.Thefollowingscenariosshouldbetested:

•Testtheappwhenthelocalstorageisfull.•Testtheappwhenthelocalstorageisfullbuttheextendedstoragestillhassomespaceleft.•Testtheappwhenthelocalstoragehassomespaceleftbuttheextendedstorageisfull.•Testtheappwhenbothstorageareasarefull.•Testtheappwhenthelocalstorageisnearlyfull.Performsomeactionswithintheappthatwillwritelotsofdatatothelocalstorageinordertofillitup.•Removethedevice’sextendedstorageandcheckthebehavioroftheapp.•Ifpossible,movetheapptotheextendedstorageandcheckthebehavior.•Testtheappwhenthelocalstorageisempty.

Whenperformingthesescenarios,watchoutforappcrashes,errormessages,appfreezes,performanceissues,UIglitches,andanyotherkindofstrange

Page 92: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

behaviorthatcouldindicateaproblem.

SecurityTestingSecuritycanbebusinesscritical—forexample,whenattackersstealyourcustomerdata—thusmakingitaveryimportantpartofthedevelopmentandtestingprocessofyourmobileapp.Securitytestingisacomplextopicthatrequiresknowledgeinmanydifferentareas,suchasclient-servercommunication,softwarearchitecture,andsystemarchitecture.Becauseofitscomplexnatureandthespecializedskillsetrequired,securitytestingisbestdonebyexperts.Itincludesmethodssuchasmanualorautomatedpenetrationtestingwithman-in-the-middleattacks,fuzzing,scanning,andauditingthesoftware.Penetrationtestingisanapproachusedtofindsecurityweaknessesinan

applicationthatallowaccesstoitsfeaturesanddata.Thereareseveralopen-sourceandenterprisetoolsonthemarketthatcantesttheapplicationforcommonvulnerabilities.AlistofcommonsecuritytestingtoolscanbefoundontheOWASP(OpenWebApplicationSecurityProject)page.2020.www.owasp.org/index.php/Appendix_A:_Testing_Tools

Withtheaidofaproxytool,anattackercanchangeormonitorcommunicationbetweenaclientandaserver.Thisallowstheattackertoreadsensitivedatasuchasusernamesandpasswordsormanipulatethebehavioroftheclientbysendingforgeddatatoit.Thismethodisknownasaman-in-the-middleattack.Fuzzingisamethodtogenerateandsendrandomdatatoasysteminorderto

seehowthesystemreactstothedatainpreparationforapossibleattack.Thankstoscanningtools,thesystemcanbecheckedforknownvulnerabilitiesthatcanbeexploitedinordertogainaccess.Auditsaremostlikelyperformedbycertifiedsecurityproviders.Withthehelp

oftheexternalpartners,theapplicationwillbecheckedmanuallyandautomaticallyforvulnerabilitiesandpossibleattacks.Recallthatthedefaultmobileapparchitectureincludesthefollowing:•Themobileappitself•Themobiledatanetworks•Thebackendsystem

Youhavethreepossibleareasthatneedtobetestedforsecurity.Itwillbenighonimpossibletotestthedatanetworksforsecurity,butthedatanetwork

Page 93: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

providersalreadydothistoensureasafeandsecurecommunicationenvironment.Therefore,twoareasremainforsecuritytesting:theappandthebackend.Tosimplifythings,Iwanttofocusonmobileappsecuritytesting.

CommonAppSecurityMistakesThefollowinglistcontainsthemostcommonsecurityproblemsofmobileapps:

ImportantThesepointscanbeusedduringthedevelopmentphasetocheckforcommonmistakes.However,lookingforthesecommonmistakesisnotareplacementforexpertsecuritytestinglikethatmentionedearlier.

•Cachestorage:Sensitivedatasuchaspasswordsortokensiscachedonthedevice.•Unintendedlocalstorage:Sensitivedatasuchaspasswords,tokens,orcreditcarddetailsisstoredbyaccident.•Encryption:Sensitivedatasuchaspasswordsisnotencryptedonthedevicestorage.•Client-sidevalidation:Passwordverificationisperformedonlyontheclientside.•Unencryptedcommunication:Communicationfromtheapptothebackendsystemsisnotencrypted.•Unnecessaryapppermissions:Appsusepermissionsfordevicefeaturesthattheydonotneedoruse.

Toavoidthesemistakes,youshouldkeeptheminmindandtestforthem.Toverifythecachestorageofthedevice,testyourappforinputsanddatathatarenotstoredonthedevice.Checkthedevicecachestoragefordatayoujustenteredandverifythatthedataiscachedforonlyacertainamountoftime.Toverifythecachestorage,useanappthatisabletolookatthefilesystemlevelandcheckthatthecachefolderofyourappcontainsonlythepermitteddata.Turnthedeviceoffandonagainandcheckthedeviceandappcacheasbothmustbeemptyinordertoensurethatthereisnosensitivedataleftonthedevice.Thesameappliestodatathatisstoredonthedevicebyaccident.Checkthedevicestorageandfilesfordatathatisnotallowedtobeonthe

device.Toverifythelocalstorageofthedevice,useappsordevelopertoolsthat

Page 94: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

grantaccesstothelocalstorage.Ifyourappusesalocaldatabasetopersistthecontentordatasuchasthelogin

credentialsofyourapp,besurethatsuchdataisencryptedinthelocaldatabase.Checkthataformofencryptionisinplaceatthedatabaselevel.Ifyourappusesalogintograntaccesstothefeaturesandcontentdelivered

fromabackendsystem,besurethattheuserisnotvalidatedontheclientside.Validationshouldalwaysbeperformedonthebackendsystem.Ifthedevicegetslostandvalidationiscarriedoutonlyontheclientside,itisveryeasyforattackerstochangethevalidation,tomanipulateorstealsensitivedata.Mostappsrelyonabackendsystemfortheusertosendorreceive

informationanddata,toreadthelatestnews,tocommunicatewithfriendsinsocialnetworks,ortosende-mails.Ifthecommunicationbetweentheappandthebackendcontainssensitive,unencrypteddata,itmakessensetoencryptit,suchaswithTLS(TransportLayerSecurity).Ifanappwantstouseadevice-specificfeaturesuchasthecameraorwantsto

synchronizecontactswiththeaddressbook,specialpermissiontoaccessthoseelementsisrequired.Whendevelopingandtestinganapp,keepaneyeonthosepermissions.Useonlythepermissionsyourappreallyneeds.Otherwisetheusermaynotuseyourapp,becauseheorsheisskepticalaboutitormayfeellikeheorsheisbeingwatched.Theuseofunnecessarypermissionscanalsobeavulnerabilityfortheappandthedatastoredonthedevice.Ifyoudon’tknowthepermissionsofyourapp,talktoyourdevelopersaboutitandaskcriticalquestionsaboutthepermissionsandtheirpurpose.

SecurityRequirementsAnalysisThesecurityrequirementsanalysisshouldbepartofthefirstrequirementsanalysisphaseofeachmobileappproject.Youshouldraisethetopicasearlyaspossibletoavoidproblemsattheendoftheproject.Thefollowinglistcanhelpyouwiththesecurityrequirementsanalysis:

•Identifythepossibleuserrolesaswellastheirlimitationsandpermissionswithinthearchitecture(appandbackend).•Doestheuserrolehaveanimpactontheexistingsecurity,forexample,thebackend?•Isanexternalauditrequired?Whatshouldbepartofthisaudit?•Whatkindofsecuritytestingapproachesandtoolsarerequiredinordertoachieveagoodsecuritylevel?

Page 95: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Dowehaveenoughskillsforsecuritytesting?Thislistisbynomeanscomplete.Dependingontheappanditscomplexity,thislistcanbemuchlonger.Agoodsourceofvaluableinformationaboutmobilesecurityisthe“OWASP

MobileSecurityProject”page.21Theprojectcollectsinformationaboutmobilesecuritysuchasthefollowing:21.www.owasp.org/index.php/OWASP_Mobile_Security_Project

•MobileTools(www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Mobile_Tools•MobileSecurityTesting(www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Mobile_Security_Testing•MobileCheatSheet(www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Mobile_Cheat_Sheet

Thisinformationcanbeveryusefulduringboththesecurityrequirementsanalysisphaseandtheactualsecuritytestingphase.AnotherinterestingandusefulpartoftheOWASPprojectisthelistof“Top

10MobileRisks.”22Thelistincludesthefollowingtopics,withagoodexplanationofeachtopicandpossiblesolutions:22.www.owasp.org/index.php/OWASP_Mobile_Security_Project#tab=Top_10_Mobile_Risks

1.WeakServerSideControls2.InsecureDataStorage3.InsufficientTransportLayerProtection4.UnintendedDataLeakage5.PoorAuthorizationandAuthentication6.BrokenCryptography7.ClientSideInjection8.SecurityDecisionsviaUntrustedInputs9.ImproperSessionHandling10.LackofBinaryProtection

MobileSecurityTestingSummarySecuritytestingisacomplexanddifficultpartofthesoftwaredevelopmentandtestingprocess.Itrequiresspecialskillsandknowledgeoftechnologytoensurethatthesoftwareorappissecureagainstattacksandvulnerabilities.Youasa

Page 96: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

mobiletestershouldalwayskeepsecuritytestinginmind.Talkaboutthetopicasearlyaspossibleintherequirementsanalysisphase.Ifyou’renotsurewhetheryoucantestthesecurityoftheappsufficiently,youshouldgetsomehelpfromexpertsasearlyaspossibleintheprocess.Keepthefollowingpointsinmindtoensureasecuremobileapp:•Testtheappfordifferentinputs;forexample,haveapreparedlistofpossibleattackstringsavailable.•Dopenetrationtestingontheappandthebackendsystem.•Useaproxy,afuzzer,andascannertoverifyeachpartoftheappandthebackendarchitecture.•Checktheappforcommonmistakes.•HavealookattheOWASPMobileSecurityProjectandfollowtheguidelinessetoutthere.•Checktheapp’scertifications.•Keepup-to-datewiththelatestmobiletechnologiesandsecuritynews.•Hireexperts.

ImportantThesecuritytopicscoveredinthischapterareaveryroughoverviewofpossiblethingstoconsider.Mobilesecurityisahugeandcomplextopic,sopleasescourtheInternetforfurtherinformation.

PlatformGuidelineTestingAnothertopicyouneedtobeawareofisthemobile-platform-specificguidelines.Eachapphastofollowsuchguidelinesinordertomeetthedesign,usability,andplatform-specificpatterns.Iftheappfailstofollowtheseguidelines,itmightberejectedfromtheappstore.Inaddition,followingthedesignprincipleswillmakeyourcustomershappybecausetheyknowhowtouseplatform-specificfeaturessuchasswipingfromlefttorighttoswitchviews,ortopulltorefreshandupdatethecurrentview.Itisimportantthatsuchguidelinesbeincludedinthedesignphaseofanapp.

Followingtheguidelinesfromtheverybeginningoftheprojectwillsaveyoutimeattheendbecauseyouwillencounterfewerbugsthanyouwouldbynotfollowingtheguidelines.

Page 97: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Whentestingamobileapp,keeptheplatform-specificguidelinesinmind.Youshouldknowthembyheartoratleastknowwheretofindthem:

•AppleiOSdesignresources(https://developer.apple.com/library/ios/design/index.html#//apple_ref/doc/uid/TP40013289•AppleiOSapprovalguidelines(https://developer.apple.com/appstore/resources/approval/guidelines.html•Androidguidelines(https://developer.android.com/design/patterns/index.html)•WindowsPhoneguidelines(http://dev.windowsphone.com/en-us/design)•BlackBerryguidelines(http://developer.blackberry.com/design/bb10/)

ImportantMakesureyou’refamiliarwiththelatestmobileplatformguidelines.Theychangewitheverynewmobileoperatingsystemversionthat’sreleased.

ConformanceTestingConformancetestingaimstoensurethatthesoftwaremeetsadefinedsetofstandards.ThesestandardsaredefinedbyindependententitiessuchastheEuropeanTelecommunicationsStandardsInstitute23(ETSI),theWorldWideWebConsortium(W3C),24andtheInstituteofElectricalandElectronicsEngineers(IEEE).2523.www.etsi.org/24.www.w3.org/25.www.ieee.org/index.html

Ifyourapphastoimplementdefinedstandards,youmustverifythatthosestandardsaremet.Itisimportantforyoutobeawareofthosestandardsandthatyouknowhowtocheckthem.However,thestandardsshouldalreadyformpartofyourrequirementsanalysisphase.Whenitcomestothedevelopmentphase,talktoyourdevelopersaboutimplementingthestandardsbyaskingquestions,performingacodereview,andwalkingthroughthedefinedstandardsdocumentation.Dependingonthemobileapptypeandpurpose,anexternalinstitutionmaybe

requiredtoverifyyourappinordertocheckthatyoucorrectlyimplementedtheirstandards.Thiswillbethecasewithmedicalappsorappsthatareusedbygovernments.Insomecases,theapphastobetestedforlegalcompliance.

Page 98: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

ImportantKeepconformancetestinginmindandaskquestionsattheverybeginningoftheproject.

CheckingtheLogFilesWhiletestingyourmobileapp,connectyourdevicetoyourcomputerandchecktheapp’slogfileswhileusingit.Togetaccesstothelogfiles,youneedtoinstallthedevelopertoolsonyourcomputersoyoucanruntheappindebugmode.Whencheckingthelogfiles,watchoutforerrors,warnings,orexceptionsthat

occurwhileusingtheapp.Savetheinformationfromthelogfilealongwithstepsforhowtoreproducetheproblemandpasstheinformationontothedevelopers.Logfileinformationisextremelyusefultodevelopersforfindingandsolvingproblems.Besideslookingforerrorsandcrashes,youshouldlookforsensitivedatasuchastokensorpasswordsthatarevisibleinthelogs.Whentestingyourappwithoutacableconnectiontoyourcomputer,andthe

appcrashesorexhibitsstrangebehavior,leavetheappandthedeviceinthisstateandconnectitassoonaspossibletoyourcomputerandthedevelopertoolssoyoucancheckthelogfilefortheerror.Beforesubmittinganapptotheappstores,youhavetocheckthelogfilesfor

debuginformation,warnings,anderrorsagain.Debuginformationaswellaswarningsanderrorsshouldnotbepartofthereleaseversionoftheapp.Alsokeepthelogfilesofthebackendsystemsinmindastheylogdifferent

kindsofinformationsuchasrequestsandresponsesaswell.

ImportantSomebugsarevisibleonlyintheapp’slogfiles.Suchbugsmaynotbeshowntotheuserbutcouldhaveahugeimpactonthefunctionalityoftheapp.

BeCreative!Upuntilthispoint,thisbookhaspresentedasystematicapproachtomobiletestinganditsspecifics.Buteveryonewhohaseffectivelytestedsoftwareknowsthatmostofthetime,thereallynastybugsdon’toccursystematically.Bugscomeindifferentshapes,sizes,andsituations,andsometimesit’sreallyhardtofindthem.

Page 99: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Afteryouhavetestedyourmobileappinasystematicway(orbeforestartingwiththesystematicapproach),itisusefultothinkoutofthebox.Leanback,stepawayfromallthetestcasesandsystematicapproaches,andjusttrytobreakit!Testtheappforalimitedtimeframe—30minutes,forexample—andtrytofindsomebugsusingyourowncreativeapproaches.Becreativewithyourtesting.Trytothinkofedgecasesthataremostlikelyto

happenintherealworldwhenlotsofpeoplewillbeusingthemobileappinatotallydifferentwayfromwhatyouandyourteamexpect.Docrazythingswiththeappandthedevice.Rotateorflipthedevice,use

morethanonehandtointeractwiththeapp,andpressbuttonsasfastaspossible.Whiledoingthat,watchoutforanyunexpectedbehavior,crashes,freezes,

errormessagesthatmakenosense,andanyotherstrangethings.Isuggestthatyourecordthiskindoftestsessionbecauseitisverylikelythatanybugsthatoccurwillbehardtoreproduce.Anotherapproachcanbepairtesting,whichinvolvesonepersontestingtheappwhileanotherpersonwatchesandtakesnotesabouttheperformedtests.

Checklists,Mnemonics,andMindMapsThispartofthechapterisallaboutreminders.Yourdailytestingbusinessisstressfulandtherearesomanythingstoremember,do,andexplore.Youmaywanttousesomemodelsortoolstopreventyoufromforgettingimportantaspectsofyourwork.Threeveryniceapproachesyoucandrawuponare

•Checklists•Mnemonics•Mindmaps

ChecklistsEverynewfeaturethatwillbedevelopedneedstobetested.Softwaretestersusuallydefinetestcasesinordertosystematicallytesteverynewfeatureandavoidforgettinganything.Whenthetestcasesarefinished,asoftwaretesterusuallyprioritizesthemanualtestcasesforthetestautomationtoextendtheregressiontestsuiteandavoidmanuallytestingthenewfeatureoverandoveragain.However,noteveryfeatureortestcasecanbeautomatedbecausethetestmaybetoocomplexandwillmostlikelyendupcausinglotsofmaintenancework.Butwhatcanyoudoifsuchatestorfeatureiscriticalfortheapporthe

Page 100: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

business?Neverexecutingitagainissimplynotanoption.Tohelpyouavoidforgettingimportantthings,youmayfinditusefultowrite

achecklistwithpartsoftheappthatneedtobemanuallytestedagainbeforegoingliveorafteraprojectmilestonehasbeenreached.Checklistscanbeverygenericandhighlevelsothattheycanbeusedin

severaldifferentprojects,ortheycanbereallylowlevelwithspecificstepstotestacertainfeature.ThemobiletestingchecklistinTable4.1isagenericonethatcoverslotsof

importantaspectsofthemobileapptestingprocess.Thislistcanbeusedforseveraldifferentmobileapps.

Page 101: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 102: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 103: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Table4.1GenericMobileTestingChecklist

ImportantThislistisbynomeanscomplete;itismerelyanexampleofwhatamobiletestingchecklistcouldlooklike.

Thischecklistshowssomepossiblegenericmobileteststhatcouldbeexecutedontopofyoursystematictestingapproach.Itmayalsobeusefultocreateareleasechecklistforthewholeteamsotheydon’tmissanythingimportanttotheprocess.However,checklistscanbereallyspecifictocoveraveryspecialpartoftheapp,suchasthepaymentandbillingprocesses,orthedifferentsensorsandinterfaces.

Page 104: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

ImportantBecreativewithchecklists.Createyourowncheckliststhatarespecifictoyourappandproject.

MnemonicsSFDPOT,FCCCUTSVIDS,andISLICEDUPFUNarenottypos.They’reabbreviationsformnemonics.Mnemonicsarelearningtechniquesthataidinformationretention.Whenitcomestomobileapptesting,eachletterstandsforatestingapproachortechniqueusedforsoftwareapplications.Mnemonicsareusedtorememberimportantaspectswhiletestingsoftwareapplicationsandareveryusefulforsoftwaretestersbecausetheyareeasytorememberandincludepowerfulideasandbestpracticesonhowtotestsoftware.SFDPOT26isamnemonicfromKarenNicoleJohnsonthatsheadaptedfrom

JamesBach’smnemonicSFDPO27(betterknownas“SanFranciscoDepot”)onmobiletesting.Karenincludedthefollowingpoints:26.http://karennicolejohnson.com/2012/05/applying-the-sfdpot-heuristic-to-mobile-testing/27.www.satisfice.com/articles/sfdpo.shtml

•Structure:Testwhatit’smadeof.•CanIdownloadtheapp?•CanIdownloadanupdate?

•Function:Testwhatitdoes.•Doestheapporsiteperformthetasksorfeaturesitwasdesignedto?•Doestheapporsiteprevent,block,ornotincludefeaturesnotintendedonamobiledevice?

•Data:Testwhatitdoesitto.•Doestheappfindtime-relateddatabasedonthedevicetime?•Doestheappfindlocationsbasedonmylocation(suchasmovietheatersorhotels)?

•Platform:Testwhatitdependsupon.•Doestheappuselocationservices?•Doestheappdependonanydevicesettings?

•Operations:Testhowit’sused.•DoestheappfunctionwhenIammovingandtravelingaround?•WhathappenswhenIswitchtoWi-Fiversus3G?

Page 105: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Time:Testhowit’saffectedbytime.•Whathappensifthetimezoneisswitched?•Whathappenswhenmylocationisswitched?

Foreachpart,Karenwrotesomequestionstoaskwhiletestingamobileapp.Checkoutthefulllistofquestionsinherblogpost“ApplyingtheSFDPOTHeuristictoMobileTesting.”Useandadaptthemtotestyourapp.AnothermnemonicisFCCCUTSVIDS28byMikeKelly,whonoteddown

hisideasintourstoexploreandtestapplicationsinseveralways:28.http://michaeldkelly.com/blog/2005/9/20/touring-heuristic.html

•Featuretour•Exploretheapplicationandgettoknowallthecontrolelementsandfeatures.

•Complexitytour•Findthemostcomplexpartsoftheapplication.

•Claimstour•Findalltheinformationaboutthesoftwarethattellsyouwhattheproductdoes.

•Configurationtour•Findallthewaystochangethesettingsoftheapplication.

•Usertour•Imaginehowthepossibleusersoftheapplicationwillusethesoftwareandwhattheyexpectfromit.

•Testabilitytour•Findallfeatureswithinthesoftwarethatcouldbetestedwiththehelpoftools.

•Scenariotour•Imaginepossiblescenariosastohowthesoftwarewillbeusedbyitsusers.

•Variabilitytour•Trytofindwaystochangetheapplication.

•Interoperabilitytour•Doesthesoftwareinteractwithothersoftware?

•Datatour

Page 106: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Findthedataelementsoftheapplication.•Structuretour•Gatherasmuchinformationaspossibleabouttheapplication,suchastheprogramminglanguage,APIs,hardware,andsoon.

Thedescribedtoursareanexcellentwayoffindingoutpossiblesettings,features,orconfigurationsofthesoftwareapplication.Besidesthat,thetourscovertheuser’sperspectiveandareidealforexploringtheapplication.Allofthementionedtourscaneasilybeadaptedtomobileapps.AnothergreatmobiletestingmnemonicisISLICEDUPFUN29byJonathan

Kohl,whoalsoadaptedhismnemonicfromJamesBach’sSFDPOforusewithmobileapps.Hecoveredveryspecificmobileareasthathavetobetestedduringthedevelopmentphase:29.www.kohl.ca/articles/ISLICEDUPFUN.pdf

•Inputsintothedevice•Built-inkeyboard/keypad•Touchscreengesturesandtyping•Syncingwithotherdevices

•Store•Submissionspecifications•Developmentguide•Userguideforerrorhandling,locationservices,permissionsforuserprivacyitems,accessibility,andsoon

•Location•Geolocationerrors•Movement,stoppingsuddenly•Connectionissuesduetointerference

•Interactions/interruptions•Runningmultipleapplications,multitasking•Usingotherapplications,thenusingtheapplicationyouaretesting(e-mail,calendar,texting,notetaking,others)•Notificationsappearing

•Communication•Phone

Page 107: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Texting•E-mails

•Ergonomics•Smallscreenscanbehardontheeyes.•Asmalldevicemeansthereisnoergonomichelpfromadeskorchair—youoftenhunchovertointeractwithit.•It’snotuncommontogetasoreback,fingers,oreyeswhenusingadeviceforanylengthoftime.

•Data•Typesofinput—seeiftheappusesspecialcharacters,differentlanguages,andsoon.•Media—seeiftheappdependsonanoutsidesourcetoplaymusic,videos,oranythingelse.•Sizeoffiles—iftheapplicationusesoutsidefiles,tryusingdifferentfiletypes.

•Usability•Noteandloganyissuesthatmakeyouuncomfortable,frustrated,angry,orupsetwhileusingtheapp.

•Platform•Android•iOS•WindowsPhone•BlackBerry

•Function•Canyouidentifyeverythingthattheapplicationdoes?•Haveyouworkedthroughalltheaspectsoftheapp?Clickedeverybutton?Filledineveryform?•Tryatouroftheproducttoidentifyeverythingitdoes.

•Userscenarios•Howisthisapplicationsupposedtobeused?•Whatproblemsdoesitsolveforusers?•Whatarethegoalsofendusersthatthisapplicationhelpsthemsolve?

•Network

Page 108: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Wi-Fi•Wirelessbroadband•Deadspots

ISLICEDUPFUNisaverygoodmnemonic,andmobiletestersshouldknowitinordertoimprovetheirtestingworkandtoremembertheimportantmobileaspects.Besideshismnemonic,JonathanwroteanexcellentbookaboutmobiletestingcalledTapintoMobileApplicationTesting,30whichisavailableonLeanpubandcoverslotsofmobiletestingtopics.Thetourchapterisreallyinterestingandanexcellentsourceofknowledge.30.https://leanpub.com/testmobileapps

ThelastmnemonicaboutmobiletestingIwanttomentionisCOPFLUNGGUN,31createdbythecompanyMoolya.Thismnemoniccoversthefollowingtopicsandisworthlookingat:31.http://moolya.com/blogs/2012/04/121/Test-Mobile-applications-with-COP-who-FLUNG-GUN

•Communication•Orientation•Platform•Function•Location•Userscenarios•Notifications•Guidelines•Gesture•Updates•Network

ImportantMnemonicsaregreatapproachesyoucanusetoremindyourselfofimportantthings.Theywillhelpyouorganizeyourtestingapproach,testingstrategy,andthoughts.

MindMapsMindmapsareanothergreatwaytovisuallyorganizeinformationastheycanhelpyoutoprocessyourthoughtsandideasoncertaintopicssuchasmobile

Page 109: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

testing.RosieSherry,thewomanbehindMinistryofTesting,32aplatformandprofessionalcommunityforsoftwaretesterswholeadthewayinsoftwaretestingcontent,training,andevents,createdandpublishedtwogreatmindmapsaboutmobiletesting.OneofhermindmapsisshowninFigures4.3through4.8.

Figure4.3Mobiletestingmindmap.CourtesyofRosieSherryandKarenNicoleJohnson.Foralargerversionofthisimage,see

informit.com/title/9780134191713

Page 110: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure4.4Mobiletestingmindmap:mobileplatforms.CourtesyofRosieSherryandKarenNicoleJohnson

Figure4.5Mobiletestingmindmap:mobileoperations.CourtesyofRosieSherryandKarenNicoleJohnson

Page 111: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure4.6Mobiletestingmindmap:mobilefunctions.CourtesyofRosieSherryandKarenNicoleJohnson

Figure4.7Mobiletestingmindmap:mobilestructure.CourtesyofRosieSherryandKarenNicoleJohnson

Page 112: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure4.8Mobiletestingmindmap:mobiledata.CourtesyofRosieSherryandKarenNicoleJohnson

32.www.ministryoftesting.com/

BothmindmapscanbedownloadedinhighresolutionfromMinistryofTesting133andMinistryofTesting2.34ThemindmapsRosiecreatedarebasedonthemnemonicfromKarenNicoleJohnson.33.www.ministryoftesting.com/2012/06/getting-started-with-mobile-testing-a-mindmap/34.www.ministryoftesting.com/2012/05/mobile-testing-course-pictures-and-a-mindmap/

AnothergreatinteractivemindmapprojectistheTestingMap,35whichcoverslotsofdifferentareasofsoftwaretestingandprovidessomereallyusefulideas.35.http://thetestingmap.org/

ImportantTrytocreateyourownmindmapbasedonyourappbyaddingpossibletestingtasks.Furthermore,printitoutandputitupintheoffice.Thatway,yourcolleagueswillstandtobenefitfromitaswell.

HowtoFileMobileBugsWe’venowcometothelasttopicinthischapter,“HowtoFileMobileBugs.”Ifyoufindabugwithinamobileapp,youneedtoreportitinordertogetitfixed.Filingmobilebugreportsrequiressomeadditionalinformationthatthe

Page 113: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

developersneedinordertoreproduceandfixthebug.Butwhatisimportantwhenfilingamobilebug?Whatshouldabugreport

looklike?BeforeIanswerthosetwoquestions,Iwanttoraiseanotherone:Whyevensendabugreport?Bugreportsareveryimportantfortheproductowner,productmanager,and

thedevelopers.First,abugreporttellsthedevelopersandtheproductowneraboutissuestheywerenotawareof.Italsohelpstoidentifypossiblenewfeaturesnoonehasthoughtof,andlastbutnotleast,itprovidesusefulinformationabouthowacustomermayusethesoftware.Allofthisinformationcanbeusedtoimproveyoursoftware.Wheneveryoufindsomethingstrange,ifsomethingbehavesdifferentlyor

looksweird,don’thesitatetofileabugreport.Let’scometothequestionofwhatabugreportshouldlooklikeandwhat’s

importantwhenfilingit.Abugreportshouldcontainasmuchinformationaspossibleinorderto

identify,reproduce,andfixthebug.Thatsaid,yourreportshouldonlyincludeinformationthat’simportanttohandlingthebug,sotrytoavoidaddinganyuselessinformation.Anotherimportantpointisthatyoushoulddescribeonlyoneerrorperbugreport.Don’tcombine,group,orcreatecontainersforbugs.It’slikelythatnotallofthebugswillbefixedatthesametime,sorefrainfromcombiningorgroupingthem.Theinformationdescribedinthefollowingsectionsshouldbeincludedina

bugreport.

BugIDAbugmusthaveauniqueidentifiersuchasanumberoracombinationofcharactersandnumbers.Ifyou’reusingadefectmanagementtool,thetoolwillhandlethebugIDsforyou.Ifnot,thinkaboutauniqueIDsystemforyourproject.

•Bad:123isauniqueID,butyoumighthaveseveralprojectswhoseIDsarethesame.•Good:AppXYZ-123isgoodbecauseyou’recombininganIDwithaprojectabbreviationandanumber.

DescriptionCreateashortbutmeaningfuldescriptioninordertoprovidethedeveloperwith

Page 114: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

aquickoverviewofwhatwentwrongwithoutgoingintodetail.Youshould,forexample,includeerrorcodesorthepartoftheapplicationwherethebugoccurred.

•Bad:“Theappcrashed,”“Whitepage,”“Sawanerror,”“Bug”•Good:“ErrorCode542ondetailmessageview”or“Time-outwhensendingasearchrequest”

StepstoReproduceThisisoneofthemostimportantpoints.Providetheexactstepstogetherwiththeinputdataonhowtoreproducethebug.Ifyouareabletoprovidethiskindofinformation,thebugwillbeveryeasytofixinmostcases.

•Bad:“Itriedtoexecuteasearch.”•Good:“Starttheappandenter‘MobileTesting’intothesearchinputfield.Pressthesearchbuttonandyou’llseetheerrorcode783onthesearchresultpageheader.”

ExpectedResultInthissectionyoushoulddescribewhatyouexpectedtohappenwhenthebugoccurred.

•Bad:“Itshouldwork”or“Ididn’texpectittocrash.”•Good:“Iexpectedtoseeasearchresultspagewithascrollablelistof20entries.”

ActualResultWhathappenedwhenthebugoccurred?Writedowntheactualresult,whatwentwrong,ortheerrorthatwasreturned.

•Bad:“Itjustwon’twork.”•Good:“Thesearchresultspagewasempty”or“Igottheerrorcode567onthesearchresultspage.”

Work-aroundIfyou’vefoundawaytocontinueusingtheappandavoidthebug,explainyoursteps.Thosestepsareimportanttoknowsincethework-aroundcouldcauseotherproblemsorindicateawayinwhichtheappshouldnotbeused.Ontheotherhand,awork-aroundcanbeveryusefulforthecustomersupportteaminordertohelpcustomerssolvethecurrentproblemuntilthebuggetsfixed.

Page 115: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Bad:“Ifoundawork-around.”•Good:“Ifyouputthedeviceintolandscapemode,thesearchbuttonisenabledandtheusercansearchagain.”

ReproducibleIfyoufoundareproduciblebug,that’sfine,butdoesitoccureverytime?Ifithappenseverytime,that’sgreatasitshouldbeaneasyfixforthedeveloper.Butifthebugoccursonly20%ofthetime,itismuchhardertofindasolution.Makesureyouprovidethisinformation,asitisveryusefulforthedeveloperandwillpreventthebugfrombeingclosedwiththecomment“Can’tbereproduced.”

•Bad:“Sometimes”•Good:“Thebugoccurstwooutoftentimes.”

OperatingSystem,MobilePlatform,andMobileDeviceAnotherimportantcomponentofabugreportisinformationabouttheoperatingsystem,themobileplatform,andthemobiledevice.Writedowntheoperatingsystem,mobileplatform,anddeviceonwhichthebugoccurred.

•Bad:“OnAndroid”or“OniOS”•Good:“Android,Version4.1.2GoogleNexus4”or“iOS,Version6.1iPhone4S”

Mobile-Device-SpecificInformationMobiledeviceshavelotsofinterfacesandsensorsthatcouldhaveanimpactonyourapp.Thebatterycouldalsoaffecttheappyou’retesting.Writedownallofthisinformationinyourbugreport.

•Bad:Noinformation•Good:“GPSsensoractivated,changedtheorientationfromlandscapetoportraitmode”or“Usedthedeviceinasunnyplace”or“Batterystatewas15%”or“Batterystatewas100%.”

BrowserVersionIfyourappisamobileWebappandyoufoundanissue,it’sveryimportanttonotethebrowserversionwhereyoufoundthebugasitmayoccuronlyinacertainbrowserversion.

•Bad:“GoogleChrome”or“MozillaFirefox”

Page 116: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Good:“GoogleChromeversion45.35626”or“MozillaFirefox27.6”

SoftwareBuildVersionAnotherreallyusefulpieceofinformationisthecurrentbuildversionoftheappwherethebugoccurred.Thiswillpreventthedeveloperfromwastingtimetryingtoreproduceabugthat’salreadybeenfixedinthecurrentcodebase.

•Bad:Noinformation•Good:“Appbuildversion1.2.3”

NetworkConditionandEnvironmentWhenfilingamobilebug,it’simportanttoprovidesomeinformationaboutthenetworkconditionandtheenvironmentinwhichthebugoccurred.Thiswillhelptoidentifytheproblemmoreeasilyandwillpossiblyshowsomesideeffectsnoonehasthoughtof.

•Bad:Noinformationor“Happenedonmywaytowork”•Good:“Iwasconnectedtoa3GnetworkwhileIwaswalkingthroughthecitycenter.”

LanguageIfyourappsupportsseverallanguages,providethisinformationinyourbugreport.

•Bad:Noinformation•Good:“IwasusingtheGerman-languageversionoftheapp.”

TestDataAcompletebugreportmustincludethetestdatathatwasusedtoreproducethebug.Simpletestdatacanbelogincredentialswithusernameandpassword.However,insomecasesitisnotenoughtoprovidejustausernameandpassword.Itisverylikelythatyouneedtoprovidecompletetestdatasets,forexample,asanSQLdumporatestdatascriptthatwillgeneratethenecessarydata.

•Bad:Noinformation•Good:“FindtheattachedSQLscripttoputthedatabaseinthedefinedstate”or“Enter‘MobileTesting’intothesearchinputfield.”

Severity

Page 117: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Everybugyoufindneedsaseveritylevel.Eitheryourdefectmanagementtoolwillofferyousomecategories,oryouhavetodefinethemwithyourteam.Itisimportanttogiveabugaseveritylevelasitwillallowtheteamtoprioritizetheirbug-fixingtimesothatcriticalandhigh-prioritybugswillbefixedfirst.Ifthisinformationisnotprovided,ittakesmuchmoretimetofindthebugsthatneedtobefixedbeforetherelease.ThedefaultseveritiesareCritical,High,Medium,andLow.

•Bad:Noinformation•Good:“Critical”or“Medium”

BugCategoryInadditiontotheseveritylevel,thebugcategoryisalsoaveryusefulpieceofinformation.Theproductownerorthedevelopercanfilterbycategorytogetanoverviewofthecurrentstatusofbugspercategory.Forexample,iftherearelotsofUXbugs,thismaybeanindicatorofapoorUIandUXoramissingdesignexpertintheteam,meaningthattheappneedssomemoredesignimprovements.

•Bad:“Noinformation”•Good:“Functionality”or“UX”or“Performance”

ScreenshotorVideoWheneveryoufindabug,trytocreatescreenshotsoravideotoprovidethedeveloperwithmoreinformation.Whenprovidingascreenshot,useanimage-editingtooltomarkthebuginthescreenshot.Avideoisalsoagreatwaytodescribeabugyou’vecomeacross.Itisalsoveryusefultogivethescreenshotorthevideoagoodnameordescription.

•Bad:“Noscreenshotsorvideosattached”or“Screenshot1.png”•Good:“01_InsertSearchTerm.png,02_SearchResultPageWithError.png”

LogFilesIfyourappcrashesorfreezes,connectthedevicetoyourcomputerandreadoutthelogfiles.Inmostcasesastacktracewillbeshownwithadescriptionoftheerror.Thiskindofinformationisextremelyusefulfordevelopers,astheyknowrightawayinwhichclassthebugortheerrorhasoccurred.

•Bad:“Noinformationprovidedwhentheappcrashed.”•Good:“Providedthefullstacktraceinthebugreport”or“Attachedthelogfiletothereport.”

Page 118: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

TesterWhoFoundtheBugWritedownyournameorthenameofthetesterwhofoundthebug.Developersorproductownersmayhavesomequestionsaboutthereportedbug,andtheywillofcoursewanttogetintouchdirectlywiththetesterwhofoundit.Inmostcases,thisisautomaticallydonebythedefectmanagementsystemwhereeachuserhashisorherownaccount.Ifnot,makesureyouaddyoure-mailaddressand/orphonenumber.

•Bad:Noinformation•Good:“DanielKnott,[email protected]

ThreeMorePointsAsyouhaveseen,thereisalotofinformationthatshouldbeincludedinabugreport.Therearethreeotherpointsyoushouldkeepinmindwhenwritingabugreport.ThefirstoneisDon’tgetpersonal.Whenfilingabugreport,describethe

softwaremisbehaviorratherthanthedeveloper’smindsetorthequalityofhisorherwork.Don’tuseoffensiveoremotionallychargedwordsasthosekindsofreportswillbeignoredbythedeveloperandwillendupcausingbadbloodwithintheteam.ThesecondoneisIt’snotyou.It’snotyourfaultthatthebugoccurred.Itis

thesoftwarethat’sbroken,andyouandyourcolleaguesneedtofixit.AndthethirdpointisKeepitsimple.Trytowriteyourbugreportinsucha

waythatsomeonewithnoideaabouttheprojectortheappisabletounderstandtheproblem.Ifthebugreportisthateasy,everydeveloperwithintheteamwillbeabletofixitandnontechnicalcolleaguescanunderstandtheproblemandwillvalueyourwork.

AppQualityAllianceIfyouwanttogetfurtherinformationabouthowtotestyourAndroidoriOSapp,havealookatthenonprofitgroupAppQualityAlliancesite.36ThisgroupisheadedbydifferentcoremembersandknowledgecontributorssuchasAT&T,LGE,Microsoft,Motorola,Oracle,Samsung,andSonyMobile.Themainaimofthegroupistoworkverycloselywiththeindustrytoimprovethequalityofmobileapps.36.www.appqualityalliance.org/

ThegroupdevisedtestingcriteriaforAndroidandiOSapps.Youcan

Page 119: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

downloadbothPDFdocumentsviathefollowinglinks:•TestingcriteriaforAndroidapps(www.appqualityalliance.org/AQuA-test-criteria-for-android-apps)•TestingcriteriaforiOSapps(www.appqualityalliance.org/AQuA-test-criteria-for-iOS-apps)

Bothdocumentscontainlotsoftestcasesthatyourappshouldrunthroughbeforeyousubmitittotheappstores.Thegroupalsoprovidesinformationaboutmobileappperformancetestingas

wellasbest-practiceguidelinesfordevelopingqualitymobileapps.Youcandownloadbothdocumentsviathefollowinglinks:

•Performancetestingcriteria(www.appqualityalliance.org/aqua-performance-test-criteria)•Best-practiceguidelinesfordevelopingqualitymobileapps(www.appqualityalliance.org/AQuA-best-practice-guidelines)

Thegroup’sWebsiteisdefinitelyworthcheckingout,andmaybeyou’devenliketocontribute.

SummaryChapter4isoneofthemainchaptersofthisbookandcontainslotsoftestingideasandsolutionsthatcanbeusedinyourdailyworkinglife.Thechapterstartedwithadescriptionofthedifferencesamongemulators,simulators,andrealdevicesandwhatisimportanttoknowaboutthem.Beforethehands-onpartofthechapterIexplainedthedifferencebetweenmanualandautomatedtestingaswellastheroleoftraditionaltestinginthemobiletestingbusiness.Ifyouarefamiliarwith“traditional”softwaretestingsuchasforWebordesktopapplications,thatknowledgeisalsousefulformobileapps.LotsofthetestingapproachesforWebordesktopapplicationsarealsovalidformobileappssuchaswhiteboxandblackboxtestingtechniques.However,whenitcomestomobiletesting,therearemoreareasyouneedtotestinordertobesurethatyourappisworkingondifferentlevelsandwithdifferenthardwareandsoftwareversions.InthischapterIdescribedthefollowingmobile-relatedtopics:

•Mobileusabilitytesting•Accessibilitytesting•Batteryusagetesting•Stressandinterrupttesting•Performancetesting

Page 120: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Standbytesting•Installationtesting•Updatetesting•Databasetesting•Localstoragetesting•Securitytesting•Platformguidelinetesting•Conformancetesting•Checkingthelogfiles

Ialsoprovidedchecklistsofsampletestcasesthatcanbeexecuted,suchasbeforetheappissubmittedtoanappstore.Furthermore,Ishoweddifferentmnemonicsandmindmapsthatcanbeusefulforyourmobiletestingactivities.Thechapterendedwithadetailedoverviewofhowtofileamobilebugwith

lotsofdo’sanddon’ts.

Page 121: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter5.MobileTestAutomationandTools

Thischapterisallabouttools.Idescribethedifferenttypesandconceptsofmobiletestautomationtoolsandgiveyousomeadviceonwheretoautomateandhowtoselectamobiletestautomationtoolforyourappanddevelopmentenvironment.Ialsoexplaincontinuousintegrationandbetadistributiontools.Thischapterdoesn’tcoverhowtoinstallandconfigurethedifferentmobile

testautomationtools.Thereasonforthisissimple:Thetoolsprovideinstallationandconfigurationguidesalready,soyoucanjustvisittheirWebsitestofindalltheinformationyouneed.Detailsabouteachtoolwillbeprovidedintherelevantsectionsofthischapter.

TheFlippedTestingPyramidBeforeIstartwiththemobiletestautomationtools,Iwanttobrieflyexplainthetestautomationpyramid.AnyonewhoisinvolvedinsoftwaretestingandsoftwaretestautomationshouldknowthetestautomationpyramidintroducedbyMikeCohn.1

1.www.mountaingoatsoftware.com/

AsyoucanseeinFigure5.1,thetypicalpyramidconsistsofthreelayers.Atthebottomthereistheautomatedunittestinglayer;inthemiddle,theautomatedintegrationtestinglayer;andatthetop,thereistheautomatedend-to-end(E2E)testinglayer(includingtheuserinterfacetests).Eachlayerhasadifferentsize,indicatingthenumberofteststhatshouldbewrittenwithineachstage.Manualtestingisnotpartofthetestpyramid;henceitisshownasacloudforadditionaltestingwork.

Page 122: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure5.1Defaulttestautomationpyramid.BasedonafigurebyMikeCohn.

Butthispyramidisnotapplicabletomobileappsandmobiletestautomation.Asyoulearnedseveralchaptersago,mobiletestingrequiresatotallydifferentsetoftests—movement,sensors,differentdevicesandnetworks—fromothersoftwaresuchasdesktoporWebapplications.Lotsofmanualtestingisrequiredtobesurethatamobileappisworkingasexpectedinthedifferentusagescenarios.Mobiletestautomationtoolsarenotcurrentlyasmatureastheircounterparts

forWebanddesktopapplications,whichleadstoaflippedtestautomationpyramid.Asthetoolsbecomeincreasinglymature,thispyramidislikelytoflipbackagainbecausethedefaulttestautomationpyramidisbasedonamorestablefoundation(seeFigure5.1).Thedefaultpyramidthereforecan’tbeusedasan

Page 123: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

indicatoroftestautomationandmanualtestinginthemobileworld.TheflippedtestingpyramidlookslikeFigure5.2.

Figure5.2Theflippedtestingpyramid

Inthisversionofthepyramid,theautomatedunittestinglayeristhesmallestone.Thisisthecasebecausenoteveryunitormethodofmobileappscanbetestedinanisolatedmanner.Insomecases,differentAPIs,layers,orsystemsmayneedtobefakedormockedinordertogetthesmallunittowork.Thisisalsothecaseforeveryothersoftwareapplication,butinsomecasesmockingorfakingothersystemsformobileappsismuchmorecomplex.Thisisnotefficientfromatechnicaloreconomicpointofview.However,it’snoexcusefornotwritingmobileunittestsatall.Thebusinesslogicofanappmustbetestedattheunitlevel.Thenextstageistheend-to-endtestautomationlayer.Withinthislayer,the

appistestedfromauserperspectivetomakesurethewholesystemisworking,fromtheapp’suserinterfacethroughtothebackendsystemviaawirelessnetwork,includingintegrationtestingwithdifferentlibrariesorAPIs.Theintegrationtestinglayeristhereforepartoftheend-to-endlayer.

Page 124: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Thebiggestchangeinthispyramidisthatmanualtestingispartofit.Mobiletestingrequireslotsofmanualtesting,andthiscan’tyetbereplacedbytestautomationoranyothertools.Nevertheless,mobiletestautomationisareallyimportanttopic,andevery

mobiletestershouldbeabletowriteautomatedregressionteststhatprovidefastfeedbackaboutthecurrentqualitystateofanapp.Furthermore,testautomationhelpstheteambuildareliableandrobustmobileappthatmakesthecustomershappy.

TheMobileTestPyramidTheflippedtestingpyramidhasnostablefoundation,andmobiletestingrequireslotsofmanualtesting,whichiswhyIcreatedmyownmobiletestpyramidconsistingoffourlayersincludingmanualandautomatedsteps(seeFigure5.3).Thebiggestlayerofthepyramid,manualtesting,formsthestrongfoundationforeverymobileappproject,followedbyend-to-endtesting,betatesting,andatoplayercomprisingunittesting.Thegraypartsofthepyramidindicatetheautomatedsteps,andthewhitepartsarethemanualtestingsteps.Thebetatestinglayerisnewtothepyramidbutessentialtoeverymobileappproject.Keepingthehighexpectationsofmobileusersinmindrequiresthatthislayerbepartofeverymobileprojecttogetearlyfeedbackfromyourmobilecustomers.Youcaneitheruseacrowdtestingapproachforyourbetatesting,oryoucanaskyourcolleaguestobeta-testearlyversionsofyourapptoprovideimportantfeedback.

Page 125: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure5.3Themobiletestpyramid

Ihaveusedthismobiletestpyramidinseveralprojectsandithelpedmesetupareliable,effective,andvaluabletestingprocess.

ImportantKeeptheproblemoftheflippedpyramidinmindandusethemobiletestpyramidinyourprojecttohaveagoodmixofmanualandautomatedtesting.

Inthischapter,Ifocusmoreontheend-to-endtestautomationtoolsbecausethosearethetoolsmobiletesterswillmostlikelyworkwith.However,someunittestingtoolsarealsomentioned.

DifferentTypesofTestAutomationToolsBeforeyoustartwithmobiletestautomation,itisimportantthatyouunderstandtheunderlyingarchitectureofthedifferentmobileplatforms.Youneedtoknowhowtoaccessthedifferentobjectsofapp-likebuttons,labels,lists,views,and

Page 126: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

anyotherkindofelementinordertointeractwiththoseelementsduringthetestrun.Youalsoneedtobeabletowritecodeandbuildupreliabletestautomation

suitesthatareintegratedwithinyourapp’sdevelopmentpipeline.Whenselectingatool,youshouldknowthedifferenttypesandconceptsof

mobiletestautomationtoolsandhowthosetoolsaccessthedifferentobjects.Thisisimportanttoknowwhenselectingatoolforyourneedsandprojectbecauseeachapproachhasitsprosandcons.

ImageRecognitionToolsthatusetheimagerecognitionapproachcompareimagesinordertodrivetheuserinterfaceofanapp.Whenwritingthetestautomationscript,youtakescreenshots,forexample,ofbuttonsorlabelsthatareembeddedintoyourscript.Whenthescriptisexecuted,theimagerecognitiontoolcomparesthecurrentscreenwiththestoredbaselineimage.Ifthestoredimageisfoundonthescreen,thescriptwillexecutetheprogrammedsteps.ThosekindsoftoolsarereallyusefuliftheUIoftheappdoesn’tchangetoo

often,isdevelopedforseveralmobileplatforms,andhasexactlythesameuserinterfaceandcontrolelements.Inthatcase,imagerecognitiontoolsareagreatandfastwayofwritingtestautomationforcross-platformmobileapps.Thebiggestdisadvantageofimagerecognitiontoolsisthehighmaintenance

involvedwiththetestscripts.Thescriptswillnotworkiftheorientationofthedeviceischanged,suchasfromportraittolandscapemode,onbiggerscreens,orifthescreenresolutionchanges.Anotherdrawbackistestinganappindifferentlanguages,whichisnotpossiblesincethecapturedimagesareavailableonlyinonelanguageandwillnotworkwithotherlanguages.Herearesomeexamplesofimagerecognitiontools:•eggPlant(www.testplant.com/eggplant/testing-tools/eggplant-mobile-eggon/)•RoutineBot(www.routinebot.com/)•Sikuli(www.sikuli.org/)•TestObject(https://testobject.com/)

Coordinate-BasedRecognitionCoordinate-basedrecognitiontoolsrelyonpredefinedxandyaxiscoordinatestoaccessandinteractwiththeUIelementsoftheapp.Ifthecoordinatesofthe

Page 127: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

elementchange,thewholescriptneedstobeadaptedtothenewvalues.Thishasamajorimpactonthemaintenanceofthescriptsinordertobuildreliabletests.Herearesomeexamplesofcoordinate-basedrecognitiontools:•MonkeyTalk(www.cloudmonkeymobile.com/monkeytalk)•PerfectoMobile(www.perfectomobile.com/)

OCR/TextRecognitionMobiletestautomationtoolsthatusetheOCRandtextrecognitionapproachobtainthetextofthecontrolelementsthatarevisibleonthescreenofthemobiledevice.Todetermineifthetextisvisibleonthescreen,OCRtechnologyisused.OCRandtextrecognitiontoolscanhandledifferentscreenresolutions,

orientations,andsizes.However,suchtoolscanverifyonlytextelementsthatarevisibleonthescreen.Ifthetextchangesorisremovedfromtheapp,theUIelementisverydifficult(orimpossible)toidentify.Youarenotabletocheckif,forexample,aUIviewisvisible,ifalistispresent,orifelementswithouttextareshownonthescreen.AnotherdrawbackofOCRrecognitiontoolsisthattheyareveryslowbecausethewholescreenneedstobescannedforthetext.HerearesomeexamplesofOCR/textrecognitiontools:•eggPlant(www.testplant.com/eggplant/testing-tools/eggplant-mobile-eggon/)•MonkeyTalk(www.cloudmonkeymobile.com/monkeytalk)•Robotium(https://code.google.com/p/robotium/)•SeeTest(http://experitest.com/)•TestObject(https://testobject.com/)

NativeObjectRecognitionToolsthatusethenativeobjectrecognitionapproachdetecttheUIobjectswithaUIelementtree.TheUIelementscanbeaccessedusingXPath(XMLPathLanguage),CSS(CascadingStyleSheet)locators,orthenativeobjectIDoftheelement.Thenativeobjectrecognitionapproachisverycommoninthedifferenttestautomationtoolscoveringnative,hybrid,andmobileWebapps.Thisapproachenablesyoutogetaccesstothenativeelementssuchasbuttons,labels,views,lists,andotherkindsofUIelements.IftheIDsorthelocatorsarewelldefinedandwritten,thetestscriptsarereliableintheeventofchangesandthereforereusableonotherdevicesaswell.ThisisahugeadvantagecomparedtoalloftheothertoolsbecausethescriptsdonotdependonchangestotheUI,

Page 128: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

resolution,orientation,orthedeviceitself.Themajorityofthetestautomationtoolssupportthisapproachfordetectingtheelements.Herearesomeexamplesofnativeobjectrecognitiontools:•Appium(http://appium.io/)•Calabash(http://calaba.sh/)•Espresso(https://code.google.com/p/android-test-kit/)•Robotium(https://code.google.com/p/robotium/)•Selendroid(http://selendroid.io/)•Selenium(http://docs.seleniumhq.org/)•TenKodEZTestApp(www.tenkod.com/ez-testapp/)

CaptureandReplayLotsoftoolmanufacturersadvertisecaptureandreplayfunctionality.Toolsthatsupportthistechnologyareabletorecordactionssuchasclicking,scrolling,swiping,ortypingintoascript.Withthehelpofthereplayfunction,thesoftwarewillexecutetheexactsameactionsoverandoveragain.Thistechnologysoundsgreatintheory,butinrealityandday-to-daytestautomationwork,captureandreplaytoolsshouldbeusedandhandledwithcare.Butwhy?Ihaveworkedwithdifferentcaptureandreplaytools,andeverytool

presentedthesameproblems.Thecapturedscriptswerenotreliableatall.TheywereaffectedbyUI,orientation,andscreenresolutionchanges(mostofthemusecoordinate-basedorimage-basedrecognition).Thescriptswerenotreusablefromdevicetodeviceorondifferentmobileoperatingsystemversionsofthesamemobileplatform.Oftenthescriptswerenotabletostartbecausethedevicewasnotinadefined

state,meaningthatthetoolwasnotabletoreplaythescript.Oftenthescriptsmustbeeditedmanuallytobemorestableandreliable.Anotherproblemthatalwaysoccurredwasatimingissueasthetoolswereeithertoofastortooslowtointeractwiththeapplicationwhilethescriptwasreplayed.Theonlywaytosolvethisissuewastoaddwaitoperations,butthisisnotagoodapproachforwritingtestautomationscripts.Usingwaitorsleepoperationsisflawedandleadstounreliabletestresults.However,therearealsosomegoodqualities;forexample,mobiletesterswho

havenoprogrammingskillscanusethetoolstogeneratesomebasictestautomationscriptswithverylittletraining.Ontheotherhand,theyarenotabletomodifythescriptafterward.

Page 129: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

However,don’tusecaptureandreplaytoolstobuildupahugetestautomationsuiteforyourmobileapp;otherwiseyouwillendupwithanonmaintainabletestsuite.IrecommendthatyouusethesekindsoftoolsasastartingpointtorecordbasicinteractionswithinyourappandgettheUIselectorsoftheelements.TherecordedUIselectorsorIDscanthenbeusedasafoundationforfurtherprogrammingtobuildupatestautomationsuitebasedonyourownprogramming.

ToolTypeRecommendationBeforeIrecommendatooltypeandapproach,Iwanttobrieflysummarizethemobiletestautomationtoollandscape.Mostofthetoolsarespecifictoamobileplatform,irrespectiveofwhethertheyusetheimage,coordinate,OCR,ornativeobjectrecognitionapproach.ThereareveryfewtoolsthatsupportmorethanonemobileplatformsuchasAndroid,iOS,WindowsPhone,orBlackBerry.However,notoolisabletoautomatemultiplemobileplatformswithonetestcodebase.Therearesometestautomationtoolproviderswhopromisetobeabletoautomateeverythingoneverymobileplatform,butthat’snottrue.Everymobileplatformhasspecificrequirementsforusabilityornavigationusageofanapp,meaningthatyoualsoneedtohavemultipletestcodebasesinordertoautomatethem.Inmostmobileprojects,youhavetodealwithmultiplecodebasesofdifferent

programminglanguagesandtestautomationtoolsinordertobuildupatestinganddevelopmentpipeline.Inmyopinion,amobiletestautomationtoolmustbeabletoaccessthenative

objectpropertiesthatareusedtoidentifyandtointeractwiththenativeelements.Thisisthebestandmostefficientwaytowritetestautomationscriptsformobileapps.Writingsuchtestscriptsrequiresmoreeffortandprogrammingskills,butthescriptsaremuchmorereliableandrobusttochangesandcanbeexecutedondifferentdevicesandscreenresolutions.Youshouldthereforeusenativeobjectrecognitiontoolsinyourprojectbased

ontheapptypeyouaretesting(native,hybrid,orWebapps).

ImportantRememberthatsomemobiletestautomationtoolssupportmorethanonerecognitionapproach.Combinetheapproachesinyourtestscripts,butkeeptheprosandconsinmindaswellasthefactthatnotoolisperfect.

Page 130: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

WhatShouldBeAutomated?Whenyouhavethetaskofdeterminingwhichtestsshouldbeautomatedornot,keeponethinginmind:Itisimpossibletoautomateeveryfeatureortestcaseofamobileapp.Now,youhavetoanswerthisquestion:Whatshouldbeautomated?Creatingasmartmobiletestautomationplanrequirescarefulplanningand

designworkthatshouldbeperformedbeforeautomatingasingletestcase.First,youshoulddefineagoalforyourmobiletestautomationanddeterminewhatkindsoftestsyouwanttoautomate.Keepingthemobiletestpyramidinmindcanhelpyoutodefinetheunittestsandend-to-endusertests.Butyoushouldstillrememberthatyouneedlotsofmanualmobiletestingandthatnoteverythingcanbeautomated.However,youcanturnsomemanualtestsintoautomatedteststosavetimeandtestingeffort.Possiblegoalsforyourmobiletestautomationcouldbe:•Automatethebusiness-criticalparts.•Automateuserworkflowsandscenarios.•Automateonlycomplexappscenarios.•Automatesequencesthatneedtoberepeatedseveraltimes.•Automateonlytheacceptancecriteria.•Builduparegressiontestsuite.•Automateonlyifitiseconomicallyreasonable.

Ifsometestcasesareperformedonlyafewtimes,it’sprobablymoreeconomicaltoleavethemformanualtesting.Ifyou’reworriedaboutforgettingthem,addthemtoachecklist.Teststhatneedtoberunfrequentlyandrequirelotsofinputsandactionsshouldbeautomated.Butdon’tcreatelargeandcomplexautomatedtestscenariosasthosekindsoftestsaredifficulttomaintain,edit,anddebugandarelikelynottobestable.Keepthetestssmallandindependentofoneanother.Itisalsoimportanttokeepthecriticalpartsoftheappinmindsuchasthe

loginorpaymentprocessastheyhaveahugeimpactontheapp,yourbusiness,andthepeoplewhouseit.Ifthecriticalpartsarenotwelltestedorautomated,youmaysufferalotofdamagetoyourreputation.Anotherimportantfactorwhendecidingwhichtestsaretobeautomatedisthe

timeandthemoneyinvolved.Ifyouneedlotsoftimetoautomateamobiletestscenario,askyourselfifitisworthautomatingasalotoftimespentonone

Page 131: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

specificscenariowillcostlotsofmoney.Andistheinvestedtimesavedlateronwhenthetestisautomatedratherthanmanual?Askyourselfthisquestionfromtimetotime;youmayfindthatit’sOKtotestmanually.Whenautomatingatestforamobileapp,keepthedifferentmobiledevicesin

mind.Onlyautomatetheteststhatcanbeexecutedoneverytargetdevice.Trytoautomatethetestsinasgeneralamanneraspossiblesoyoucanexecutethemonseveraldevices.Anddon’tforgettoautomatewithdifferentlanguagesifyourappisgoingtobeavailableinvariouscountries.UsetheUIelementIDstoidentifyanddrivethoseelementsandtoimplementrobusttests.Thereisnogenericanswertothequestion“Whatshouldbeautomated?”The

answerwillbedifferentforeverymobileappanddependontheapptype,mobileplatform,andapppurpose.Everymobiletestershouldkeepthefollowingpointsinmindwhenanswering

thisquestion:•Itisnotpossibletoautomatetestingoftheentireapporallofitsfeatures.•Defineagoalforyourtestautomation.•Defineend-to-endtests.•Starttestautomationasearlyaspossibletogetherwiththeappdevelopment.•Keepthetimeandthecoststhatareneededforthetestautomationinmind.•Keepthetestssmall,fast,simple,andindependent.•Keepthedifferentmobiledevicesinmind.•Executethetestsasearlyaspossibleandasoftenaspossible.

ImportantDon’ttrytoautomateeverything.Definetestautomationgoalsdependingonyourappandstartautomatingthosegoals.

Emulator,Simulator,orRealDevice?Thenextquestionyouneedtoansweriswhetheryoushouldautomatewithemulators,simulators,orrealdevices.InChapter4,“HowtoTestMobileApps,”Idescribedthedifferencesamongemulators,simulators,andrealdeviceswhenmobiletestingisperformedmanually.Myrecommendationtherewastousetheemulators/simulatorsforverybasictestsandtodomanualtestingonreal

Page 132: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

devices.Butisthisalsothecasewithmobiletestautomation?BeforeIanswerthisquestion,let’shavealookattheprosandconsof

emulators/simulatorsandrealdevices.

Emulator/SimulatorProsThebiggestadvantageofemulators/simulatorsistheprice.BotharefreetouseandarepartoftheSDKfromthedifferentmobileplatforms.Besidesthat,theyarereallysimpletouseandoffervariousoptionsfordevelopersandtesters.Aftertheemulator/simulatorisinstalled,youcancreatethesimulators/emulatorsusingdifferentconfigurationssuchasoperatingsystemversionsorscreenresolutions.

Emulator/SimulatorConsIfwelookattheconsoftheemulators/simulators,therearesomemorepointsthatyoushouldbeawareof.Usingemulators/simulatorsincreasestheriskofmissingimportantbugsthatoccuronlyonrealdevices.Emulators/simulatorsarenotthesameastherealenvironment,whichisahugedisadvantage.Additionally,emulators/simulatorsofferonlya“plain”andsimplemobileoperatingsystem.Theyoffernodiversityintermsofthedifferentdevices,operatingsystems,andadaptationsoftheuserinterface.ThisisespeciallythecasewithAndroidwhereseveraldevicemanufacturerschangetheUIoftheAndroidsystemtosuittheirneeds.Fromahardwareperspective,theyalsofailtoofferarealdeviceenvironmentwithalloftherelevantsensorsandinterfaces.Thenextdisadvantageofmobileemulators/simulatorsisthatthedata

networksarenotreal.Networkspeedscanbesimulated,butthiswillnotcovertherealdatanetworkswithtrafficlossorchangeinnetworkspeedsandtechnologies.And,finally,emulators/simulatorsdonotofferthesameperformanceasrealdevicesintermsofCPU,GPU,memory,orsensors.Everymobiletestershouldkeepthefollowingpointsinmindwhenusing

emulatorsorsimulatorswithinaproject:•Itisriskynottotestinarealenvironment.•Thereisnodiversityintermsofhardwareandsoftware.•Thenetworkenvironmentissimulated.•Thereisnorealdeviceperformance.•Thereisnoaccesstodevice-specifichardwareelementssuchasthecamera,GPS,orothersensors.

Page 133: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

RealDeviceProsTestingonrealdevicesofferslotsofadvantagescomparedtoanemulator/simulator.Thetestswillbeexecutedinarealuserenvironmentandthereforetheresultswillbeclosertoarealuserexperience,includinganydiscoveredbugs.Testingonrealdevicesalsoofferstheoptionofusingthefulldevice’shardware,software,anddevice-specificfeaturessuchassensors,CPU,GPU,andmemory.Usingtherealdevicefortestingshowstherealbehaviorintermsofperformance.Thefollowingpointssummarizetheprosofusingrealdevicesfortesting:•Realdevicetestingoffersreliabletestresults.•Realhardwareandsoftwarefeaturesareused.•Therealuserexperienceandappperformancecanbetested.•Testsaredoneinrealdatanetworks.

RealDeviceConsTestingonrealdevicesalsohassomedisadvantages.Thebiggestoneisthecostofbuyingallofthedifferentmobiledevicesfordevelopingandtestingpurposes.Ifyouwanttotestonrealdevices,youhavetobuynewdevicesnearlyeverymonthinordertoverifythatyourapprunsonallthenewfeatures(hardwareandsoftware).Inaddition,youneedsomeonewhoisresponsibleformaintainingallthosedevices.It’snotenoughjusttobuythem;youneedtocomeupwithastrategyforhowtoupdatethedevicestonewerversionsandhowtousethemwithinyourcompany.Thefollowingpointssummarizetheconsofusingrealdevicesfortesting:•Thecostofhavingtofrequentlybuynewdevicesishigh.•Maintenanceofallthedevicesistime-consuming.

WheretoAutomate?Ifwelookatalltheprosandcons,Ithinktheanswertothequestion“Wheretoautomate?”isprettysimple:ontherealdevice!Verysimpleandbasicfunctionaltestsandtestautomationcanofcoursebe

performedonanemulator/simulatortogetfastfeedbackaboutthecurrentstateofamobileapp,andthisisespeciallyusefulfordevelopers.However,ifyouasamobiletesterwanttobesurethatyourappisusingall

thedevice-specificelementssuchasthehardwareandsoftwareresourcesduring

Page 134: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

thetestautomationsession,youneedtoexecutethetestsonrealdevices.Executingthetestautomationscriptsonrealdevicesprovidesyouwithmuchbetterresultsintermsofreliability,performance,andreal-worldbehavioroftheapp.Furthermore,youareabletoexecutethetestsonseveraldevicesatthesametimetoquicklydeterminewhetherornotanapphasaproblemonacertainmobiledevice.Agoodapproachistofindahealthymixofemulators,simulators,andreal

devicestogetthebestoutofyourtestautomation.Itisenoughif,forexample,developersdotheirtestautomationonemulatorsandsimulatorsbecausescalingandexecutingtestautomationscriptsinparallelonemulators/simulatorsismucheasierandcheaperthanonrealdevices.Ifyouwanttoscaleandbuildupanemulator/simulatormatrixforyourtestautomation,havealookattheGoogleTechTalk“BreakingtheMatrix—AndroidTestingatScale.”2

2.www.youtube.com/watch?v=uHoB0KzQGRg

Youasamobiletestershouldwritetestautomationscriptsthatwillrunonrealdevicesaswellassimulators/emulators.

ImportantWhenselectingamobiletestautomationtool,verifythatthetoolisabletoexecutethetestsonbothrealdevicesandemulators/simulators.

HowtoSelecttheRightMobileTestAutomationToolSofaryouhavelearnedaboutthedifferenttypesoftestautomationtoolsaswellaswhatshouldbeautomatedandwherethetestautomationshouldbeperformed.Nowitistimetofindtherightmobiletestautomationtoolforyourappandyourtestanddevelopmentenvironment.Whenselectingamobiletestautomationtool,youshouldkeepsomepointsin

mind.Thefirstpointisthatthereisno“onesizefitsall”testautomationtoolavailableonthemarket.Everytoolhasitsprosandcons,andnoteverytoolissuitedtoeverydevelopmentenvironmentandpipeline.ToolAcouldworkwellwithprojectAbutnotwithprojectB,meaningthattheevaluationhastoberepeatedforeveryproject.Tosavesometimeinthetoolevaluationphase,itisagoodapproachto

implementasampleappthatincludesalloftheelementsyourproductionappwillhaveinordertoseeifthetestautomationtoolisabletohandleandinteract

Page 135: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

withthem.Ifthetoolisabletofulfillallofyourrequirementsforthesampleapp,youhaveprobablyfoundtherightmobiletestautomationtoolforyourproject.Thesecondpointyoushouldkeepinmindisthatmobiletestautomation

requiresprogrammingskillsinordertobuilduparobust,maintainable,andstabletestautomationsuite.Donotuseacaptureandreplaytooltocompensateforalackofprogrammingskills;youwillendupwitharealnightmarescenariobecauseyoucan’tfixthebrokenscripts.Ifyouhavenoprogrammingskills,trytolearnthemasyouwillneedtheminthefuture.Besidesdevelopingasampleapptoevaluatethemobiletestautomationtool,

youcanusethechecklistinthenextsectionwithsomeselectioncriteria.Thislistwillhelpyoutofindthetoolbestsuitedtoyourdevelopmentandtestingprocess.

SelectionCriteriaforaTestAutomationToolThefollowingpointsshouldbeconsideredwhenselectingamobiletestautomationtool:

1.Doesthetoolsupportdifferentmobileapptypes(native,hybrid,Webapps)?

2.Whichmobileplatformsaresupported(Android,iOS,WindowsPhone,BlackBerry)?

3.Whichrecognitiontechnologydoesthetooluse(native,image,text,coordinate)?

4.Doesthetoolchangetheappyouwanttotest(forexample,byaddingaserver,instrumentation)?

5.Isthetoolabletoexecutethetestsonrealdevicesaswellasonemulatorsandsimulators?

6.Isthereareportavailableattheendofthetestrun?7.Isthetoolabletotakescreenshotswhilethetestsareexecuted,andarethosescreenshotspartofthetestreport?

8.Canthetestsuitebeexecutedonseveraldevicesatthesametime?9.Howlongisthetestexecutiontime?Isitsufficientforyourneeds?10.DoesthetoolsupportalloftheUIandcontrolelementsofthemobile

platform?11.Istheresupportforachangeoforientationfromportraittolandscapeand

Page 136: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

viceversa?12.Isthetoolabletoawakethedevicefromthesleeporstandbymode?13.Areallgesturessupported,suchasswipe,scroll,click,tap,orpinchto

zoom?14.Isthetoolabletosimulatenativebuttonssuchasthebackorhome

button?15.Doesthetoolusethedevice’ssoftkeyboardtoenterdata?16.Cantheappbetestedinseverallanguages?17.Doesthetoolrequiremodificationtomatchtherealdevice(jailbreak,

rooting)?18.Doesthetoolsupportaprogramminglanguagewithwhichyouareableto

writetestscripts?19.Isthetoolabletoexecutethetestsfromthecommandline?20.Canthetoolbeintegratedintoyourdevelopmentenvironment(IDE)?21.Canthetoolbeintegratedintoacontinuousintegrationsystem?22.Canthetoolbecombinedwithothertoolssuchasadefectmanagementor

testmanagementtool?23.Isthetoolabletoconnecttoatestcloudproviderinordertoexecutethe

testswithinacloud?24.Isthetoolwelldocumented?25.Isthetoolopensourceorclosedsource?26.Istherealargecommunity/supportbehindthetool?27.Sincewhenhasthetoolbeenavailableonthemarketandisitusedby

othercompaniesformobiletestautomation?28.Doesthetoolsupportcross-platformtests?Asyoucanseefromthecriterialist,therearelotsofthingstoconsiderwhen

selectingamobiletestautomationtool.Theevaluationphaseisveryimportantandshouldnotbeunderestimated.Ifyouchoosethewrongtool(duetotimeconstraints,forexample)beforetheprojectstarts,itisverylikelythatyouwillstrugglewiththetoolduringtheproject.Point18inthelist,“Doesthetoolsupportaprogramminglanguagewith

whichyouareabletowritetestscripts?”isveryimportant.Youshouldtrytofindatoolthatsupportstheprogramminglanguagewithwhichyouareabletowritecode;thiswillreduceyourlearningcurvebecauseyouneedtobecome

Page 137: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

familiarwithjustthetoolandnottheprogramminglanguage.You’llalsosavelotsoftimeandmoneyonadditionaltraining.

ImportantDevelopasampleapporuseachecklistwithyourcriteriatofindthetoolthatbestfitsyourtestanddevelopmentprocess.

CurrentStateofToolsThispartofthechaptershouldgiveyouanoverviewofpossiblemobiletestautomationtools.Iselectedmainlyopen-sourceend-to-endtestingtoolsfortheiOSandAndroidmobileplatformsandtoolsthatIhaveusedinmobileproj-ects.Furthermore,Ichosetoolsthatarewellknownformobiletestautomationandusedbymostcompanies.Iwillgiveyousomerecommendationsandusefulinformationaboutthetoolsandhowtousethem.Iwillnotexplainordescribetheinstallationorconfigurationprocessofthetoolsbecausethisinformationcan(orwill)beoutdatedsoon.Allofthementionedtoolsrequireprogrammingskillsinorderforyoutobeabletoworkwiththemefficiently.And,asalways,thelistoftoolsmentionedhereisbynomeanscomplete.

AndroidToolsMostoftheAndroidtestautomationtoolsarebasedontheAndroidInstrumentationFramework3fromGoogle.TogetstartedwithAndroidtestautomation,youneedtounderstandtheviewhierarchyofanAndroidapp.Youalsoneedtoknowwhatkindsofcomponentsandelementstheappusesaswellashowalltheseelementsarearrangedonthescreenandwhattheyrepresentinthelogicalstructureoftheapp.

3.http://developer.android.com/tools/testing/testing_android.html

GoogleprovidesaveryusefultoolcalledUIAutomatorViewer4toinspecttheapp’sviewandlayouthierarchy.Thistoolletsyouviewtheproperties—thenameorIDofeachUIcomponentthatisdisplayedonthescreen.Youneedthiskindofinformation(nameorIDofanelement)towriteyourmobiletestscripts.

4.http://developer.android.com/tools/testing/testing_ui.html

YoucanfindtheUIAutomatorViewerintheAndroidSDKlocationonyourcomputer,forexample:Clickheretoviewcodeimage

/android/sdk/tools/uiautomatorviewer.sh

Page 138: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

ThistoolisparticularlyimportantwhentheAndroidappcodeisnotavailableandyoujusthavethecompiled.apkfiletowriteyourmobiletestautomation.However,someoftheAndroidtoolsmentionedoffertheirownUIautomatorviewerthatcanbeusedtoinspecttheelements.

RobotiumRobotium5isthedefactostandardopen-sourcetoolforAndroidtestautomationandwasoneofthefirstAndroidtestautomationtoolsonthemarket.RobotiumisablackboxtoolthatprovidesfullsupportfornativeandhybridAndroidapps.RobotiumisanextensionoftheaforementionedAndroidInstrumentationFrameworkandprovidesaverysimpleandbasicAPIforwritingUItests.Itsuppliestheso-calledsoloobjecttocallmethodssuchasclickOnTextorenterText.CheckoutthecodeinListing5.1forsomepossibletestactions.

5.https://code.google.com/p/robotium/

Listing5.1SampleCodefromRobotium

Clickheretoviewcodeimage

/*Robotiumwillclickonthetext"Welcome"*/solo.clickOnText("Welcome");/*RobotiumwillenterthestringMySecretPasswordintotheinputfieldwiththeID2*/solo.enterText(2,"MySecretPassword");/*Robotiumwillclickonthebuttonwiththelabel"Login"*/solo.clickOnButton("Login");/*Robotiumwillsimulateaclickonthenativebackbutton*/solo.goBack();

Robotiumrequiresonlyminimalknowledgeoftheappyouwanttotestandprovidesexcellentreadability.Byjustreadingthetestmethodsyoualreadyknowwhatishappeningandwhatwillbetestedontheviewofthedevice.TheUIAutomatorViewersuppliesalloftheviewinformationyouneedtowriteyourtests.RobotiumtestsarewrittenintheJavaprogramminglanguageandcanbeexecutedonarealdeviceoronemulators.Testscanbeexecutedononlyasingledeviceatatime,andRobotiumisabletotestonlytheappthatisbeingtested,meaningthatthereisnowayoftestingoutsidethisapplication.AttheendofthetestrunaJUnitreportisgenerated.Thewrittentestscanbeexecutedeitherfromthecommandline,fromanIDE,

orfromacontinuousintegrationserverusingMaven,Gradle,orAnt.

Page 139: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

IfyouwanttoknowmoreaboutRobotiumandhowtogetstarted,checkouttheRobotiumwikipage:

•RobotiumGettingStarted(https://code.google.com/p/robotium/wiki/Getting_Started)

AlsocheckouttheRobotiumprojectpages:•LatestRobotiumversionandsamples(https://code.google.com/p/robotium/wiki/Downloads)

RobotiumExtensionsIn2014,thedeveloperofRobotium,RenasReda,foundedthecompanyRobot-ium6toprovidetheso-calledRobotiumRecorder,whichallowsdevelopersandtesterstorecordRobotiumtestsinsteadofwritingthecodemanually.

6.http://robotium.com/

AnotherniceextensionforRobotiumistheExtSolo7projectfromthecompanyBitbar.ExtSoloaddssomeveryusefultestmethodstoRobotiumsuchasthefollowing:

7.http://docs.testdroid.com/_pages/extsolo.html

•changeDeviceLanguage(java.util.Localelocale):switchesthecurrentlanguageofthedeviceduringthetestexecution•setGPSMockLocation(doublelatitude,doublelongitude,doublealtitude):setsthedevice’scurrentGPSlocation•turnWifi(booleanenabled):turnsWi-Fioffandon,toseehowtheapphandlestheconnectionloss

FullAPIdocumentationisavailablehere:•ExtSoloAPIdocumentation(http://docs.testdroid.com/_static/extSolodocs/com/bitbar/recorder/extensions/ExtSolo.html

SpoonSpoon8isanotherpowerfulAndroidtestautomationframework,developedbythecompanySquare.9SpoonisalsoanextensionoftheexistingAndroidInstrumentationFramework.ThemaindifferencefromRobotiumisSpoon’sabilitytosimultaneouslyexecutethesametestsonmultipledevicesoremulators.Spooncanexecutethetestsoneverytarget(deviceoremulator)thatisvisibletoadb(AndroidDebugBridge)andisconnectedtothetestserver.

8.http://square.github.io/spoon/

Page 140: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

9.https://squareup.com

ThetestsarealsowritteninJavaandcanbeexecutedfromthecommandline,fromanIDE,orfromacontinuousintegrationserver.Spoon’sstructureandtestcodearealsoverysimple,asyoucanseeinthecodeinListing5.2.

Listing5.2SampleCodefromSpoon

Clickheretoviewcodeimage

Spoon.screenshot(activity,"Login_Screen");assertThat(password).hasNoError();instrumentation.runOnMainSync(newRunnable(){@Overridepublicvoidrun(){password.setText("MySecretPassword");}});

Afterallofthesetestshavebeenexecutedoneverydevice,SpoongeneratesastaticHTMLreportwithdetailedinformationabouteachdeviceandtest(seeFigure5.4).Thereportcomparesthetestresultsonthedifferentdevicesinaniceoverview.Ifscreenshotsaretakenduringthetestrun,SpoongeneratesananimatedGIFimagefromthemsoyoucanseetheexecutedteststepsagaininthetestreport.

Page 141: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure5.4Spoonsamplereport

Spoonalsorequiresverylittleknowledgeofthecodefortheappyouwanttotest.SpooncanbecombinedwithotherAndroidtestautomationtools,soyoucan,forexample,usethescreenshotfunctionfromSpoonandtestmethodsfromRobotiumorEspresso.ThelatestversionofSpoonandanexampletestappcanbefoundonGitHub:•Spoonsamplesandlatestversion(https://github.com/square/spoon)

SelendroidSelendroid10isatestautomationtoolfornativeAndroid,hybrid,ormobileWebapps.ThenameSelendroidcomesfromthewordsSeleniumandAndroid.SelendroidisfullycompatiblewiththeJSONWireProtocol,11andthetestsarewrittenusingtheSelenium2ClientAPI.1210.http://selendroid.io/11.https://code.google.com/p/selenium/wiki/JsonWireProtocol

Page 142: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

12.http://docs.seleniumhq.org/docs/03_webdriver.jsp

IfyouarefamiliarwithwritingautomatedtestswithSelenium2forbrowser-basedapplications,itisveryeasytowritetestautomationcodewithSelendroidforAndroidapps.SelendroidisabletosimultaneouslyexecuteandinteractwithmultipleAndroiddevices(realdevicesoremulators).Listing5.3showsacodeexample.

Listing5.3SampleCodefromSelendroid

Clickheretoviewcodeimage

WebElementloginButton=driver().findElement(By.id("startLogin"));WebElementpasswordInput=driver().findElement(By.id("password"));passwordInput.sendKeys("MySecretPassword");loginButton.click();

TheUIelementsofthemobileappcanbefoundbydifferentlocatortypes,forexample,byID,name,linktext,class,tagname,orXPath.ToinspecttheUIcomponentsoftheappundertest,SelendroidprovidesaveryusefultoolcalledSelendroidInspector,13whichprovidesahierarchyviewerthatletsyouseetheUIcomponentproperties.Itisabletocreateascreenshotwiththeviewlocator,recordtheclickactionsonthemobileapp,displaytheHTMLsourceofaWebview,andprovideaveryusefulXPathhelpertoidentifytheWebelements.13.http://selendroid.io/inspector.html

Inordertosupportdifferentgestures,SelendroidusestheAdvancedUserInteractionsAPI.14Thewrittentestscanbeexecutedfromthecommandline,fromanIDE,orfromacontinuousintegrationserver.14.https://code.google.com/p/selenium/wiki/AdvancedUserInteractions

SelendroidcanbefullyintegratedasanodeintoaSeleniumGrid15forscalingandparalleltesting.And,finally,theappundertestwillnotbemodifiedforautomationpurposes.15.https://code.google.com/p/selenium/wiki/Grid2

AdditionalusefulinformationonSelendroidcanbefoundontheWebsite:•Selendroidgettingstarted(http://selendroid.io/setup.html)•ScalingSelendroid(http://selendroid.io/scale.html)•LatestSelendroidversionandsamples(https://github.com/selendroid/selendroid)

Page 143: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CalabashforAndroidCalabash16isacross-platformmobiletestautomationframeworkfornativeandhybridAndroidandiOSapps.ThetoolmakesitpossibletowriteautomatedUIacceptancetestsinCucumber.17WiththehelpofCucumber,youcanexpressthebehavioroftheappyou’retestingusinganaturallanguage.Thisapproachiscalledbehavior-drivendevelopment(BDD),anditcanbeveryhelpfulwhenbusinessexpertsornontechnicalcolleaguesareinvolvedintheacceptancecriteriaprocess.16.http://calaba.sh/17.http://cukes.info/

CucumberusesGherkin18asthedomain-specificlanguage(DSL)toannotatethebehavioroftheapplication.18.https://github.com/cucumber/cucumber/wiki/Gherkin

PleaserefertothecodeinListings5.4and5.5forexamples.Listing5.4showsaCucumber(Gherkin)scenariousingrealtexttodescribethebehavioroftheapplication.

Listing5.4SampleGherkinCode

Clickheretoviewcodeimage

Feature:AsauserIwanttologinScenario:LoginusingvalidcredentialsGivenIamontheloginscreenWhenIenter"Username"intotheuserfieldAndIenter"PWD"intothepasswordfieldAndIclicktheloginbuttonThenImustseemyuseraccount

Listing5.5showstheRubycodeneededtomaptherealtextintocommandsthatthecomputerneedstounderstandinordertocommunicateandinteractwiththeapp.

Listing5.5SampleStepDefinitionCodeforOneGherkinStep

Clickheretoviewcodeimage

When(/^Ienter"(.*?)"intotheuserfield$/)do|username|fill_in("IDUserName",:with=>"username")end

Page 144: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Asyoucansee,actualtestautomationisperformedwithRubyandwithintheso-calledstepdefinitions.Gherkinisresponsiblefordescribingthebehavioroftheapplication,Rubyisneededfortheactualcoding,andCucumberistheframeworkthatexecuteseverythingtogetherontherealdevicesoremulators.TheCalabashtestscanbeexecutedfromthecommandline,fromanIDE,orfromacontinuousintegrationserver.Calabashsupportsascreenshotfunction,isabletouselocalizationwithinthe

app,andsupportsdifferentgestures.AdditionalusefulinformationaboutCalabash,Gherkin,andCucumbercanbe

foundontheGitHubprojectpage:•CalabashforAndroid(https://github.com/calabash/calabash-android)•PredefinedstepdefinitionsforAndroid(https://github.com/calabash/calabash-android/blob/master/ruby-gem/lib/calabash-android/canned_steps.md)

AppiumAppium19isanopen-source,cross-platformtestautomationtoolfornative,hybrid,andmobileWebapps.AppiumsupportsthemobileplatformsAndroid,iOS,andFirefoxOS.LikeSelendroid,AppiumusestheWebDriverJSONWireProtocoltodriveandtotesttheUIofthemobileapps.Youcanuseseveralprogramminglanguagestowriteyourtestautomation.Currently,Appiumsupportsthefollowinglanguages:19.http://appium.io/

•C#•Clojure•Java•JavaScript•Objective-C•Perl•PHP•Python•Ruby

Thewrittentestscanbeexecutedbyemulators/simulatorsorrealdevices.ThecodeinListing5.6showssomeoftheteststeps.

Page 145: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Listing5.6SampleAppiumCode

Clickheretoviewcodeimage

WebElementloginText=driver.findElement(By.name("TextLogin"));assertEquals("TextLogin",loginText.getText());WebElementloginTextView=driver.findElementByClassName("android.widget.TextView");assertEquals("TextLogin",loginTextView.getText());WebElementbutton=driver.findElement(By.name("Login"));button.click();

OneofthemainadvantagesofAppiumisthatthetoolnotonlyisabletocommunicatewiththeappbeingtestedbutisalsoabletostartanotherappfromtheappundertest,suchasthecameraapporthecontactsapp.Besidesthat,theappundertestwillnotbemodifiedwhenusingAppiuminordertoautomateit.MoreinformationaboutAppiumcanbefoundontheGitHubpageaswellas

onthemanufacturer’spage:•AppiumonGitHub(https://github.com/appium/appium)•Appiumintroduction(http://appium.io/introduction.html)•AppiumAPIreferencedocumentation(http://appium.io/slate/en/master)

EspressoEspresso20istheAndroidtestkitprovidedbyGoogle.EspressoisbasedonanimprovedInstrumentationTestRunnercalledGoogleInstrumentationTestRunner21tomakeAndroidtestautomationmorereliableandfaster.20.https://code.google.com/p/android-test-kit/wiki/Espresso21.https://code.google.com/p/android-test-kit/wiki/GoogleInstrumentationTestRunner

Espressoprovidesasmallandeasy-to-learnAPItointeractwiththeUIelementsofanativeAndroidapp.Espressoismainlyaimedatdeveloperswhohaveaccesstothecodebaseinordertowritefastandreliabletests.However,ifyouareabletowriteJavacodeandhaveaccesstothecodebaseoftheappyouwanttotest,Espressoisanicelittletoolforwritingthetestautomation.Asanexample,pleaserefertothecodeinListing5.7.

Listing5.7SampleCodefromEspresso

Clickheretoviewcodeimage

Page 146: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

onView(withId(R.id.login)).perform(click());onView(withId(R.id.logout)).check(doesNotExist());onView(withId(R.id.input)).perform(typeText("Hello"));

Espressoisabletoexecutetestseitherfromthecommandline,fromanIDE,orfromacontinuousintegrationserveronrealdevicesoremulatorsbutnotinparallel.However,testexecutionismuchfastercomparedtothatofanyotherAndroidtestautomationtools.AdditionalusefulinformationaboutEspressocanbefoundontheGoogle

projectpage:•Espressostartguide(https://code.google.com/p/android-test-kit/wiki/EspressoStartGuide)•Espressosamples(https://code.google.com/p/android-test-kit/wiki/EspressoSamples)

MoreAndroidTestingToolsAsIsaidatthebeginningofthischapter,thelistofAndroidtestautomationtoolsmentionedinthisbookisbynomeanscomplete.Therearesomanyopen-andclosed-sourcetoolsavailableonthemarket,andmoretoolsareboundtofollow.ThefollowinglistcontainsthenamesofsomeotherAndroidtestautomationtoolsthatyoushouldtry.Thislistcontainssomeclosed-sourceenterprisetoolsaswellassomeunittestingtools.

•eggPlant(www.testplant.com/eggplant/)•Experitest(http://experitest.com/)•JamoSolutions(www.jamosolutions.com/)•Keynote(www.keynote.com/solutions/testing/mobile-testing)•MonkeyTalk(www.cloudmonkeymobile.com/monkeytalk)•PerfectoMobile(www.perfectomobile.com/)•Ranorex(www.ranorex.com/)•Robolectric(http://robolectric.org/)•Siesta(https://market.sencha.com/extensions/siesta)•SilkMobile(www.borland.com/products/silkmobile/)•SOASTA(www.soasta.com/products/soasta-platform/)•TenKodEZTestApp(www.tenkod.com/ez-testapp/)•TestObject(https://testobject.com/)

Page 147: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•UIAutomator(http://developer.android.com/tools/help/uiautomator/index.html)

AndroidToolRecommendationRecommendingamobiletestautomationtoolisnoteasy.Therearesomanyfactorsthatneedtobeconsideredwhenchoosingamobiletestautomationtool,andthosefactorsaredifferentforeachappandproject.FrommypointofviewandjudgingfromtheappsIhaveworkedwith(socialmediaandbookingapps),IrecommendtakingacloserlookatRobotium,Spoon,Appium,andSelendroid.Allofthetoolsaregreattoworkwith.Theyofferfullsupportfornative,

hybrid,andWeb-basedapps.Besidesthat,allofthetoolscomewithgooddocumentation,codesamples,andagreatcommunityifyouwanttoaskquestions.Andlastbutnotleast,writingtestcodewiththetoolsisveryeasyandlotsoffun.WhenchoosingRobotiumasatestautomationtool,Ihighlyrecommend

combiningitwithSpoon.Spoon’stestreportingfeatureisexcellent,andtheoptiontorunyourtestsonseveraldevicesatthesametimeisunbeatable.Robotiumisawell-developedAndroidtestautomationtoolwithahugecommunityandlotsofsupportbehindit.AppiumandSelendroidarealsotoolsyoushouldkeepinmind.Bothoffera

greatwaytodevelopyourautomatedtestsinseveralprogramminglanguages.BothtoolshavegreatoptionsforscalingyourtestingprocessinacloudoraSeleniumGrid.

ImportantKeeponethinginmind:Nomatterwhichtoolyouusefortestautomation,usetheresourceIDsoftheUIcomponentsifpossibleasdoingsospeedsuptestautomationandmakesitmorereliable.

iOSToolsLet’sgofurtherwithsomeiOStestingtools.WhatIalreadymentionedfortheAndroidtoolsalsoappliestoiOStools:

•Theselectedtoollistisnotcomplete.•Ihaveincludedend-to-endtestautomationtools.•Allmentionedtoolsrequirecodingskills.•BeforeyoustartwithiOStestautomation,makesureyou’refamiliarwith

Page 148: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

theiOSUIstructureofiOSapps.

UIAutomationUIAutomation22istheiOStestingtoolthatispartofInstruments23providedbyApple.WiththehelpofUIAutomation,youareabletoeitherrecordthetestsorwritethemmanuallyusingJavaScript.IfyouarefamiliarwithiOSapps,youknowthatiOSappsuseso-calledaccessibilitylabelstodescribetheUIelementsandmakethemaccessible,suchasforscreenreaders.MostiOStestingtoolsandUIAutomationusetheseaccessibilitylabelsinordertocommunicateandinteractwiththeappbeingtested.Ifyourapphasnodefinedaccessibilitylabels,youarenotabletowritetestautomationforit.22.

https://developer.apple.com/library/mac/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/UsingtheAutomationInstrument/UsingtheAutomationInstrument.html23.

https://developer.apple.com/library/ios/documentation/DeveloperTools/Conceptual/InstrumentsUserGuide/Introduction/Introduction.html

UIAutomationisabletosimulaterealuserinteractionssuchastap,swipe,scroll,pinch,ortype,eitheronarealdeviceorontheiOSsimulator.ThecodeinListing5.8showssometestactionsthatcanbeperformed.

Listing5.8SampleCodefromUIAutomation

Clickheretoviewcodeimage

app.keyboard().typeString("Sometext");rootTable.cells()["ListEntry7"].tap();alert.buttons()["Continue"].tap();

UIAutomationisabletochangethedeviceorientationfromportraittolandscapemodeandbackagain.Itisalsoabletohandledifferentalertsthatmayoccurduringthetestrunonthemobiledevice.Theautomatedtestscanbeexecutedfromthecommandline,withintheIDE,andfromacontinuousintegrationserver.MoreinformationaboutUIAutomationcanbefoundonApple’sdeveloper

pages:•UIAutomationJavaScriptreference(https://developer.apple.com/library/ios/documentation/DeveloperTools/Reference/UIAutomationRef/_index.html

CalabashforiOSCalabash24isacross-platformmobiletestautomationframeworkfornativeand

Page 149: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

hybridAndroidandiOSapps(ifyouhavealreadyreadaboutitintheAndroidsection,youcanskipahead).ThetoolenablesautomatedUIacceptancetestswritteninCucumber.25WiththehelpofCucumber,youcanexpressthebehavioroftheappyou’retestingusinganaturallanguage.Thisapproachiscalledbehavior-drivendevelopment(BDD),anditcanbeveryhelpfulwhenbusinessexpertsornontechnicalcolleaguesareinvolvedintheacceptancecriteriaprocess.24.http://calaba.sh/25.http://cukes.info/

ImportantIalreadydescribedthefeaturesofCalabashintheAndroidtoolssection,sopleasereferbackthere.AlmostexactlythesameprocessisinvolvedwhenwritingthefeatureandstepdefinitionfilesforAndroidandiOS.

TogetmoreinformationaboutCalabashforiOS,checkouttheCalabashiOSprojectsite:

•CalabashforiOS(https://github.com/calabash/calabash-ios)•GettingstartedwithCalabashforiOS(https://github.com/calabash/calabash-ios/wiki/01-Getting-started-guide)•PredefinedstepsforCalabashiOS(https://github.com/calabash/calabash-ios/wiki/02-Predefined-steps)

ios-driverios-driver26isabletoautomatenativeiOS,hybrid,andmobileWebappsusingtheSeleniumWebDriverAPI.ItusesthesameapproachasSelendroidbutforiOSapps.ItimplementstheJSONWireProtocolinordertocommunicateandtestiOSappsusingInstruments.Thetoolisabletoexecutethetestseitheronarealdeviceoronasimulator.LikeAppiumandSelendroid,ios-driveroffersyouadifferentsetofprogramminglanguageswithwhichyoucanwriteyourtestscripts.Youcanchoosefromthefollowing:26.http://ios-driver.github.io/ios-driver/

•C#•Clojure•Java

Page 150: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•JavaScript•Objective-C•Perl•PHP•Python•Ruby

ThecodeinListing5.9showssomeofthepossibletestcommandsforanativeiOSappwritteninJava.

Listing5.9SampleCodefromios-driver

Clickheretoviewcodeimage

Bybutton=By.id("Login");WebElementloginButton=driver.findElement(button);Assert.assertEquals(loginButton.getAttribute("name"),"Login");loginButton.click();

InordertoidentifytheUIelementsoftheapp,ios-driverprovidesaUIinspector27similartoSelendroidthatidentifiesandviewsthepropertiesoftheUIelements.ios-driverisabletohandlelocalizedappsanddoesn’trequireanychangestotheappundertest.Thetestscanbeexecutedfromthecommandlineorfromacontinuousintegrationserver.Furthermore,thetoolcanbeusedasanodewithinaSeleniumGridtoscaleandparallelizethetesting.27.http://ios-driver.github.io/ios-driver/?page=inspector

Moreinformationaboutios-drivercanbefoundonthemanufacturer’sWebsite,aswellasontheGitHubprojectpage:

•ios-drivergettingstarted(http://ios-driver.github.io/ios-driver/?page=setup)•Sourcecodeandsamples(https://github.com/ios-driver/ios-driver)

KeepItFunctionalKeepItFunctional28(KIF)isanopen-sourceiOStestingtooldevelopedbythecompanySquare.29KIFisabletoautomatenativeiOSappsusingtheaccessibilitylabelsprovidedbytheapp.Thistoolusestheso-calledtesterobjecttobeabletosimulateuserinputssuchastouch,swipe,scroll,andtyping.Objective-CisusedtowriteautomatedtestscriptsforKIF,andKIFisableto

Page 151: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

executethetestsonarealdeviceoriOSsimulator.28.https://github.com/kif-framework/KIF29.http://corner.squareup.com/2011/07/ios-integration-testing.html

HavealookatthesamplecodeofKeepItFunctionalshowninListing5.10.

Listing5.10SampleCodefromKeepItFunctional

Clickheretoviewcodeimage

[testerenterText:@"userone"intoViewWithAccessibilityLabel:@"UserName"];[testerenterText:@"Mypassword"intoViewWithAccessibilityLabel:@"LoginPassword"];[testertapViewWithAccessibilityLabel:@"Login"];

KIFcanbefullyintegratedwithinXcodetostartanddebugthetestautomationscripts.Furthermore,theautomatedtestscanbeexecutedfromthecommandlineorfromacontinuousintegrationserversuchasBots.3030.https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-

continuous_integration/ConfigureBots/ConfigureBots.html

There’sonethingyouneedtokeepinmindwhenautomatingtestswithKIF:itusesundocumentedAppleAPIs.Thisisnotaproblemwhentestinganapp,butit’scrucialthatyourtestscriptsnotbepartoftheproductioncode.Iftheyare,ApplewillrejectyourappduetotheuseofundocumentedAPIs.IfyoufollowKIF’sinstallationinstructions,thisshouldnotbeanissue.

AppiumAppium31isanopen-source,cross-platformtestautomationtoolfornative,hybrid,andmobileWebapps(ifyouhavealreadyreadaboutitintheAndroidsection,youcanskipahead).AppiumsupportsthemobileplatformsAndroid,iOS,andFirefoxOS.LikeSelendroid,AppiumusestheWebDriverJSONWireProtocoltodriveandtesttheUIofthemobileapps.31.http://appium.io/

ImportantIalreadydescribedthefeaturesofAppiumintheAndroidtoolssection,sopleasereferbackthere.

MoreiOSTestingTools

Page 152: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AsIdidforAndroid,I’dliketoprovideyouwithalistofadditionaliOStestingtools.Thefollowinglistcontainsunittestingandend-to-endopen-andclosed-sourcetestingtools;itisbynomeanscomplete:

•Experitest(http://experitest.com/)•Frank(www.testingwithfrank.com/)•GHUnit(https://github.com/gh-unit/gh-unit)•JamoSolutions(www.jamosolutions.com/)•Keynote(www.keynote.com/solutions/testing/mobile-testing)•Kiwi(https://github.com/kiwi-bdd/Kiwi)•MonkeyTalk(www.cloudmonkeymobile.com/monkeytalk)•OCMock(http://ocmock.org/)•PerfectoMobile(www.perfectomobile.com/)•Ranorex(www.ranorex.com/)•SilkMobile(www.borland.com/products/silkmobile/)•SOASTA(www.soasta.com/products/soasta-platform/)•Specta(https://github.com/specta/specta)•Subliminal(https://github.com/inkling/Subliminal)•XCTest(https://developer.apple.com/library/prerelease/ios/documentation/DeveloperTools/Conceptual/testing_with_xcode/testing_2_testing_basics/testing_2_testing_basics.html#//apple_ref/doc/uid/TP40014132-CH3-SW3)•Zucchini(www.zucchiniframework.org/)

iOSToolRecommendationRecommendinganiOStestautomationtoolisalsonotaneasytask.JustasforAndroid,therearesomanyfactorstoconsiderwhenchoosinganiOStestautomationtool.Irecommendthatyoutakeacloserlookatios-driver,Appium,andKeepItFunctional.Allofthetoolsprovidereallygoodandpowerfulfeaturesinordertobuild

reliableandrobusttestautomationscriptsforiOSapps.IfyoujustwanttoautomateanativeiOSapp,KIFwouldbeagoodchoiceasyoucansetupandwritereliableandrobustautomatedtestsveryquickly.AnotheradvantageofKIFisthatthetestscriptsarewrittenwithObjective-C,thesamelanguagewithwhichtheappwillbewritten.IfyoustrugglewithObjective-C,youcansimplyaskyourdevelopersforsupportorhavethemwritethetestautomation.

Page 153: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

IfyouwanttoautomateahybridiOSorWebapp,youshoulduseeitherios-driverorAppiumasbothoffergreatsupportforvariousprogramminglanguagesaswellastheoptiontousetheminacloudorSeleniumGridenvironment.Thisprovidespowerfulscalingandparalleltestexecutiononseveraldifferentdevicesandoperatingsystems.Allthreetoolscomewithgooddocumentationandverygoodcodesamples,

areeasytouse,andhaveahugecommunitybehindthemthatisonhandtohelpifyourunintoanyproblems.

MobileTestAutomationToolsSummaryAsyouhaveseen,therearemanydifferentmobiletestautomationframeworksavailableonthemarket.Eachtoolhasitsownstyleofwritingtestscriptsandsupportsdifferentfeaturesets,differentmobileplatforms,anddifferentmobileapptypes.Everytoolcurrentlyavailableonthemarkethasitsprosandcons.Youshouldreallykeepinmindthatnotoolisperfect,beitanopen-orclosed-sourcetool.Beforeselectingamobiletestautomationtool,scanthemarketforpossibletoolsandsolutionstohelpyoumaketherightdecision.Useasampleapporachecklisttoevaluatethevarioustools.Andlastbutnotleast,it’simportanttostartsimplewithamobiletest

automationtool.Don’ttryandfindTHEoneandonlytestautomationsolutionforyourmobileapp.Maybeyouneedtousemorethanonetoolortocombinetoolsinordertobuildupatestautomationsuitethatcoversyourneedsandrequirements.Itisbettertohaveonlyacertainamountoftestautomationinplacethatcovers,forexample,thecriticalpartsofyourappinsteadofeverypart.Whenchoosingatool,askyourselfthequestion“Whatshouldbeautomated?”

ContinuousIntegrationSystemContinuousintegration(CI)isnothingnew,andthisdevelopmentpracticeofintegratingandtestingthecodefromacentrallysharedcoderepositoryseveraltimesadayhasbeeninuseforseveralyearsnow.Everycheck-inisthenverifiedbyadifferentsetofautomatedbuildstepstoensurethatthelatestcodechangeswillnotbreakthesoftwareandintegrationwithothermodules.ACIservershouldbeavailableineveryproject,nomatterifthesoftwareisa

desktop,Web,ormobileapplication,asitwillhelptheteamreducetheriskofbrokensoftware,givefastfeedbacktoeveryoneinvolvedintheproject,andintegratesmallersoftwarepartsintoothersasearlyaspossiblewithinthe

Page 154: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

process.Nowadays,thereareplentyofopen-andclosed-sourceCIsystemsavailable

onthemarket.IfyouhaveaCIsysteminyourteam,integratetheautomatedmobiletestsintoit.NearlyeverymobiletestautomationtoolcanbeintegratedintoaCIsystem.Ifthisisnotpossiblewiththetoolyou’reusing,you’llhavetofindawaytointegrateitsuchaswithexternalbuildscriptsthatwillrunoutsidetheCIenvironmenttofulfillthetask.Thisisveryimportantfortheprojectasawholesothatacompletebuildpipelineincludingallbuildandtestscriptscanbeestablished.Whenthetestautomationtoolhasbeenintegrated,defineabuildandtest

strategywithyourteam.Talktoyourdevelopersanddefinewhichtestsshouldbeexecutedaftereverycommitorduringthenight.IfyourautomatedtestsstarttoturnfastfeedbackfromyourCIsysteminto

slowfeedback,splitthemintoseparatetestsuites.Forexample,youcandefineasmoketestsuitecontainingteststhatcheckwhetherthemainpartsoftheapplicationarestillworking.Thistestsuiterunsforonlyacoupleofsecondsorminutesandshouldbeexecutedaftereverycommit.Anothertestsuitecanbearegressiontestsuitethatruns,say,fourtimesadaytochecktheappinmoredetail.Andanothersuitecanbeafulltestsuitethatrunseverytesteverynighttomakesurethecodechangesfromthepreviousdayhavenotaffectedtheexistingpartsoftheapp.AnotherimportantpointwhenaddingamobiletestautomationtooltoaCI

systemistestreporting.TheCIsystemmustbeabletodisplaydifferentkindsoftestreportformatsinordertoprovidethewholeteamwithvisualfeedback.Thereportingcomponentofthesystemshouldbeeasytoreadandunderstand.OncetheCIsystemandallofthemobiletestinganddevelopmenttoolshave

beenintegrated,defineacompletebuildandtestpipelineforyourmobileapplication.Thebuildpipelineshouldbeabletostartautomaticallywithoutanyuserinputs,forexample,byeitherlisteningtoacentralcoderepositoryortriggeringthebuildsatacertaintimeduringthenight.Furthermore,thebuildstepsshouldtriggerotherbuildstepsinordertounit-

test,end-to-end-test,buildanapplicationondifferentstagingsystems,buildalphaorbetaversionsoftheapp,oruploadtheapplicationtoabetadistributionserver.Hereisanexampleofapossible,verysimplemobilebuildpipeline:1.Performstaticcodeanalysis,suchaswithPMD,FindBugs,Lint,orCheckstyle.

Page 155: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

2.Performunittests.3.Performend-to-endUItests.4.Buildamobileappversionondifferentstagingsystems.5.Buildabetaversionofthemobileapp.6.Uploadthebetaversiontoabetadistributionsystem.7.Signandbuildareleasecandidateoftheapp(theonlybuildstepthatshouldbetriggeredmanually).

Buildsteps1and2shouldbeexecutedonthedeveloper’scomputerbeforeheorshecommitsthecodetothecentralrepository.IfyouhaveaCIsystemforyourmobileappinplace,don’tforgettoplugreal

devicesintothatserverinordertoexecuteallofthetestautomationontherealdevice.ThefollowingaresomeoftheavailableCIsystems:•Bamboo(www.atlassian.com/de/software/bamboo)•Bots(https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/xcode_guide-continuous_integration/ConfigureBots/ConfigureBots.html)•Buildbot(http://buildbot.net/)•CruiseControl(http://cruisecontrol.sourceforge.net/)•Janky(https://github.com/github/janky)•Jenkins(http://jenkins-ci.org/)•TeamCity(www.jetbrains.com/teamcity/)•TravisCI(https://travis-ci.org/)

ImportantHaveaCIsysteminplaceandintegrateyourmobiletestautomationtooltogetfastfeedbackaboutthequalityoftheappaftereverycodechange.

BetaDistributionToolsAsyouhavelearnedfromthepreviouschapters,mobileusershaveexpectationsintermsoftheusability,performance,andfeaturesofmobileapps.Youandyourteamthereforehavetobesurethatyourmobileappprovidesagreatuserexperienceandisfast,reliable,andfuntouse.Tomeetalloftheseexpectations,

Page 156: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

youandyourteamhaveachallengingjobandneedtotesttheappwithotherpeopletogetfeedbackasearlyaspossibleinthedevelopmentprocess.Togetthisfeedbackfromotheruserssuchascolleaguesorusersfromyour

targetcustomergroup,youneedatooltodistributebetaversionsofyourapp.Withthehelpofthistool,youcangivepotentialusersaccesstoabetaversionofthenextreleasecandidate.Betadistributiontoolsincludeseveralusefulfeaturessuchasover-the-airapp

distribution,crashreporting,bugreporting,anddirectin-appfeedback.Sometoolsprovideso-calledcheckpointswithintheappwhereyoucanplacequestionsfortheuseraboutthefeatureheorshejustused.Anothernicefeatureisso-calledsessions,whichcanbeincludedtotrackhowthebetatesterusestheapporafeature,thushelpingyoutoidentifyunexpectedappusage.Thetoolsalsoprovidedataandstatisticsaboutthemobileoperatingsystemversions,devicehardware,andinterfacelanguage.Alloftheinformationprovidedbyabetadistributiontoolisreallyimportant

toknowbeforeyourappisusedbythemajorityofyourtargetcustomergroup.Youcandrawonthisinformationtorefineanddevelopyourappintherightdirection,thusmakingitfarmorereliable,stable,andofcoursefuntouse.Whenusingabetadistributiontool,itisveryimportanttoinformthepotential

betatestersaboutallofthesefeaturesandthatinformationisgatheredaboutthedeviceandtheuser.Asastartingpoint,useabetadistributiontoolwithinyourcompanybyasking

yourcolleaguestotesttheappandprovidefeedback.Noteverymobileappcanbedistributedasabetaversiontotheoutsideworldduetonetworkrestrictions,companyguidelines,orpertinentlaw.Hereisalistofbetadistributiontools:•Appaloosa(www.appaloosa-store.com/)•AppBlade(https://appblade.com/)•ApplauseSDK(www.applause.com/mobile-sdk)•BetabyCrashlytics(http://try.crashlytics.com/beta/)•BirdFlight(www.birdflightapp.com/)•GooglePlaynativeAppBetaTesting(https://play.google.com/apps/publish)•HockeyApp(http://hockeyapp.net/)•HockeyKit(http://hockeykit.net/)

Page 157: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•TestFlight(https://developer.apple.com/testflight/index.html)GoogleandApplealsoprovideawaytodistributeabetaappversiontoa

wideruserbase.WithinGooglePlay32youareabletoaddbetatesterswiththeirGmailaddresseswhocanthendownloadthebetaversionfromtheGooglePlaystore.Alternatively,youcandefineastagedrolloutwhereanewversionofyourappisavailableonlytoacertainnumberofusers,forexample,10%ofthecurrentuserbase.Iftheappworksasexpected,youcanincreasetheapprollouteithertoyourentireuserbaseorbyanotherincrement.32.https://support.google.com/googleplay/android-developer/answer/3131213?hl=en

OntheApple33side,youarealsoabletobuildabetaversionofyourappanddistributeittoregisteredbetatesters.ThebetatestershavetoberegisteredwiththeiruniquedeviceID(UDID)usinganadhocprovisioningprofile.However,youareabletoregisteronly100testdeviceswithinonemembershipyear.YoucangetaroundthistestdevicerestrictionifyourcompanyispartofApple’senterpriseprogram.33.

https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/TestingYouriOSApp/TestingYouriOSApp.html

ImportantWhereverpossible,useabetadistributiontooltogatherearlyfeedbackfrombetatestersinordertobuildabettermobileapp.

SummaryThefifthchapterofthisbookconcentratedonmobiletestautomation.AtthebeginningofthechapterIexplainedtheproblemwiththetraditionaltestautomationpyramidandmobileapps.Iintroducedandexplainedtheflippedtestingpyramidandshowedanewpyramid—themobiletestpyramid.Thispyramidcontainsautomated,aswellasmanual,testingtofitalltherequirementsofthecurrentstateformobileapps.InthenextsectionofthischapterIdescribedthedifferentapproachesand

typesofmobiletestautomationtools.Thesearetoolsthatuseimagerecognition,coordinate-basedrecognition,textrecognition,ornativeobjectrecognition.Iexplainedeveryapproach,withprosandcons.Furthermore,Iassignedtheavailabletoolsonthemarkettothedifferentapproachestoprovideyouwithanoverview.InanothersectionIexplainedwhyitisabadideatojustusecaptureand

replaytoolsforyourtestautomation.Thosetoolsdoprovideagoodstarting

Page 158: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

pointtogetsometestautomationupandrunninginthefirstplace,butinthelongruntheywillcauselotsofmaintenancetroubleandthetestsaren’treliableatall.Inthesection“WhatShouldBeAutomated?”Iexplainedwhichpartsofyour

appneedtestautomationandwhichdonot.Forexample,itisagoodapproachtoautomatethebusiness-criticalpartsoftheapp.Ontheotherhand,thosepartsthatarelikelytochangeofteninthenearfuturearefineformanualtestingbecausethetestautomationwillnotruninastablefashioniftheyareincluded.Tohelpyouselecttherighttestautomationtoolforyourmobileapp,I

includedalistwithselectioncriteriatofindthetoolthatfitsbestintoyourdevelopmentandtestenvironment.Thebiggestpartofthischaptercoveredthecurrentstateofmobiletest

automationtoolsfortheiOSandAndroidplatforms.Iexplainedthedifferenttoolswithcodesamplesaswellasprosandcons.Idescribedthefollowingtools:

•Robotium•Spoon•Selendroid•CalabashforAndroidandiOS•Appium•Espresso•UIAutomation•ios-driver•KeepItFunctional

Theclosingsectionsofthischaptercoveredthetopicsofcontinuousintegrationandbetadistributionofmobileapps.IoutlinedasamplemobileCIbuildpipelinethatcaneasilybeadaptedtoyourenvironment.IaddedalistofCItoolsthatcanbeusedformobileapps.Inthebetadistributionsection,Iexplainedthepurposeofdistributingabetaversionofyourapptocolleaguesorbetatesterstogetearlyfeedbackandbugreports.

Page 159: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter6.AdditionalMobileTestingMethods

Sofaryou’velearnedaboutmobiletechnologiesandhowtomanuallytestmobileappsindifferentscenariosaswellaswhileoutandabout.You’velearnedaboutmobiletestautomationandtheconceptsbehindthedifferentmobiletestautomationtools.You’renowawareofseveraltoolsforthedifferentmobileplatformsandknowhowtoselecttherighttoolforyourtestingprocess.Toextendyourknowledgeandyourtoolbox,inthischapterIintroducesome

otherpossiblemobiletestingapproaches:crowdandcloudtesting.Bothoftheseapproachescanbebeneficialinyourdailyworkwithinamobileteam.

CrowdTestingAcompanyhasthreepossiblewaystoestablishsoftwaretestingwithinanorganization.Testingcanbedonewiththeaidofanin-housequalityassurancedepartment,viaoutsourcing(nearshoring/offshoring),orusingacrowdtestingapproach.In-housetestingandoutsourcingarenothingnew,andbothareconsideredestablishedapproachesamongvariousorganizationsandindustries.Butthisisnotthecasewithcrowdtesting.Thetermcrowdsourcingwas

introducedbyJeeHowe1in2006andisacombinationofthewordscrowdandoutsourcing.Inthesoftwaretestingbusinessthewordcrowdsourcinghasbecomecrowdtesting.

1.www.crowdsourcing.com/

Withthehelpofacommunityofexternalsoftwaretesters,severalcrowdtestingprovidersofferanewwaytoperformsoftwaretesting.Theexternalsoftwaretesterscomefromdiversebackgrounds,bothgeographicallyandintermsoftheirleveloftechnicalknowledge.Dependingonthecrowdtestingprovider,thecrowdcanrangefromafewpeopletoseveralthousandtestersworldwide,anditmayincludesoftwaretestingexpertsandpeopleofanyage,gender,profession,andeducationalbackground.Furthermore,thecrowdtestershavelotsofdifferentdeviceswithdiversehardwareandsoftwarecombinationsandaccesstoanumberofdifferentdatanetworks.Crowdtestingistantamounttotestinginthewild.Withtheaidofcrowdtesters,anappwillbetestedunderasetofrealistic

scenariosthatcan’tbecreatedbyanin-housetestingteam.Themobileappwillbetestedunderreal-worldconditions—withdifferentdatanetworks,hardware,andsoftwareaswellasdifferentusers.Externaltestersprovideafreshsetof

Page 160: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

eyesforyourmobileappandwilldoubtlessreportlotsofbugs,deviations,aswellasperformance,usability,andfunctionalissues.Crowdtestingprovidersofferaplatformwherecrowdtesterscanregisterand

createaprofilestatingtheirdevices,skills,anddemographicbackground.Theclientcanaddtheappundertest,thepreconditions,samplescenarios,instructions,knownbugs,anddetailedtestplans.Theclientisalsoabletodefinethedemographicbackground,targetcustomergroup,skillset,anddevicesonwhichthecrowdshouldtestthemobileapp.Somecrowdprovidershaveaprojectmanagementframeworkinplace,

includinggovernanceandlegalstructuresforthetestingphase.Inaddition,testprovidersassignaprojectmanagerwhoisresponsibleforthetestcycle.Theprojectmanagerisalsothepersonwhofilters,rates,andcategorizesthebugsreportedbythecrowdandsummarizesthetestingcyclefortheclient.Somecrowdtestingprovidershaveanassessmentcenterortrialprojectin

placewherepossiblecrowdtestersmustparticipateinordertoverifytheirtestingabilitiesbeforebeingacceptedintothetestingcommunity.Mostcrowdtestingproviderschargeafeefortheirservices,butcrowdtesting

isrelativelycheapbecauseyoupayonlyforthepackagethatyouhaveagreeduponwiththecrowdtestingprovider.Therearedifferentkindsofpackagesavailable,suchassimplebugreporting,exploratorytesting,and/orexecutingdefinedtestcases.Figure6.1showsthetypicalcrowdtestingprocessfromthefirstbriefingwith

thecrowdprovidertothefinalpresentation.Duringthetestcycle,theclientisalwaysabletoseetheliveprogressofthecrowdtesters.

Page 161: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure6.1Typicalcrowdtestingprocess

1.Thefirststepistheinitialbriefingbetweenthecrowdproviderandtheclient.

2.Thecrowdproviderselectsthecrowdbasedontheclient’srequirements.Duringthetestcycletheprovidersupportsthecrowd.

3.Thecrowdteststhesoftware.4.Thecrowdtestersfilereportsdependingontheaimofthetestcycle,forexample,bugs,feedback,oranyotherkindofproblems.

5.Thecrowdproviderensuresthatthequalityofthereportsisgoodenough.Heorshewillfollowuponbugsifmoreinformationisneeded.

6.Attheendofthetestcyclethecrowdproviderwritesthefinaltestreport.7.Thereportisthenpresentedtotheclient.However,therearesomechallengesyouneedtobeawareofifyouwantto

useacrowdtestingapproachinyourproject.Itcantakealongtimetoprepareandorganizeacrowdtestingcycle.You

needtodefinetheexactgoalforthetestcycleandcollectandpreparealloftheinformationneededforthecrowdinordertogetvaluableresults.Youneedto

Page 162: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

briefthecrowdtestingprovider,andattheendofthetestcycleyou’llneedsomemoretimetoreviewallofthebugandtestreportsyoureceive.However,thesestepsarealsonecessaryifyouwanttobriefanewin-housetesteronanewproject.Thereportedbugsmaybeofverylowqualitybecauseofthecrowd’slackof

knowledge.Thecrowdtestingproviderwillofcoursefilterandcategorizethebugsandpaytestersonlyforthoseofrealvalue,butit’salsolikelythatthebugreportsaren’tdetailedorpreciseenoughforyourneeds.Itmaybeverydifficultforcrowdtesterstoaccessthedevelopmentandtest

systems.Dataprivacyandsecurityissuesmaypreventyoufromgrantingexternalaccesstointernalstagingsystems,forcingthecrowdtesterstousetheproductionenvironmentwhich,inturn,hastoworkandinteractwithabetaversionofyourapp.Maybeyouneedtocreateanisolatedsectionwithintheproductionenvironmentthatcanhandlethebetarequestsandbeusedforthecrowdtestingcycle.Attheendofthetestcycleyouneedtobesurethatthecrowdtestersarenolongerabletoaccesstheproductionenvironmentandthattheappwillbeofnousetothem.AnotherchallengecomesintheformoflegalhurdlesandNDAs

(nondisclosureagreements).Ifyourappisconfidential,forexample,crowdtestingmaysimplynotbeanoption.Theprosofcrowdtestingincludethefollowing:•Thecrowdincludesdifferenttestersfromaroundtheworld,withdifferentdemographicbackgroundsandskillsets.•Lotsofdifferentmobiledeviceswithdifferenthardwareandsoftwarecombinationscanbeusedfortesting.•Themobileappistestedinreal-worldconditionswithrealusers.•Thecrowdprovidesafreshsetofeyesforyourapplication.•Lotsofissueswillbereported.•Crowdtestingprovidersfilterandcategorizethebugs.

Theconsofcrowdtestingincludethefollowing:•Crowdtestersarenotgenerallytestingexperts.•Youdon’treallyknowwhomyou’redealingwith.•Bugreportsmaybeoflowquality.•Accesstostagingsystemscanbeverydifficultduetolegalhurdles,dataprivacy,andsecurityconcerns.

Page 163: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Crowdtestingcantakealongtimetoprepare.•Communicationwiththecrowdcanbedifficult.•Reproducingbugscanbedifficult.•Thereisariskthatthemobileappwillcontinuetobeusedbythecrowdafterthetestcyclehasended.

ImportantSomecrowdtestingprovidershaveamechanismtoautomaticallyuninstalltheappundertestfromtesters’mobiledevices.

Thefollowinglistincludessomecrowdtestingproviders(thislistisbynomeanscomplete):

•99tests(http://99tests.com/)•Applause(www.applause.com/)•crowdsourcedtesting(https://crowdsourcedtesting.com)•GlobalAppTesting(http://globalapptesting.com/)•Mob4Hire(www.mob4hire.com/)•passbrains(www.passbrains.com/)•Testbirds(www.testbirds.de/)•testCloud(www.testcloud.io/)•TestPlus(www.testplus.at/)

ImportantThecrowdtestingapproachisagoodextensionofyourin-housetestingteam.However,crowdtestingwon’tandshouldn’treplaceyourin-housetestingactivities.

PrivateCrowdTestingIfyou’renotabletouseapubliccrowdtestingproviderbecauseoflegalrestrictions,NDAs,ordataprivacyanddatasecurityconcerns,orbecauseyou’renotabletograntaccesstoyourdevelopmentenvironment,youcanuseaprivatecrowdtestingapproach.Youcanstartandbuildupaninternalcrowdtestingsessionwithyour

colleagues.Dependingonthesizeofyourcompany,you’llbesurroundedbylots

Page 164: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

ofpeoplefromdifferentbackgroundsworkinginvariousdepartments,soyoucancollectfeedbackfromdevelopers,designers,productmanagers,projectmanagers,management,sales,andmarketingcolleagues.Withtheinputfromyourcolleagues,you’llbeabletosimulaterealusersindifferentusagescenariostogetaninitialimpressionofyourapp.Oneofthebiggestadvantagesyou’llnoticewhenestablishingaprivatecrowd

testingapproachisthatyou’llneedlesstimetoprepareandorganizeitthanwithapubliccrowdtestingapproachbecauseyourcolleaguesarealreadyfamiliarwiththecorporateenvironment,theproduct,anditsfeatures.Employeescanalsogainaccesstothedevelopmentorstagingenvironment,whichallowsyoutosidestepanylegalrestrictionsandNDAs.Furthermore,itisveryeasytocommunicatewithyourcolleaguesduringthe

testcycleandtoobservethemwhiletheyareusingtheapp.Thiswillprovideyouandyourteamwithextremelyvaluableinsightsintohowusersactuallyinteractwithyourappintermsofusabilityandfunctionality.Attheendofatestcycleyoucaninterviewyourcolleaguesabouttheappanditsnewfeaturestogathermoreinformationabouttheiropinionsoftheappandanyproblemstheyencounteredduringtesting.Theinternalcrowdtestingsessioncanbekeptshortandcanberepeated

severaltimesduringyourapp’sdevelopmentphase.Thisgivesyoumoreflexibilitywhenitcomestoreactingtopossibleusability,functional,orperformanceproblems.Onewaytokeepyourcolleaguesdedicatedandmotivatedistointroduceyour

internaltestingsessionasacompetition.Trycreatingcategoriesforthecompetitionandawardprizesforeachcategory.Possiblecategoriescouldincludethefollowing:

•Bestusabilitybug•Bestfunctionalbug•Bestperformancebug•Bestsecuritybug•Bestfeedbackprovided•Bestbugreport•Bestoveralltestengagement

Prizescouldincludethefollowing:•Companymugs

Page 165: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Funnystickers•T-shirtswithfunnyslogans•Vouchers

Prizesdon’thavetobeexpensive;theyjustneedtomotivatepeopletofindandreportasmanybugsaspossible.Furthermore,competitionwillgiveyourcolleaguesanincentivetotakepartinupcomingtestcycles.

ImportantTrytocreateaprivatecrowdtestingsessionwithinyourcompanyandseehowyourcolleaguesperformastesters.You’llbesurprisedatthebugsandthereportedresults.

MobileCloudTestingManufacturersofmobilecloudtestingsolutionsprovideawiderangeofcurrentmobiledeviceswithdifferenthardwareandsoftwarecombinationsinthecloud.Cloudtestingprovidersusethecharacteristicsofcloudcomputingtoprovidethisservicetomobilecompanies,teams,andmobiletesters.Suchcharacteristicsincludethefollowing:

•Thecloudusesadynamic,shared,andvirtualITinfrastructure.•Thecloudprovideson-demandself-service.•Thecloudisscalablebasedontheload.•Thecloudispricedaccordingtoconsumption.•Thecloudisavailableacrossdifferentnetworkconnections.

MobilecloudtestingsolutionsareaccessibleviatheWebandprovidedifferenttypesoftestingthatcanbeperformedwithinthecloudonrealoremulated/simulateddevices.Thedifferenttestingtypesavailableare:

•Functionaltesting•Performancetesting•Loadtesting•Mobiledevicetesting•Cross-browsertesting

AsisthecasewithOpenDeviceLabs,themobilecloudprovidesyouandyourteamwitheasyaccesstoacomprehensiverangeofcurrentmobiledevicesusingallofthedifferentmobileplatforms,nomatterwhereyouareintheworld.

Page 166: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Ifyouwanttotestyourmobileappinthecloud,allyouneedtodoisallocatethephysicaldevice,uploadandinstallyourapp,andstartyourmanualorautomatedtesting.Providersofferdifferentkindsofadditionalservicessuchasreportingfeatures,screenshots,andvideosofyourtestsessionoranAPItoexecuteyourtestautomationscriptsonseveraldevicesinparallel.Thefactthatmobiletestcloudsaredistributedindifferentgeographical

regionsallovertheworldmakesiteasytosimulatedifferentnetworktechnologiesandscenariosfrompotentialmobileusers.Onemajoradvantageofamobiletestcloudisthatyoudon’tneedtobuynew

phonesforyourdevelopmentortestingeffortsasthiswillbedonebythecloudprovider.Furthermore,youdon’tneedtomaintainallthedifferentdevices,whichmayhaveapositiveimpactonyourprojectcosts.However,therearealsosomelimitationsifyouwanttotestyourmobileapp

withinamobilecloud.Forexample,ifyourappusesaBluetoothconnectiontoconnecttootherphysicalelementssuchasspeakers,itisnotpossibletotestwithinacloud.Itisalsonotpossibletouseallthesensorsandinterfacessuchastheproximitysensor,brightnesssensor,accelerationsensor,orgyroscopesensorbecausetheclouddevicesaremountedandconnectedtoaserverwithinadatacenter.Ontopofthat,youcan’ttestyourmobileappforinterruptionsornotificationsfromotherappsorthedeviceitself.Anotherdrawbackoftestingyourappmanuallywithinamobilecloudisthat

you’reinteractingwithyourappthroughthecomputermouse.Youhavenophysicalcontactwiththedeviceorappwithyourhandorfingers,makingitverydifficulttogetafeelfortheusabilityandresponseoftheapp.Furthermore,multitouchgesturescan’tbeperformedonthetouchinterface.And,lastbutnotleast,securityandprivacyissuesshouldn’tbe

underestimatedwhenusingamobiletestcloud.Youneedtobesurethattheproviderwillcompletelyremoveyourappanditsdatafromthetestdevicesafterthetestsessionhasbeencompleted;otherwisethenextcloudtestingusermightbeabletoseeanduseyourapp.Beforechoosingamobilecloudtestingprovider,checktheprovidedfeatures

andcomparethemwiththoseofothervendors.Youshouldalsoweightheprosandconsofmobilecloudtestingtoseeifthisapproachfitsyourprojectanddevelopmentenvironment.Theprosofmobilecloudtestingincludethefollowing:•Easyaccesstothephysicaldevices•Easyaccesstoemulatorsandsimulators

Page 167: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Fastandeasysetupofthemobiledevices•Accessibilityfromanywhereintheworld•Lowercostsasthere’snoneedtobuynewdevices•Nodevicemaintenancecosts•Differenttesttypes•Simulatednetworkprovidersfromallovertheworld•Goodreportingfeaturessuchasreports,screenshots,andvideos

Theconsofmobilecloudtestingincludethefollowing:•Youhavelesscontroloverthemobiledevices.•Networkissuescanaffecttheavailabilityandthefunctionalityofthemobiletestcloud.•Securityandprivacyissues:Othercompaniesusethesamedevices,soyouneedtobesuretheappwillbedeletedinfullafterthesessionhasbeencompleted.•Performanceproblems:TestingtheappviatheInternetcanhaveanimpactontheappexecutiontimeandtestresults.•Firewallsetup:Youneedtochangesomeofthefirewallsettingsinordertogainaccesstothedevelopmentandtestenvironments.•Ifthecloudhasanysystemproblemsoroutages,yourapptestenvironmentmayalsoexperiencepoorperformanceoroutages.•Itisdifficulttotrackdownintermittentproblemsbecauseyouhavenoaccesstothesystem.•Noteverythingcanbetestedwithinacloud,forexample,sensors,interfaces,interrupts,andnotifications.•Youhavenophysicalcontactwiththedevice.

Thefollowingaresomemobilecloudtestingproviders(thislistisbynomeanscomplete):

•AppThwack(https://appthwack.com/)•Appurify(http://appurify.com/)•CloudMonkey(www.cloudmonkeymobile.com/)•Experitest(http://experitest.com/cloud/)•Keynote(www.keynote.com/)•Neotys(www.neotys.com/product/neotys-cloud-platform.html)

Page 168: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•PerfectoMobile(www.perfectomobile.com/)•Ranorex(www.ranorex.com/)•SauceLabs(https://saucelabs.com/)•TestChameleon(www.testchameleon.com/)•Testdroid(http://testdroid.com/)•Testmunk(www.testmunk.com/)•TestObject(https://testobject.com/)•XamarinTestCloud(http://xamarin.com/test-cloud)

ImportantMobilecloudtestingisagoodextensiontoyourin-housetestingworkbutcomeswithsometestinglimitationsthatneedtobetakenintoconsideration.

PrivateCloudIfthedrawbacksoutweightheadvantagesofapubliccloud,butyou’restillinterestedinusingacloudtestingapproach,considerusingaprivatemobiletestingcloud.Almosteveryproviderintheprecedinglistcanprovideaprivatemobiletestcloud.Aprivatemobilecloudcanbeofferedasahostedorlocallyinstalledsolution.

Thehostedsolutionisthemorecommononebecauseiteliminatesthelogisticsandcostsincurredbybuyingnewphonesandmaintainingdevices,suchasinstallingupdatesandperformingconfigurations.Privatecloudprovidersofferasecureareawithinthedatacenterthatgrantsexclusiveaccesstothephysicaldevices.Ontopofthat,theyoffervarioussecurityoptionstomeetacompany’ssecuritypoliciesandrequirements.Thelocallyinstalledsolutionisalsoknownasaprivatemobiletestlab.Ifyou

decidetousethissolution,themobilecloudproviderwillprovideyouwithamobiletestingrackincludingdevicemanagementsoftwaretomaintainandallocatetestdeviceswithinyourcompanytodevelopersortesters.Youcanalsoextendtherackwithnewdevicesonyourown.Thisdevicerackwillbelocatedbehindyourfirewall,anddevicesare

connectedtothedevelopmentenvironment,whichalleviatesanyproblemswiththespeedandconnectionproblemsofapubliccloud.Securityandprivacyconcernsarealsonolongeranissuewiththissolution.Bywayofexample,refer

Page 169: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

tothemobiletestlabfromMobileLabs.22.http://mobilelabsinc.com/products/deviceconnect/

Alocallyinstalledsolutionalsocomeswiththeproblemthatyou’reresponsibleforbuyingandmaintainingnewdevicestobeincludedinthedevicerack.Furthermore,aprivatemobiletestingcloudcanbereallyexpensiveasyouhaveexclusiveaccesstothetestdevices,thecloudvendorprovidesyouwithexclusivesupport,andbothyouandyourcompanyneedtotrainyourcolleaguestobeabletoworkwiththeprivatecloudsoftwareandsystem.Theprosofaprivatemobiletestcloudincludethefollowing:•Easyaccesstothephysicaldevices•Fastandeasysetupofthemobiledevices•Accessibilityfromanywhereintheworld•Nodevicemaintenancecosts(hostedsolutiononly)•Differenttesttypes•Simulationofvariousnetworkprovidersfromallovertheworld(hostedsolutiononly)•Exclusiveaccesstothetestdevices•Nosecurityconcerns

Theconsofaprivatemobiletestcloudincludethefollowing:•Itisfarmoreexpensivethanapublicmobiletestcloud.•Networkissuescanstillaffecttheavailabilityandthefunctionalityofthemobiletestcloud.•Firewallsetup:Youneedtochangesomefirewallsettingstogainaccesstothedevelopmentandtestenvironments(hostedsolutiononly).•Ifthecloudhasanysystemproblemsoroutages,yourappwillperformpoorlyandmayalsoexperienceoutages(hostedsolutiononly).•Itisdifficulttotrackdownintermittentproblemsbecauseyouhavenoaccesstothesystem(hostedsolutiononly).•Noteverythingcanbetestedwithinacloud,forexample,sensorsandinterfaces.•Additionaltrainingisrequiredtoworkwiththecloudprovidersoftwareandsystem.

Important

Page 170: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Becauseofthemanualtestinglimitations,youshouldconsiderusingmobiletestcloudsformobiletestautomationpurposesonlywiththeaimofhandlingautomatedtestingandfragmentationacrossseveraldevices.Manualtestingshouldstillbeperformedonrealdevicesinreal-worldenvironmentsandwhileonthemove.

Cloud-BasedTestAutomationInChapter5,“MobileTestAutomationandTools,”Iexplainedthedifferentconceptsofmobiletestautomationtools.IalsodescribedsomemobiletestautomationtoolsfortheiOSandAndroidplatforms.Whenchoosingamobiletestautomationtool,checktoseeifthetoolisabletoexecutethetestscriptswithinamobiletestcloud.SomeofthemobiletestcloudprovidersofferanAPIforvariousmobiletestingtoolssoyoucanexecuteyourscriptswiththeirservices.ThisAPIcanhelpyouscaleyourtestingeffortsandtestdifferentdevicesinparallel.SomeprovidersofferthepossibilityofwritingtestautomationscriptsontheWebwithinthecloudtestingsoftware.Theadvantagesofamobiletestcloudalsoapplytotestautomationwithinthe

cloud.Amobiletestcloudcanhelpyoucreateanautomatedon-demandtestenvironmentforyourmobileappandmobileplatform.However,usingacloud-basedtestautomationapproachalsohassome

additionaldrawbacks.Testexecutiononclouddevicesisslowerthanwithalocaltestautomationsolution,whichispartlyduetothecommunicationbetweenthecloudprovidernetworkandyourcompanynetworkwhenrequestingandsendinglotsofdata.Thislatencycanhaveanimpactonthetestresultsandbehaviorofyourapp.Testingtheperformancewithtestautomationscriptsonamobiletestcloudisthereforenotanidealsolution.Debuggingthetestautomationscriptsontheclouddevicesisanotherissueasscriptdebuggingispossiblebutnotyetgoodenoughtoworkefficiently.Ifyou’reconsideringusingacloud-basedtestsolution,evaluateseveral

providerstoseeiftheyofferthefeaturesyouneedforyourmobileapp.Acloud-basedtestautomationapproachcanbeausefuladditiontoyourin-housetestautomationandcanmakeyourtestingworkmoreefficient.

SummaryInthesixthchapteryouhavelearnedaboutcrowdandcloudtestingservices.Bothcanbeadditionstoyourin-housemobiletestingactivitiesbutshouldneverbeusedastheonlymobiletestingsolutionforyourapp.

Page 171: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

InthecrowdtestingsectionIexplainedthetypicalprocessofacrowdtestingcycle.Youneedtokeepinmindthatthisprocesswilltakequitesometimeforpreparationaswellasinthebuganalysisphase.Theseeffortsshouldnotbeunderestimated.Furthermore,Idescribedthedifferencesbetweenaprivateandapubliccrowdtestsession.Bothapproachesdifferalotinthedetails;however,thosedetailsareimportantinordertoavoidinfrastructure,dataprotection,andsecurityconcerns.Inthecloudtestingsection,Iexplainedthefeaturesofacloudtesting

provider.Inaddition,Idescribedwhichtesttypescanbeperformedwithinacloud.IntheprosandconssectionIoutlinedpossibleproblemswithpublicandprivatecloudsaswellastheadvantages.

Page 172: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter7.MobileTestandLaunchStrategies

Sofaryou’velearnedalotaboutmobiletestingandthedifferenttesttechniquesandapproaches.Thischaptercoversmobiletestandlaunchstrategiesandwhatyouneedtoincludeinyourstrategies.Boththetestandlaunchstrategiesareveryimportanttoeveryproject,andyoushouldn’tunderestimatejusthowusefulitistokeepawrittenrecordofthem.InthefollowingsectionsI’llprovideyouwithsomeexamplesofmobiletestandlaunchstrategies.You’llalsofindsomequestionsthatwillhelpyoutowriteyourownstrategies.

MobileTestStrategyIngeneral,ateststrategyisadocumentthatdescribesthetestingapproachandworkinvolvedinthesoftwaredevelopmentcycle.Thisstrategycanbeusedtolettheprojectmanager,productmanager,developers,designers,andanyoneelseinvolvedinthesoftwaredevelopmentcycleknowaboutthekeyissuesofthesoftwaretestingprocess.Ateststrategyincludesthetestingobjective,testlevelsandtechniques,

resourcesrequiredtotestthesystemundertest,andthetestingenvironment.Italsodescribestheproductrisksandhowtomitigatethemforstakeholdersandcustomers.Finally,italsoincludesadefinitionoftestentryandexitcriteria.Thedefinedteststrategywillhelp,remind,andguideyousoyoudon’tforget

theimportantcomponentsandfeaturesoftheapp.Youreallyshouldtakethetimetowritedownthestepsandresourcesneededtotestthemobileapp.Furthermore,theteststrategydocumentsyourworkandendeavorswithintheproject.Writingateststrategyoncedoesn’tmeanthatit’sthensetinstoneandyoucan’tmakeanysubsequentchanges.Onthecontrary,it’simportantthatyoutalkaboutthestrategywithyourteamfromtimetotimesoyoucanadaptittoanyproductchangesorothermorerecentcircumstances.However,thereisnosinglemobileteststrategythatcanbeusedbyevery

teamorforeverymobileappasalmosteveryapphasdifferentrequirements,goals,andtargetgroupsandrunsondifferentmobileplatforms,whichmakesitimpossibletoreusetheentirestrategyineveryproject.Buttherewill,ofcourse,besomeitemsthatcanandshouldbereused.Thefollowingsectionsofthischaptershouldgiveyouanideaofhowtoshape

amobileteststrategy.Youcanusethemasastartingpointandguideforputtingtogetheryourownmobileteststrategy.

Page 173: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

ImportantDraftingamobileteststrategydoesn’tnecessarilyinvolvewritingendlessdocumentationasyouandanyothertesterssimplywon’thavethetimeand/ortheresourcestorunthroughitall,andflexibilityisthenameofthegameinthemobiletestingbusiness.Amobileteststrategyshouldservetoguideyouandanyoneelseinvolvedintheprojectsoyoucankeeptabsontheimportantpartsofthetestingprocess.

DefineRequirementsThefirstthingyouandyourteamshoulddoisdefineyourapp’srequirementsandfeaturesattheverybeginningoftheproject.Writethemalldownanddescribethefeaturesandpossibleusescenariostogetabetterfeelingfortheappanditspotentialusers.Roughdescriptionsoftherequirementsandfeaturesareabsolutelyfineatthispointastheywillbespecifiedinmoredetailduringthedevelopmentprocess.Awrittenrecordoftheserequirementswillmakeitmucheasierforyoutoderiveyourmobiletestingstrategy.Hereisalistofsomepossiblerequirementsandfeatures:•Providearegistrationform.•Providealoginformtoaccesstheapp’scontent.•Providealogoutoption.•Implementasearchfunctionwithintheapp.•Theusershouldbeabletocreateauserprofile.•Theusershouldbeabletosharecontentwithotherusers.•Theusershouldbeabletosharecontentonsocialnetworks.•Theusershouldbeabletotakepictures.•Theappshouldbeavailableindifferentlanguages(English,German,French,andsoon).

Furthermore,youshouldknowwho’sgoingtouseyourapp.AsdescribedinChapter3,“ChallengesinMobileTesting,”youreallyneedtoknowyourtargetgroupandtheirexpectations.Gatherasmuchinformationasyoucantogainimportantinsightsintoyourcustomers’usescenarios.Here’saquickrecapofpossibleinformationaboutyourtargetgroup(thefull

listcanbefoundinChapter3):•Gender

Page 174: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Monthlyincome•Educationalbackground•Location•Otherappstheyuse•Smartphonehabits•Devicestheyuse

ImportantIfyoudon’tknowanythingaboutyourtargetgroup,checkmobile-platform-specificnumbersofoperatingsystemsandhardwarespecifications.Furthermore,analyzeandgatherinformationaboutappsthataresimilartoyours.Thisisagoodstartingpointtohelpyougatherpotentialuserinformation.

Basedontherequirementsandfeaturesofyourappandknowledgeofyourtargetgroup,youcanaskspecificquestionstocollectinformationforyourtestingworkandscope:

•Isitimportanttofindcriticalbugsquickly?•Shouldtheappbetestedonlyincommonuserscenarios?•Onwhichmobileplatformsshouldtestingbeperformed?•Whatareourcustomers’carriernetworks?•Arethereanyareaswithintheappthatarelikelytochangeonaregularbasis?•Istherelease(submission)dateoftheappalreadyknown?•Istherearoadmapforfuturereleases?

Don’thesitatetoaskthesekindsofquestionsasthey’reimportant,andtheanswerswillhelpyoutodefineyournexttestingstepsandpriorities.Don’tworryifyouforgettoaskaquestionbeforeyoustartwritingtheteststrategy—it’sbettertoaskaquestionwheneveritcomesupthannotatall.Inthenextstepyoushouldcollectinformationaboutthedevelopment

environmentwithinthecompany.Itisimportanttoknowwhichtoolsareusedtosetupadevelopmentandtestpipeline.Whichcontinuousintegrationserverisbeingused?Whichtoolsareusedtobuildtheapp?Andwhichbackendtechnologiesareusedtoprocesstherequestsfromthemobileapp?Youalsoneedtoknowaboutthearchitectureoftheproductionenvironment.

Page 175: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Togoaboutcollectingallofthisinformation,youshouldascertaintheanswerstothefollowingquestions:

•Whatkindofsoftwaredevelopmenttoolsarealreadyavailableandinusewithinthecompany?•Isthereacommonbuildpipelinethatmustbeused?•Whichcontinuousintegrationserverisusedfortheproject?•Whichtoolsareusedtobuildthemobileapp?•Whichtechnologiesareusedtoprocessthemobilerequests?•Whatskills,suchasprogramminglanguages,areavailablewithinthemobileteam?•Howmanymobiledevicesareavailablewithinthecompanyfortesting?•Whattoolsandtechnologiesareusedintheproductionenvironment?•Howmanypeopledoweexpecttousethemobileapp?

Theanswerstothesequestionswillhelpyouchoose,forexample,thetestautomationtoolbasedonthetechnicalknowledgewithinyourteam.Theywillhelpyoutodefinethetestlevelsandtechniques,andfurthermoretheywillprovideafirstoverviewofalltechnologiesinvolvedinthemobileproject.Knowledgeofthedevelopment,test,andproductionenvironmentisveryimportantwhenitcomestocoordinatingtestingwithintheproject.

ImportantCollectingrequirementsandfeaturesisimportantasyouneedsuchusefulinformationforyourmobileteststrategy.Thiskindofinformationisagoodstartingpointforplanningyourtestingactivitiesandwillhelpyoutodefineatestingscope.

TestingScopeOnceyou’vedefinedtherequirements,youcanspecifythescopeforyourteststrategy.It’snotpossibletotestanapponeverypossiblehardwareandsoftwarecombination.Youshouldthereforereducethescopeofyourtestingeffortsandinitiallyconcentrateontheimportantpartsofthemobileapp.Therearefourwaystoreduceyourtestingscope:•Single-devicescope•Multidevicescope

Page 176: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Maximumdevicescope•Use-casescope

Single-DeviceScopeThesingle-devicescopefocusesononemobiledeviceduringtesting.Thisapproachcanorwillbeusedifonlyonedeviceistobesupportedbytheapporifthereisverylittletimeavailablefortheproject.Intheeventoftimepressure,you’llprobablychooseonlythemostpopulardeviceusedbyyourtargetedcustomers.ThisdevicewillbeusedfortestingwithjustonemobilecarriernetworkandpossiblyaWi-Ficonnection.Anotherapproachcouldbetochooseadevicefromthedevicegroupthathasolderhardwarespecificationsandcouldthereforecausemoreproblemsforthedevelopersintermsofsupport.You’relikelytofindmorebugsandproblems,suchasperformanceorotherissues,withthisdevicethanwiththelatestdevice.Usingonlythesingle-devicescopecanbedangerousforthemobileapp,for

thesuccessoftheproject,orevenforthewholecompany.Itisverylikelythatyou’llmissimportantbugsthatoccuronotherdevicesandthatyourcustomerswillsubmitbadratingstotheappstores.Iftheappsupportsonlyonedevice—forexample,ifitisaninternalenterpriseapp—thisapproachcanbeused.Ontheotherhand,it’sbettertotestononlyonedevicethantoskiptheentiretestingprocess.

MultideviceScopeAsthenamesuggests,themultidevicescopefocuseseitheronseveraldevicesfromonemobileplatformoronmultiplemobileplatforms.Selecttheplatformsandtestdevicesbasedonyourtargetgroup,andthengroupthedevicesasdescribedinChapter3inthesection“MobileDeviceGroups.”Ifyoudon’thaveanyinformationaboutyourtargetgroup,usetheInternettosearchforplatform-specificnumbersandstatistics,whichwillhelpyouselectthemobileplatformanddevicestoconcentrateon.AreallyniceWebpageprovidedbyGoogleis“OurMobilePlanet”1where

youcangetinformationbasedonthecountry,age,gender,userbehavior,andbehaviorduringthecurrentyear.

1.http://think.withgoogle.com/mobileplanet/en/

MaximumDeviceScopeThemaximumdevicescopefocusesonasmanymobileplatformsanddevicesaspossible.Thisapproachcanbeusedformass-marketappsintendedtoreachas

Page 177: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

manycustomersaspossibleallovertheworldwithnorestrictionsintermsofplatform,device,carriernetwork,ortargetgroup.Testinganappforthemassmarketisverydifficultbecausetherewillalmostalwaysbeahardwareandsoftwarecombinationthatdoesn’tworkwellwithyourapp,andit’snearlyimpossibletofindthiscombination.Inordertohandleandreducethisrisk,youneedtofindawaytotestonasmanydevicesaspossible.Thisapproachrequireslotsofresearchtogatherinformationandstatistics

aboutcurrentdeviceusage,mobileplatforms,andoperatingsystemversions.Itrequiresinformationaboutthedifferentcarriernetworksandconnectionspeedsfromaroundtheworld,andsoforth.Onceyou’vecollectedtherequiredinformation,considerusingacombination

ofin-housetesting,cloudtesting,andcrowdtestingtohandlethemass-marketsituation.Bearinmindthattestingjustwithin-houseresourcesanddeviceswillbeeithertoolimitedinscopeortooexpensive.

Use-CaseScopeBesideschoosingahardwaretestingscopetodownsizeyourtestingwork,youcanalsochooseause-casescopetolimittheworkload.Withthisapproachyoucanconcentrateoncertainpartsorfeaturesofthemobileappandleaveoutlessimportantones,suchashelptextsoredgecases.Nearlyeveryprojectisunderextremetimepressure,thusmakingitimportanttodefinewhichpartsoftheappmustbeincludedinthetestingscopeandwhichcanbeleftout.Writedownbothpartsinyourteststrategyanddescribetheusecasesthathavetobetestedandwhy.Ifthereisenoughtime,thelessimportantpartsshouldbetestedaswell.Youmaywantorneedtoincludethefollowingtestscopeinformationinyour

teststrategy:•Whichapproachshouldbeusedintheproject?•Isitpossibletocombineapproachesforcertainpartsoftheapp?•Whywasthisapproachselected?•Whataretherequiredandmainusecasesoftheapp?

DefineTestLevelsandTestTechniquesOnceyou’vedefinedtherequirementsandscope,youneedtothinkaboutthedifferenttestlevelsandtesttechniquesyouwanttouseinyourproject.KeepinmindthequalityassurancemeasuresoverviewfromChapter4,“HowtoTestMobileApps”(thesection“TraditionalTesting”),whendefiningthem.Thisoverviewwillhelpyoutoderivethetestlevelsandtechniquesforyourmobile

Page 178: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

app.

TestLevelsAsshowninChapter5,“MobileTestAutomationandTools,”thefocusoftestlevelsfromnon-mobilesoftwaredevelopmenttendstoshiftthroughoutthemobilesoftwaredevelopmentprocess.The“mobiletestpyramid”showsthattheunittestinglevelisthesmallestpartcomparedtoend-to-endtesting,betatesting,andmanualtesting.Inmostsoftwaredevelopmentprojects,thedevelopersareresponsiblefor

writingunittests.Thisisalsothecasewithmobileappprojects.Mobiletestersareresponsibleforwritingtheend-to-endtestautomationincludingintegrationtesting.However,everyoneontheteamshouldberesponsiblefortheapp’squality—theyshouldallsupportthemobiletesterinhisorherwork.Asmentionedinseveralchaptersinthisbook,manualtestingisavery

importantpartofamobiledevelopmentprojectandformsanessentialpartofthetestlevelsinamobileproject.However,thereareotherlevelsthatareimportantformanualtesting:acceptance,alpha,andbetatesting.Useraccep-tancetestscanbeperformedtotestthemobileappagainsttheuserrequirementstoverifythattheappcoversthemall.Thisstepisusuallycarriedoutbyatester,productmanager,orthecustomer.Inmobiledevelopmentprojects,alphaandbetatestingareimportanttest

levelsthatshouldformpartofyourteststrategy.Wheneverafeatureisimplementedwithinyourapp,youshouldtestitwithpotentialcustomerstogatherearlyfeedbackaboutit.Iftestingwithpotentialcustomersisnotpossiblewithinalphatests,youcouldtrytestingthefeaturewithyourworkcolleaguestogetfeedbackfromoutsideofthedevelopmentteam.Oncethemobileapphasreachedadefinedmaturity—forexample,allofthe

featureshavebeenimplementedoronlytwobugswerefoundinthelastweek—youshouldconsiderusingbetadistributiontoolsoracrowd-basedtestingapproachtoperformbetatestswithpotentialcustomers.Thecriteriathatdeterminethatatestingphaseisfinishedandthatthenextoneisreadyforexecutionalsoneedtobedocumentedintheteststrategy.Typicalsoftwaretestlevelsthatshouldbeusedinamobiledevelopmentproj-

ectarelistedhere:•Automatedtesting•Unittesting•End-to-endtesting(includingintegrationtesting)

Page 179: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Manualtesting•Acceptancetesting•Alphatesting•Betatesting

•RegressiontestingOnceyou’vedefinedthetestlevels,youshouldalsoconsiderdefininghow

intensivelyeachlevelshouldbetestedfromafunctionalandnonfunctionalpointofview.Pleasekeepinmindthatnotalltesttypeswillbeincludedateverytestlevel.Furthermore,itcanbehelpfultodefinesomemetricsthatmeasurethecurrent

stateoftheapplication.Possiblemetricsmayincludethefollowing:•Eachfeaturemusthaveatleastoneunittest.•Eachfeaturemusthaveatleastoneend-to-endtest.•Thereshouldbenowarningsorerrorsinthestaticanalysischeck.

Functionaltestingshouldincludethefollowing:•Identifythefunctionalityofthemobileapp.•Testthedifferentpartsagainstthefunctionalrequirements.•Defineandexecutethetestcases.•Createinputdatabasedonthespecifications.•Comparetheactualandtheexpectedoutputs.

Nonfunctionaltestingshouldincludethefollowingpoints:•Loadtesting•Performancetesting•Usabilitytesting•Securitytesting•Portabilitytesting•Accessibilitytesting•Internationalization/localizationtesting

Thefollowingtest-levelinformationcouldbeusedinyourteststrategy:•Whichtestlevelswillbeusedintheprojectandwhy?•Whichpartsaretobeusedforfunctionalandnonfunctionaltesting?•Defineanddescribetheautomatedtestlevels.Whichpartsneedtobeunit

Page 180: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

testedandwhichpartswillbetestedusinganend-to-endtestautomationtool?•Defineanddescribewhenthesoftwarehasreachedacertainmaturityandcanbeusedforalphaandbetatesting.•Defineanddescribemetricsrelevanttotheproject.

TestTechniquesYoucandrawuponqualityassurancemeasures(Chapter4)todefineyourtesttechniquesandmethods.Considerusingstaticanddynamicapproachestotestyourmobileappfromdifferentpointsofview.AsdescribedinChapter4,Irecommendusingstaticcodeanalysistoolsin

yourstatictestingapproachtotestyourmobileapp’scodeforanybugsorproblems.Keepinmindthattheappcodeisnotexecutedduringstatictesting.Furthermore,alloftheprojectdocumentationshouldbereviewedforcompleteness.Withthedynamictestingapproachyoushouldusewhiteandblackboxtesting

techniquestotestyourapp.Whiteboxtestingshouldbedonebythedevelopersandcoversthefollowing:

•Statementcoverage•Pathcoverage•Branchcoverage•Decisioncoverage•Controlflowtesting•Dataflowtesting

Blackboxtestingshouldbedonebythesoftwaretestersincluding:•Equivalenceclasses•Boundaryvalueanalysis•Decisiontables•Statetransitions•Cause-effectgraph

However,thedevelopersshouldalsotestforboundaryvaluesandstatetransitionsattheunittestinglevelinordertobesurethateachunitcorrectlyhandlesthosesituations.Yourteststrategyshouldalsoincludeawrittenrecordofwhichtesttechnique

Page 181: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

istobehandledbywhom.Besidestheaforementionedtechniques,youshouldconsiderusingexploratory

andrisk-basedtestingtoorganizeanddownsizethetestingworkwithinyourmobileteam.

ImportantDefinetestlevelsforyourmobileappbasedonitsfeaturesandrequirements.Qualityassurancemeasureswillhelpyoudefineyourtestmethodsandtechniques.

Thefollowinginformationabouttesttechniquescouldformpartofyourteststrategy:

•Whichtesttechniquewillbeusedwithyourprojectandwhy?•Defineanddescribetheorderofthetesttechniques;forexample,staticcodeanalysisanddocumentreviewaretobefollowedbywhiteboxtesting,blackboxtesting,andthenexploratorytestsessionsinvolvingthewholeteam.•Whichteammembersaretoapplythedifferenttesttechniques?•Defineanddescribethemanualtestingprocess,suchasacceptancetesting,exploratorytesting,alphaandbetatesting.•Defineanddescribethetestexitcriteriaforwhiteandblackboxtesting,forexample,80%branchcoveragewithwhiteboxtesting.

TestDataNearlyeveryappprocesses,creates,andsendsdatafromthemobileappviadatanetworkstodifferentbackendsystems.Theprocessedandtransferreddatadiffersfrommobileapptomobileappandhasdifferingrequirementsandcomplexities.Onecomponentofyourmobileteststrategyshouldbetherequiredtestdata.Itisimportanttodefinethetestdataasrealisticallyaspossiblebasedonthefeaturesandrequirementsofyourapp.Thefollowingthreepointsareanexampleofdifferenttestdatatypes:•Configurationdata:Thisdataincludesconfigurationsforthemobileapporforthebackendsystem.Itcould,forexample,includedecisionrulesforrulesenginesand/orsettingsfordatabasesandfirewalls.•Stabledata:Thisusuallyinvolvesdatawithalowrateofchangeandalongduration.Atypicalexampleofthisiscustomerinformationsuchas

Page 182: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

usernameandpassword,orproductinformation.•Temporarydata:Thiskindofdataislikelytochangefrequently,meaningthatitcanbeusedonlyonceorwillbecreatedwhiletheappisrunning,forexample,paymentdetailsorvouchers.

Oncethetestdatarequirementsareclear,findawaytosavethetestdatasoyoucanre-createandresetthedatainadefinedstatewheneveryouneedit.Onepossiblesolutionforthisisadatabasewherethestoredinformationcanbeusedduringthedevelopmentandtestingprocess.Anotheradvantageofthisisthatyoucanalsousethedatabaseformanualandautomatedtesting.Ontheotherhand,youcanusetestdatamanagementtoolstoorganizedatawithinyourproject.Onceyou’vesetuptheresetandre-creationprocess,youshouldstartcreating

thedataassoonaspossibleasthiswillhelpyouandyourcolleaguesduringtheappdevelopmentprocess.Dependingontheapp,youmayneedlotsoftestdata.Ifthisisthecase,it

mightbeagoodideatouseageneratortocreatethedataautomatically.Ifadatageneratorisused,itisimportantthatthefunctionalityandnecessaryparametersbedocumented.Iftestdataisavailablewithinyourproject,don’tforgettoadaptittonew

featuresandchanges.Itisverylikelythatovertimefeatureswillbeimprovedandthetestdatarequirementswillchange.Yourteststrategyshouldthereforealsooutlineaprocessforupdatingthetestdata,includingresponsibilitiesandtriggersfortheupdateprocess.Itisalsorecommendedthatyoudefineastrategyforhowoutdatedtestdatashouldbearchivedinordertoreproduceincomingbugsinoldfeaturesorversionsofyourapp.Thefollowingtestdatainformationcouldformpartofyourteststrategy:•Howisthetestdatagenerated?•Whereisthetestdatastored?•Howisthedocumentationhandled,forexample,testdatatogetherwithtestresults?•Howoftenwillthetestdatabeupdated?•Whoisresponsibleforthetestdata?

SelectTargetDevicesandTestEnvironmentNowthatyou’vedescribedthefeatures,requirements,testlevel,andtechniqueaswellasthetestdata,youneedtothinkaboutthetestenvironmentandtest

Page 183: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

targetdevicesforyourstrategy.AsyoulearnedinChapter3,groupingyourtestdevicesormobileWebbrowsersisagoodapproachtodeterminewhichdevicesshouldbeusedforthemobileapp.Creatingsuchmobiledevicegroupsrequiresinformationaboutyourtargetcustomergroupandtheirusagescenarios.Don’tforgetthetestingscopesdescribedinthischapterwhendoingso.Oncethedevicegroupsareinplace,you’llneedtoselectdevicesfromthose

groupstohavethemavailablewithinyourteam.Itisrecommendedthatyouhaveatleastonedevicefromeachgroupavailablefortesting.However,Irecommendatleastfivedevicesfromeachgroupinordertohaveabroadermixofhardwareandsoftwarecombinationswithdifferentformfactorsanddisplays.Youshouldalsokeeparecordofwhyyouchosethosetestdevices.Nowthatyouknowwhichdevicesareneededfortesting,youneedtobuyor

rentthem.Buyingallofthedevicesyouneedcanbeexpensiveandperhapsisnotanoptionduetotheproject’sbudget.Agoodapproachtosavesomemoneyisonlineauctionswhereyoucanbuyuseddevices.Inmostcasesthedevicesareingoodenoughshapeforyourtestingwork.Ifbuyingisnotanoptionatall,youcanrentthedevices.Asmentionedin

Chapter3,thereareseveralmobiledevicelabprovidersonthemarketthatwilllendyouthedevicesyouneedforasetperiod.However,checktherentalpricesandcomparethemwiththedeviceprice.Ifyouwanttorentthedevicesforaprolongedperiod,rentingwillprobablybemoreexpensivethanbuyingthedeviceinthefirstplace.AnotheralternativeisOpenDeviceLabs2wherethedevicescanbeborrowed

forfree.ChecktheOpenDeviceLabsmaptofindoneinyourarea.Ifyouwantafreedevice,youcanalsoaskaroundatyourcompanyorevenseeifsomeoneinyourfamilyhasthedeviceyouneedthatyoucanborrowforawhile.

2.http://opendevicelab.com/

Onceyou’vespecifiedyourdevicestrategy,youneedtothinkaboutthetestenvironment:thebackendsystems.Youneedtoknowthearchitectureofthebackendsystemssuchasdatabases,paymentsystems,APIs,andanyotherkindofsysteminvolvedinthemobileproject.Ifyouhavesystemsinformation,youneedtobesurethatit’salsoavailablewithinthetestenvironmentsoyoucantestasthoughyou’reintheproductionenvironment.Ifyourteststrategycontainsin-the-wildoron-the-movetests,there’sanadditionalrequirement:thetestenvironmentmustbeaccessiblefromoutsidethecompanynetwork.Thefollowinginformationaboutthetargetdevicesandthetestenvironment

couldformpartofyourteststrategy:

Page 184: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Whichdeviceswillbeusedfortesting?•Whyarethosedevicesusedfortesting?•Arethedevicesavailablewithinthecompanyordoyouneedtoacquirethem?•Whatareyourreasonsforchoosingthosetestdevices?•Whataretherequirementsforthetestdevicesandthetestenvironment?•Isthereanupdatepolicyforthemobiledevices?•Whenwillnewdevicesbeintegratedintothedevelopmentandtestingprocess?•Whataretheusagescenariosofthesystem?•Whatdoesthebackendsystemconsistof?•Isthetestenvironmentsimilartotheliveenvironment?•Canthetestenvironmentbeusedfortestingpurposesfromoutsidethecompanynetwork?

Manualandin-the-WildTestingAsyouhavelearnedsofar,mobiletestingrequireslotsofmanualtestingandtestinginreal-lifeenvironments.ThinkoftheexamplewiththeskiandsnowboardappfromChapter1,“What’sSpecialaboutMobileTesting?,”wheretestingonamountainisrequiredtoseeifthemobileappactuallyworksunderrealconditions.Manualtestinginthewildisessentialforyourmobileappandrequireslotsof

planningbeforehandtoavoiduselesstestscenarioswhiletestingonthemove.Youshouldthereforetrytoidentifycommonreal-worldusagescenariosforyourmobileappanditsfeatures.Writethescenariosdowninyourteststrategyandrankthembasedonpriorityandimportancetoyourproject.Furthermore,itisrecommendedthatyoudefinetestroutes,suchasbybus,

train,car,plane,orwhilewalking.Withintheseroutes,describepossiblescenariosthatshouldbetested.Theseroutesallowyoutosimulaterealmobileuserswhiletheycommutetoworkorwhilethey’retravelingaround.Lastbutnotleast,youshoulddefinedatanetworkscenariosbasedonyour

targetgroup.Aftergatheringinformationaboutyourtargetgroup,youwillknowinwhichregionstheyliveandwhatkindofdatanetworksandspeedsareavailable,forexample,4G,3G,orEDGE.Basedonthatinformation,youcanlimitapptestingtothosenetworkspeeds,butdon’tforgettotestondifferent

Page 185: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

networkproviders.Hereareafewexampleusagescenarios:•Testyourappbasedonitsfeatures,suchasoutsideinsunnyplacesorinsideanoffice.•Testtoseeiftheappcanbeusedindifferentweatherconditions.•Usemultipleappssuchase-mail,chat,andnewswhileyourappisrunninginthebackground.Checktoseeiftheappisinfluencedbyotherapps.

Herearesomeexamplesofroutescenarios:•Usetheappwhilecommutingtoworkbytrain,bus,orcar.•Usetheappwhilerunningandcheckthebehaviorofthesensors.•UsetheappwhilewalkingthroughacityorthecountrysideandcheckthesensorsandtheGPSorcompass.

Herearesomeexamplesofdatanetworkscenarios:•Testhowtheappworksinfastdatanetworkslike4Gor3G.•Testhowtheapphandlesthedatanetworkchangefrom4Gto3Goreven2G.•Testhowtheapphandlespacketlossoracompletelossofnetwork.

In-the-wildtestingrequireslotsofmovementandisachallengingtaskthatneedstobehandledduringtheapp’sdevelopmentprocess.Ifyoudon’thavethetimeoroptiontotestyourappinreal-worldscenarios,thinkaboutusingcrowdtestingintandemwithyourin-housetestingwork.However,remembertheprosandconsofcrowdtestingfromChapter6,“AdditionalMobileTestingMethods,”astheycanhaveanimpactonyourprojectplanning,coordination,timing,andbudget.Don’twritecomplextestcasesandscenarioswithexactstepsforin-the-wild

testing.Whileyou’reonthemove,you’reunlikelytohavealaptopwithyoutocheckthetestcases.Thisisinefficientbecauseitwilldestroythereal-lifetestingscenarios,behavior,andusersimulation.You’llprobablyhaveabagwithyoucontaininglotsofdevicesforyourin-the-wildtesting.Whenplanningsuchscenarios,keepthemshortandinformativesothattheycanbeusedwhileonthemove.Irecommendthatyouprintoutthescenariosorwritethemdownonapieceofpapersoyoucanjustreadthemandkeeptheminmind.Thefollowinginformationaboutin-the-wildtestingcouldformpartofyour

teststrategy:

Page 186: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Defineanddescribetheusagescenariosofyourcustomers.•Defineanddescribethetestscenariosinthewild.•Defineanddescribethedifferentdatanetworksthatneedtobeusedfortesting.

MobileChecklistsandToursYoucanaddmobilechecklistsandmobiletourstoyourmobileteststrategy.AsdescribedinChapter4,mobilechecklistscanbeveryimportantforyourmobileappastheyhelpyoukeeparecordofthingsthatcan’tbeautomatedorarelikelytochangeonafrequentbasis.Ifyouknowtherequirementsandfeaturesofyourapp,you’llprobablyalsoknowthepartsoftheappthatneedtobetestedrepeatedly.Inthatcaseit’sgoodtoaddthosefeaturestoachecklistaspartofyourteststrategy.Basedonthefeaturesofyourapp,it’susefultodefinemobiletestingtoursto

concentrateyourtestingeffortsonspecialpartsofyourapp.CemKaner3describesatouras“...anexplorationofaproductthatisorganizedaroundatheme.”

3.http://kaner.com/?p=96

Usingtoursinyourmobiletestingworkhelpsyoutoexploreandunderstandhowthemobileappworks.Italsohelpsyoucomeupwithnewtestideaswhileyou’retestingtheapp.PleasereferbacktoChapter4foradescriptionofsometoursbackedupwithmnemonics.Herearesomeexamplesoftestingtours:•Featuretour:Exploreandtestallofthepossiblefeatureswithintheapp.•Configurationtour:Exploreandtesteverypartoftheappthatcanbeconfigured.•Gesturetour:Useeverypossiblegestureoneveryscreentoseehowtheapphandlesthedifferentinputs.•Orientationtour:Changetheorientationofeveryscreenfromportraittolandscapeandviceversatoseeifanyproblemsarise.

Iusethefollowingmobilemnemonicsinmyprojects:•FCCCUTSVIDS(http://michaeldkelly.com/blog/2005/9/20/touring-heuristic.html)fromMichaelKelly•ISLICEDUPFUN(www.kohl.ca/articles/ISLICEDUPFUN.pdf)fromJonathanKohl

Page 187: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Thefollowinginformationaboutmobilechecklistsandtourscouldformpartofyourteststrategy:

•Whichchecklistswillbeusedintheprojectandwhy?•Describetheusedchecklistsandtours.•Describewhenthechecklistsandtoursshouldbeusedandbywhom.

TestAutomationTestautomationcanalsoformpartofamobileteststrategy.Dependingonthemobileappanditslifecycle,youmaynotneedtoautomateit.Ifthat’sthecase,it’simportantthatyoudocumentanddescribethereasonswhytestautomationisnotnecessary.However,ifyourapprequirestestautomation,youshouldstarttothinkabout

automationandthetoolsyouwanttouseassoonaspossible.ThinkbacktothedifferentmobiletestautomationconceptsinChapter5andtheirprosandcons.Choosethetoolthatbestfitsyourcurrentprojectsituationandwhereyouhavealreadygainedsomeexperiencewithoneofthetoolsorprogrammingskills,orwhereyouhaveamobiletestingsetuporenvironmentinplace.Thiswillsaveyoulotsoftimeandmoney.Describethemobiletestautomationtoolinyourteststrategyandwhyyou

choseitforthisproject.Basedonthedescribedfeaturesandrequirements,youcandefinethepartsoftheappthatshouldbeautomatedandwhichdonotneedtobe.Duringthenextstepyoushoulddescribethedevicesonwhichtheautomated

testhastorunandinwhatenvironmentthetestsshouldbeexecuted.Yourmobileappprojectshouldfindtherightbalancebetweenrealdevices

andvirtualdevicesifyou’renotabletotesteverythingonrealdevices.Amixtureofrealandvirtualdevicescanalsobemorecost-effective.Onceyou’vedefinedthedevicesandtestautomationenvironment,I

recommendthatyoualsodefinetestsuitestogroupthedifferentautomatedtestcasesbasedoncommonfeatures,areas,andrequirementswithinyourapp.Withthehelpofthetestsuitesyoucandecidewhichtestsshouldbeexecutedwhenandhowoften.Forexample,youcandefineasmoketestsuitecontainingseveralautomatedtestsfromeachpartoftheapptomakesureacommittothecentralcoderepositorydidn’tbreakanything.Thistestsuiteshouldbesmallandruneverytimethecodechangesinordertoreceivefastfeedbackandtoswiftlyinformthedevelopersofanyproblems.

Page 188: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Herearesomeexamplesoftestsuites:•Smoketestsuitecontainingafewtestscriptstocheckthebasicfunctionsoftheappandtoprovidefastfeedback•Mediumtestsuiteoratestsuitecontainingonlyspecificfunctionality•Fullregressiontestsuitecontainingalltestscriptstobeexecutedonceadayorduringthenight•Testsuitescontainingonlyuserscenariossuchastheregistrationorcheckoutprocess

Testsuitescanbeagreatwaytocreateabalancebetweenfastfeedbackandbroadtestcoverage.Whenthetestsuitesareinplace,definewhentheyshouldbeexecuted;for

example,thesmoketestsuitemustberunaftereverycommitbythedeveloper.Themediumtestsuitecouldbeexecutedeverytwohours.Thefullregressiontestsuiteshouldbeexecutedonceeverynight.Youshouldalsodefinewherethetestautomationshouldbeexecuted.One

suchsolutioncanbewheretheunittestsareexecutedonthedeveloper’slocalenvironmentbeforechangesarepushedtothecentralrepository.Theunittestsandend-to-endtestscanbeexecutedontheCIserver.Thefollowinginformationabouttestautomationcouldformpartofyourtest

strategy:•IsaCIserverusedforthebuildprocess?•WhichCIserverisusedandwhy?•Whichtestenvironmentisusedtoexecutethetestautomation?•Whichtestautomationtoolsareusedintheproject?•Arethetestsexecutedonrealdevicesandvirtualdevices?•WhichdevicesmustbeconnectedtotheCIserverandwhy?•Isacloudproviderusedforthetestautomation?•Defineanddescribethetestsuitesandgroups.•Defineanddescribethedifferentbuildtriggersandexecutiontimes.•Defineanddescribewherethedifferenttestautomationsuiteswillbeexecuted,forexample,everythingonalocaldevelopermachineoronlyontheCIserver.

ProductRisks

Page 189: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Everyprojectisexposedtodifferentkindsofrisk.Itisimportanttoworkoutbothprojectandfeatureriskssoyoucanthendefinepossiblesolutionsforthem.Considerboththelikelihoodofriskoccurrenceandriskimpact.Iftheproductrisksareclear,youcanstartimplementingariskanalysisapproachthatcanbeusedbythewholeteamwhendefining,implementing,andtestingnewfeatures.Thefollowinginformationabouttheproductriskscouldformpartofyourtest

strategy:•Whichpartsarecriticaltothebusiness?•Whatisthelikelihoodoftheproductrisksoccurring?•Howshouldthebusiness-criticalpartsbetested?•Whatisthepotentialimpactifacriticalproblemoccurs?•Howisthefeatureriskanalysisperformed?•Isthereadisasterplaninplace?

ImportantCreatingamobileteststrategyisnoteasyasitneedstocoverlotsofmobiletestinginformation.Yourstrategymayalsoneedtobemodifiedduringthedevelopmentprocessbecauseofchangedproductfeaturesorpriorities.

MobileLaunchStrategyAsimportantasthemobileteststrategyis,it’salsoreallyimportanttowritedownamobilelaunchstrategy.Launchinganappisnoteasy,andlotsofproblemscanoccurduringandafterithasbeenlaunched.Thispartofthechapterwilldescribetheimportantpre-andpost-launchactivitiesforamobileapp.

Pre-Launch—ChecktheReleaseMaterialAsmentionedinChapter4,youshouldthinkaboutputtingtogetherareleasechecklisttomakesurethatallthereleaseinformationisavailableandinplace.Youshouldalsoperformtheupdateandinstallationtestbeforesubmittingtheapptotheappstore.Thetestsyouperformbeforecommittingtheapptotheappstoreshouldn’tbe

limitedtotheappitself.Yourlaunchstrategyshouldoutlineifandhowthebackendservicesaretestedbeforeanewrelease.

Page 190: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Askyourselfthequestion“DoesthenewversionoftheapprequiresomenewbackendservicesorAPIcalls?”Ifso,arethoseservicesorAPIcallsalreadyliveinthebackendsystem?Ifnot,it’sverylikelythatyourappwillberejectedbytheappstorevendor.Ifbackendservicesareavailable,checkthenewandexistingfeaturesoftheappintheproductionenvironmentonefinaltime.Whentheappisreadyforlaunch,checkthereleasenotesandfeature

descriptioninthenewappstoreinformationmaterial.Readthroughthetextsandcomparethemwiththenewandexistingfeatures.Inthereleasenotesit’simportanttobespecificaboutthenewfeatures;describethemwellandexplainthemtotheusers.Itisalsoimportanttoprovidethereleasenotesandappdescriptionineverysupportedlanguage.Don’tforgettocheckthescreenshotsoftheapp.Theyshouldbeinthesame

languageasthenotes,bethesamesizeasthepreviousscreenshots,andhavethesamestatusbariconsshowingthetime,battery,andnetworkstate.Figure7.1andFigure7.2provideexamplesofwhatnottodo:thestatusbarcontainsdifferenticonsforthesameapp.

Figure7.1Appstorescreenshot

Figure7.2Appstorescreenshotofthesameappwithdifferentstatusbarinformationandsizes

Theappstorescreenshotsneedtohavethesamestatusbarandthesamelook-and-feelinordertoportrayaprofessionalimage.Ifthenewfeaturesaredescribedbymeansofavideo,watchthevideoagain

andlistentothefeaturedescriptionandinformationitprovides.Askifthereismoremarketingmaterialavailablethatneedstobechecked.Lastbutnotleast,thereisonereallyimportantpoint:don’treleaseyourappto

yourcustomersonaFridayeveningorjustbeforeyouleavetheoffice.Inmostoftheappstoresittakessometime(uptoseveralhours)beforeyourappislistedandavailablefordownload.Iftheofficeisempty,noonecanreacttoanycriticalbugsorreleaseproblemsthatmayoccurrightaftertherelease.Someappstoresdon’thaveanappsubmissionprocessandcanthereforereact

quicklytoproblemsbyreleasingahot-fixversionofyourapprightafterthelast

Page 191: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

release.Whenpossible,releaseyourappeitherinthemorningorontheweekendsothatyouhavesometimetoreacttocriticalissues.Thefollowinginformationaboutthereleasematerialcouldformpartofyour

launchstrategy:•Defineanduseareleasechecklist.•Performtheupdateandinstallationtestagain.•ChecktomakesureallofthebackendservicesandAPIsareavailableontheproductionenvironment.•Definewhichnewandoldfeaturesshouldbecheckedagainontheliveenvironment.•Defineanddescribehowtheappstorematerial,includingreleasenotes,screenshots,andvideos,shouldbechecked.•Defineanddescribewhentheappshouldbesubmittedtotheappstore.

Post-Release—WhatHappensafteranAppLaunch?Thepost-releasephasestartsonceyou’vereleasedyourmobileapp.Duringthisphaseyouandyourteamshouldpayattentiontoseveralpointstogetfeedbackfromyourcustomersandtohandleanyquestionsorproblemstheysendyou.Thefirstthingyoushoulddorightafterreleasingyourappistodownloadit

andinstallitfromtheappstoretomakesureit’sworkingasexpected.IftheversionisOK,youshouldarchiveitonafileservertobeabletoinstallitagainlater,forexample,toreproduceproblemsorbugsthatmaybereported.Thisstepcanalsobehandledbyyourbuildpipelinewithinthecontinuousintegrationsystem.However,thereareafewmoreissuesthatyou,yourteam,andyourcompany

needtohandle.Thefollowingsectionsdescribetheactivitiesthatcanbeperformedafterreleasingyourappinordertogetfurtherinformationaboutyourcustomersandanypotentialproblems.Itisimportanttodefineandwritedownsuchitemsinyourapplaunchstrategy.

CommunitySupportProvidingcommunityorcustomersupportforareleasedproductisessential,especiallyifyou’reofferingapaidapp.Wheneverusershaveaproblem,theyshouldbeabletocontactsomeoneatyourcompanyorthemobileteamtogetanswerstotheirquestionsorproblems.Ifnoonelooksaftertheusersorcommunities,theywillwritebadreviewsorsimplystopusingyourapp.

Page 192: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Youshouldthereforemakesureyoumaneverypossiblesocialmediachannelandcheckforcustomerfeedback,questions,orproblemsthatneedtobelookedinto.Itisimportanttorespondtosuchqueriestogivecustomersthefeelingthatsomeoneislisteningtothem.Itisalsopossibletoselectsomeusersandaskthemquestionsaboutthenewversionoftheapp.Thegatheredfeedbackcanthenbeusedtoimprovetheappinfuturereleases.

ImportantIfyourcompanyhasacustomersupportdepartment,Irecommendthatyouspendabitoftimewiththemtogetafeelingforcustomerneedsandproblems.

ReviewsThenextchannelyouhavetomonitorafterreleasingyourappistheappstorereviews.Readthemcarefullytogetsomefeedbackandbugreportsfromyourusers.However,Ihighlyrecommendthatyouhandlethosereviewswithcare.Therearelotsofpeopleouttherewholiketowritenegativefeedbackaboutappsthatisnottrue.Wheneverausercomplainsaboutyourapp,trytoreproducetheprobleminordertobeabletocreateabugreportaimedatfixingtheissueinasubsequentrelease.Ifyou’renotabletoreproducetheissue,trytoreplytothereviewertoaskspecificquestionsinordertogetmoreinformation.However,notallappstoresprovideareplyfunctionwithintheirreview

sectionsothatyoucantalktoyourcustomers.Iftheappstoredoesn’tprovidesuchafeature,youcanwriteyourownreview,statingthatyouarethedeveloper,tester,orproductmanageroftheappandwouldlikefurtherinformationorareofferingsomesortofsolutiontotheproblem.However,besureyou’reallowedtowritereviewswithintheappstoretoreplytopreviousreviews.Pleaserefertotheappstorereviewguidelinestomakesureyou’renotviolatinganyrules.Ifyou’reabletoreplytoreviews,usethisfunctionalitytointeractwithyourcustomersandtolearnfromthem.Ifyougetlotsofnegativefeedbackduetoamisunderstandingwithintheapp

oritsfeatures,youcanalsoprovidesomesortoftroubleshootingguideortutorialwithintheappdescription.However,ifyougetlotsofnegativefeedbackaboutyourappbecausethecustomersdidn’tunderstandthefeature,youneedtorethinkthewholeapporfeature,performadditionalusabilitytesting,andprovideanupdateassoonaspossible.

Page 193: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CrashReportsAnothervaluablesourceofinformationisthecrashreportsofyourapp.IfyouimplementedtoolslikeHockeyApp,4crashlytics,5orTestFlight,6youshouldcheckthemafterthereleasetoseeifthereareanyproblemswithyourapp.Noteveryproblemthatoccursduringruntimewillendupbeinganappcrash.Ifyourapphasgoodexceptionhandlinginplace,errorswillnotbeshowntotheuserbutwillbecapturedbythecrashreportingtools.Thiskindofinformationisveryimportanttohelpyouimprovetheappinfurtherreleases.

4.http://hockeyapp.net/features/5.http://try.crashlytics.com/6.www.testflightapp.com

ThetoolsprovideaWebinterfacewherethetopappcrashesareranked,grouped,andcategorized.Theyshowthetotalnumberofcrashesandthenumberofusersaffectedbytheseproblems.Nearlyeverycrashreportingtoolprovidesnicegraphsshowing,forexample,appdistributionandappcrashesovertime.Someofthecrashreportingtoolsprovideanoptiontosendfeedbackfromwithintheapptothecrashreportingbackend.Furthermore,someofthetoolsofferthird-partyintegrationforabugtrackingsystem.Ifyouhaven’timplementedacrashreportingtool,someappstore

manufacturersprovidebasiccrashreportingfunctionalitythatcanbeusedasastartingpoint.

ImportantImplementacrashreportingtoolasitwillhelpyouandyourteamtogetmoreinsightintotheproblemsandcrasheswithinyourapp.

TrackingandStatisticsTogatherinformationaboutyourcustomersandtheirusageofyourapp,youshouldimplementsomesortoftrackingmechanismtocollectimportantdata.Thiskindofinformationwillbeaggregatedbytrackingtoolstogeneratestatisticsaboutyourappandfeatureusage.Ifyourappusesatrackingmechanism,checkthestatisticsgeneratedpost-release.Dependingonthetrackingimplementation,youcangetinformationsuchas:•Mobileoperatingsystemversion•Mobiledevicemanufacturer•Devicemodel

Page 194: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Displaysize•Mobilebrowserversion•Numberofpageviews•Howoftenacertainfeaturewasused•Howoftentheregistrationprocesswasaborted

Withthehelpofthosestatisticsandnumbers,trytounderstandyourusers’behaviorsoyoucantweaktheappanditsfeatures.Thefollowinglistisasamplingofsomemobiletrackingtools:

•adjust(www.adjust.com/)•appsfire(http://appsfire.com/)•AppsFlyer(www.appsflyer.com/)•Clicktale(www.clicktale.com/)•iMobiTrax(www.imobitrax.com/)•MobileAppTracking(www.mobileapptracking.com/)

Asyoucansee,it’snoteasytocreatemobiletestandlaunchstrategiesasbothrequireandcontainlotsofinformationabouttestingtopicsandpre-andpost-launchactivities.Pleasekeepinmindthatsuchstrategiesarenotsetinstone.Youshouldreworkandadaptbothstrategieswheneverchangesoccurintermsoftheproduct,risks,oranyotherpriorities.Mobiletestandlaunchstrategydocumentsareanongoingprocess,andeveryteammembershouldberesponsibleforupdatingandextendingthem.

SummaryThemaintopicofChapter7wasthemobiletestandlaunchstrategies.Everymobileteamneedstestandlaunchstrategiesinordertorememberimportanttasksbeforeandafterthereleaseoftheapp.Whenestablishingamobileteststrategy,thefollowingtopicsshouldbe

coveredanddefined:•Requirementsdefinition•Testingscope•Testlevels•Testtechniques•Testdata•Targetdevicesandenvironment

Page 195: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•TestautomationWiththequestionsprovidedinthispartofthechapteryouarenowabletoset

upyourownmobileteststrategyforyourapporforyourcompany.Theotherpartofthischaptercoveredthemobilelaunchstrategy.The

importanceofthereleasematerial,includingfeaturedescriptions,screenshots,andanyothermarketingmaterial,wasdescribed.Withthehelpofthequestionsprovided,youshouldfinditveryeasytocheckwhethereverythingisavailablefortherelease.Afterthereleaseoftheappitisimportanttohavecommunitysupportin

place,whereuserscanaskquestionswhentheyhaveanykindofproblemwithyourapp.Furthermore,theimportanceofcrashreports,tracking,anduserstatisticswasestablished.

Page 196: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter8.ImportantSkillsforMobileTesters

Softwaretestersandmobiletestersinparticulararefacingmoreandmorerequirementsasmobileappsarebecomingincreasinglycomplexandthetimetomarketisgettingshorter.Mobiletestersneedtobeabletoefficientlytestcomplexmobileapplicationswithinaveryshortperiodoftimetodeliverexcellentproductstocustomers.Besidestestingknowledge,mobiletestersmusthaveseveralotherimportantskillstomanagethecomplexityofthesystemsandthehugenumberofdifferentscenarios.Thischapterisallaboutsoftwaretestingskillsandhowtoimproveyour

mobiletestingskillstobecomeabettermobiletester.

SkillSetofaMobileTesterBesidesknowledgeandskillsregardingsoftwaretestingmethods,approaches,mobileapps,anddevices,testersmusthaveasolidbasicsetofsoftskillsiftheywanttobesuccessfulinthemobiledevelopmentbusiness.Inthefollowingsectionsofthischapteryou’llreadaboutvariousskillseverysoftwaretestershouldhave.

CommunicationTheabilitytocommunicateisoneofthemostimportantskillsasoftwaretestermusthave.Softwaretestersmustbeabletodescribetheirtestingworktodifferentkindsofpeopleatdifferentlevelswithinthecompany.Theyneedtobeabletotalktodevelopers,designers,productmanagers,projectmanagers,othersoftwaretesters,andmanagementaswellastocustomers.Talkingtoothersoftwaretestersanddevelopersrequirestechnicalskillsanddetailedknowledgeofthedifferentpartsofthesoftware.Reportingbugsandshowingotherstheirmistakescanquicklyleadtonegativeemotions,whichiswhyit’simportanttoreportbugsinaclearandconcisewaywithoutbringingemotionsintotheconversation.Talkingtoproductmanagers,projectmanagers,designers,ormanagement

requirestheabilitytodescribeproblemsandbugstonontechniciansatahigherlevelinawaythatisclearandunderstandable.Inadditiontoverbalcommunication,softwaretestersneedstrongwritten

communicationskillsastheyhavetobeabletodescribeproblemsandbugsinsuchawaythateverypotentialstakeholdercanunderstandthem.

Page 197: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Listeningisalsoanessentialpartofcommunication,andsoftwaretestersmustbeabletolistencarefullywhenotherpeoplearetalkinganddescribingtheirthoughtsorproblems.Itisimportantthatyoudon’tinterruptotherpeoplewhenthey’retalking.Ifyouhaveanyquestions,makeanoteofthemandaskthemoncethepersonhasfinished.Tohelpyouimproveyourcommunicationskills,Irecommendthatyouread,

read,andread—notjustbooksbutblogs,newspapers,andanyotherkindofmaterialthatwillhelpyouimproveandexpandyourvocabulary,especiallyifyou’renotcommunicatinginyournativelanguage.IalsorecommendthatyouwatchmoviesorTVseriesinotherlanguagesto

bolsteryourvocabulary.Ifyouhavemoretimeavailableandwanttospendsomemoney,youcanattendlanguageandcommunicationclasses,whichareagreatwaytoimproveyourlanguageandcommunicationskills.Lastbutnotleast,Irecommendthatyougivetalksatusergroups,

conferences,orwithinyourcompany.Suchexperiencewillhaveamajorimpactonyourcommunicationskillsbecauseyougetfeedbackfromyouraudiencerightaway.Poorcommunicationgenerallyleadstodisagreementandmisunderstandings,

whichcanbeavoidedbyfollowingsomesimplerules:•Listencarefully.•Don’tinterruptotherpeoplewhilethey’respeaking.•Don’tspeaktooloudly.•Don’tspeaktooquickly.•Speakclearlyandprecisely.•Makeeyecontactwithyouraudience.•Don’tgetpersonalwhencommunicatingwithotherpeople.•Beabletocommunicateondifferentlevels,rangingfromtechnicaltonontechnicalaudiences.•Improveyourvocabularybyreadingbooks,blogs,andnewspapers.

ImportantSoftwaretestersneedtobediplomats,technicians,andpoliticiansallrolledintooneastheyhavetobeabletotalkandlistentodifferentstakeholderswithinthecompany.

Page 198: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CuriosityIt’shumannaturetobecurious,andsoftwaretestersneedtobecurioustoexplore,discover,andlearnnewthingsaboutthesoftwarethey’retestingandtheproductdomain.Acurioussoftwaretesterexploresthesoftwaretogetasmuchinformationaspossibleoutofthesystemtoidentifypotentialproblemsandraiseinterestingquestionsabouttheproduct.It’simportanttogobeyondtheusualsoftwaretestingapproachesandmethodstodiscovernewthings.Tobeabletodiscovernewthings,it’simportanttobeopentonew

technologiesandwillingtotrynewapproachesandmethods.Acurioussoftwaretesterdoesn’trelyonstatementsfromotherpeople;heorshequestionsthemtogainmoreinformation.Ifyou’dliketotrainyourcuriosity,Irecommendthatyoudownloadarandom

mobileapporsoftwareapplicationandstartexploringitsfeatures.Trynewapproachesandmethodswhileyou’reexploringthesoftware.Trytobreakthesystemandstartquestioningthefeatures.Makenoteofeverythingthatfeelswrongorevokessomesortofstrangereactionduringyourexplorationsoyoucanraisequestionsorpointoutanypossibleproblemswiththesoftware.

ImportantBecurious;exploreanddiscovereverypartofthesoftwaretoraiseproblemsorquestions.Don’trelyonstatementsfromotherpeople;questionthem.

CriticalThinkingAnotherreallyimportantskilleverysoftwaretestermusthaveiscriticalthinking.Withthehelpofcriticalthinkinggoodsoftwaretestersareabletoseethelargercontextofthesoftwareanditsfeatures.Theyarealsoabletobreakdownthesoftwareortherequirementsthroughanalysisandreflection.Thisisveryimportanttogainadeepunderstandingoftheproductandtofocusontherighttestingwork.ThefollowingquotefromMichaelBoltondescribescriticalthinkinginanice

way:“Criticalthinkingisthinkingaboutthinkingwiththeaimofnotgettingfooled.”1

1.www.developsense.com/presentations/2010-04-QuestioningBestPracticeMyths.pdf

It’simportanttoquestionyourownthinking,testingmethods,andapproachesaswellasyourowndecisionsandthesoftwarethatneedstobetested.Ask

Page 199: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

yourselfthefollowingquestions:•Whatistheproblemofthisfeature/software?•Isitreallyaproblem?•Whyhaveyoutestedthisfeaturethatway?•Haveyouthoughtaboutthis?•Areyousureaboutthis?

Averygoodthree-wordcriticalthinkingheuristicfromJamesBach2isHuh?Really?So?Eachwordsuggestsaninvestigationpatternthatindicatesassumptions,sloppyinferences,andmisunderstandings:

2.www.satisfice.com/

•Huh?•Doyouunderstandwhatothersaretalkingabout?•Isitconfusing?•Isitvague?

•Really?•Isitfactuallytrue?•Whatevidencedowehaveforit?

•So?•Whydoesthismatter?•Towhomdoesitmatter?•Howmuchdoesitmatter?

Usethiscriticalthinkingheuristicinyourprojectandstartquestioningyourownworkandthemobileapp.Forfurtherinformationaboutcriticalthinking,takealookattheslidesfromMichaelBolton’scourse,CriticalThinkingforTesters.3

3.www.developsense.com/presentations/2012-11-EuroSTAR-CriticalThinkingForTesters.pdf

TenacityReportingbugsorraisingissuescanbeexhaustinganddifficult.Noteveryissuefoundbyasoftwaretesterwillbefixed.Theissuemaynotbeimportantenoughforotherteammembers,orperhapsthereisnotenoughtimetofixit.Itispartofthesoftwaretester’sjobtobetenaciousandfighttogetbugsresolved.Ifthesoftwaretesterthinksabugmaybecriticalforthecustomersorthesystem,heorsheneedstoinitiateadiscussiontodescribeandexplainwhyitneedstobefixed

Page 200: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

inthenextrelease.Thekeywordshereare“BugAdvocacy.”TheAssociationforSoftwareTestingprovidesatrainingcourseonthisimportanttopic.4IfyouwanttogetafirstimpressionofBugAdvocacy,takealookattheslidesfromCemKaner.5

4.www.associationforsoftwaretesting.org/training/courses/bug-advocacy/5.www.kaner.com/pdfs/BugAdvocacy.pdf

Highstresslevelsarecommonbeforeareleaseandoftencausedevelopersorprojectmanagerstoneglecttheagreed-uponsoftwarequalitystandards.Insuchsituationssoftwaretestersmustbetenaciousandexplainorraisebugsoverandoveragainuntilthesoftwarequalitystandardshavebeenmet.Butbecarefulwiththisasyoumayendupbeingconsideredanuisance.Hereit’simportanttorelyonyourstrongcommunicationskills.Softwaretestershavetobetenaciouswhiletestingsoftwaresuchasmobile

apps.Dependingonthekindofappbeingtested,suchasagame,itisverylikelythatcertaingamelevelshavetobetestedoverandoveragaininordertobesurethateachlevelworksasexpected.Thiscanalsobeveryexhaustingbutrequirestenacityorsometestautomation.

ImportantBetenaciousduringtestingandduringpossiblediscussionsaboutbugsanderrorswithintheapplication.

ConstantLearnerThecurrentmobileworldandtechnologyarechangingrapidly.Tomaintainpacewiththisenvironment,softwaretestersand,inparticular,mobiletestersmustbeabletoadaptandlearnnewthingsreallyquickly.Softwaretestersneedtotakenoteofchangestakingplacearoundtheminordertoadaptandlearnnewapproaches,methods,andtechnologies.Tokeeppaceandlearnnewtechniquesandtools,softwaretesterscanread

blogsorbooksandattendconferencesandtrainingcourses.Ontheotherhand,it’simportantthatsoftwaretestersbeabletolearnduringtheirdailyjob,whiletestingsoftware,andwhileusingtoolssuchastestautomationtools.Wheneveranewtool,technique,ortechnologyentersthemarket,everysoftwaretestershouldbemotivatedtogatherinformationaboutthesenewitemsandtolearnaboutthem.

Important

Page 201: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Learningandimprovingpersonalskillsshouldbealifelonghabit.

CreativityAnotherimportantskillasoftwaretestershouldhaveiscreativity.Itisimportanttobeabletogeneratecreativeideastotestsoftwareinverydifferentwayssoastofindmorebugsandprovidetheteamwithusefulinformation.Thecreativityprocessstartswithdesigningthetestcasesandtestdata.Softwaretestersneedtothinkindifferentwaystofindeveryconceivableuseforapieceofsoftware.Whenthedefaulttestingapproachiscompleteandthere’ssomeprojecttime

leftfortestingactivities,Irecommendthatyoutestthesoftwareagainfromacompletelydifferentpointofview;forexample,walkthroughthebugsagaintogeneratenewtestingideas,ortalktocolleaguesorbetatesterstogetnewideasforyourtestingwork.Trytobecreativewithyourdatainputs,whenusingthenavigation,oranythingelsethatcomestomind.You’llbesurprisedabouttheresultsfromthatkindoftestingandwillnodoubtcomeacrosssomemorebugs.

ImportantMobiletestersinparticularhavetobecreativeinordertousemobiledevicesindifferentwaysbypayingattentiontoalltheinterfaces,sensors,andlocations.

CustomerFocusEverysoftwaretestershouldhaveastrongcustomerfocus.It’simportantthatsoftwaretesterstrytothinklikeacustomerinordertodeterminewhetherthesoftwarebeingtestedmeetscustomerneeds.Testersthereforeneedtohavelotsofpassionanddeterminationandbeabletoidentifystronglywithcustomers.Astrongcustomerfocusrequiresyoutobeaproductandfieldexpertwithin

yourteam.Youalsoneedtohaveanoverviewofreleasedfeaturesandfunctionalityandbeabletokeepaneyeoutforfuturereleases.Itisveryimportanttobeawareofcustomerbehaviorinordertoknowwhichfeaturesandfunctionalitytheyuse.Ifpossible,softwaretestersshouldtalktocustomerstodeterminetheirneedsandproblems.Thiscanbeachallengingjob,sosoftwaretestershavetobepatient.Whensoftwaretestershaveastrongcustomerfocus,theycancontributetheir

knowledgetoeveryphaseofthesoftwaredevelopmentprocess,whichinturnhelpstobuildbetterproducts.Tohelpimprovecustomerfocus,Irecommend

Page 202: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

spendingacoupleofweeksworkingwithyourcustomersupportdepartmenttogetabetterfeelingforcustomerneeds.

ProgrammingandTechnicalSkillsThefactthatsoftwareproductsandmobileappsarebecomingincreasinglycomplexleadstothechallengethatmobiletestersalsoneedtohavesolidprogrammingskillsastheyhelpsoftwaretesterstounderstandthesystemundertest,tocommunicatewithdevelopersatcodelevel,toreviewcodefromdevelopersorothersoftwaretesters,andtowritetestautomationcodewhichisnowbecomingessentialineveryproject.Mobiletesterswithnoprogrammingskillsneedtotrainthemselvesbyreading

abookaboutprogramminglanguagesorpatterns,byfollowingaprogrammingtutorialontheInternet,orbyattendingaprogrammingcourse.It’salsopossibletoaskadeveloperifheorshecantrainthemobiletesterwithinaprojectorcompany.Thankstoprogrammingskills,mobiletestersareabletowritetestautomation

codefromunittoend-to-endlevel.Theyareabletoattendcodereviewstoasktechnicalquestionsandarelikelyabletowriteshellscriptsinordertoautomateeitherabuildpipelineoranyothertaskthattheteamneedstoperform.Besidescodingskills,everymobiletestermustbeabletounderstandtechnical

systemarchitecturesinordertobeabletoaskcriticalquestionsaboutthearchitectureandtoknowhowtotesteverypartofit.

ImportantEverymobiletesterneedsprogrammingskillsinordertobeabletowritetestautomationcodeandtobeabletoattendcodereviewsandtechnicaldiscussions.

HowtoImproveYourMobileTestingSkillsAsmentionedinseveralpartsofthisbook,themobileworldischangingrapidly,soyou’llneedtohoneyourskillseverydaytokeeppacewiththemobiletestingworld.Youhavetoconstantlylearnnewthingstogeneratenewtestingideas,tocollaboratewithdevelopersduringtheirworkwithprogrammingskills,andyou’llalsoneedtounderstandcustomerneeds.Inordertoimproveyourmobiletestingskillsitisimportanttohaveatleast

onemobiledeviceavailable.Inmostcasesthisisyourprivateandpersonal

Page 203: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

device.Ifpossible,Irecommendthatyouhaveseveraldevicesavailableathomewithdifferentmobileplatformssoyoucanlearneverythingaboutthoseplatforms.Youdon’tneedtokeepbuyingthelatestdevices;youcansettleforusedphonesorevenolderversionstolearnabouteachplatform.Ifyou’renotinapositiontobuylotsofdevices,keepinmindtheOpenDeviceLabs,whereyou’reabletoborrowdifferentdevicesforfree.

LearnfromOtherAppsAveryeasywaytoimproveyourmobiletestingskillsistolearnfromotherapps.Irecommendinstallingandusingasmanyappsaspossiblefromdifferentcategorieswithindifferentappstorestoseehowtheyworkandbehave.Checkhowotherappshaveimplementedtheirnavigationandupdatemechanismandhowtheyusemobile-specificfeaturessuchasthecameraorothersensors.However,besidesusingthem,it’simportanttochecktheupdatetextsofthose

apps.Irecommendthatyouunchecktheautomaticupdatefunctionalityofallofyourappssoyoucaninstallnewversionsmanually.Beforepressingtheupdatebuttoninthedifferentmobileappstores,readtheupdatetextsandappdescriptionscarefully.Therearelotsofcompaniesordeveloperswhoarereallyprecisewhendescribingwhatthenewversionoftheappisallabout.Theydescribewhichbugsarefixedwiththenewversionandwhichnewfeatureshavebeenadded.Ifthereisabugdescriptioninanapp’supdatetext,trytoreproducethebugso

youcanseeitwithyourowneyes.Thiscanbealotoffun,butyoumayfindittakesawhiletoprovokethebug.Butthisisinitselfagreatwaytolearnlotsofnewthings.Youwillprobablygetnewtestingideas,comeacrossnewwaystouseanapp

andnewapproachestoprovokingabug,andlearnthingsthatyoumayneverhavethoughtaboutbefore.ThefollowingsectionswillprovidesomeexamplesinvolvingdifferentkindsofbugsanddescriptionsfrommobileappsIcheckfromtimetotime.

ImportantTheappscreenshotsinthe“CrashesonSpecificDevices”sectionareanonymized.AlloftheexamplesarebasedontheGooglePlaystore.However,thesamesortofbugandfeaturedescriptioncanbefoundineveryothermobileappstore.

Page 204: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CrashesonSpecificDevicesTheappinFigure8.1crashedwhenusingAndroidversion4.3andonsomex86devices.Ifyouwanttoreproducethiscrash,you’llneedtogetadevicewithAndroid4.3.Ifsuchadeviceisavailable,findthesectionorappviewthat’scrashing.ThismayprovetoberatherdifficultastherearelotsofdeviceswithAndroid4.3availableandeverydevicecanbehavedifferently.Ifyoumanagetofindthecrash,trytounderstandwhyithappened.Maybeit’sduetoapoorInternetconnectionorjustabadimplementation.

Figure8.1AppcrashesonAndroid4.3andx86devices

Nevertheless,asshowninFigure8.2,someappshaveproblemsonlywithacertainversionontheAndroidplatform,sotestingonseveralmobileoperatingsystemsisveryimportant.

Page 205: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure8.2Appcrashesonsomedevices

KeyboardsAsImentionedinChapter3,“ChallengesinMobileTesting,”usersareabletoreplacesystemappssuchasthekeyboardappwithathird-partysolution.ThiscanleadtovariousproblemsasshowninFigure8.3,whichcontainsabugreport.Toreproducethisissue,youneedtoinstallthethird-partykeyboardandstarthuntingthebug.

Page 206: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure8.3Appproblemsduetoalternativekeyboards

WidgetsSomemobileplatformssupporttheuseofwidgets.Whenprovidingawidget,besurethatitwon’tfreeze,crash,orconsumetoomuchbatterypowerasshowninFigure8.4.

Page 207: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure8.4Widgetconsumestoomuchbatterypowerandfreezes.

PerformanceAsIhavementionedinseveralpartsofthisbook,theloadingtimeandperformanceofanappareessentialtoasuccessfulapp.TheappdescriptioninFigure8.5providessomeinformationaboutpossibleperformanceissuesonthestatisticspage.Toreproducetheperformanceissueofthisappyouneedtogettwoverysimilardevices.Onthefirstdeviceyoushouldkeeptheoldversionoftheappwhileinstallingtheupdateontheotherdevice.Thenyoucancomparetheperformanceofthedescribedsectionaswellastheloadingtimestoseeifthereisanimprovement(seeFigure8.6).

Page 208: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure8.5Performanceissuesinsomesectionsoftheapp

Figure8.6Loadingperformanceoftheapp

Page 209: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

LoginandPaymentIfyourappprovidesaloginfeatureormobilepaymentprocess,itiscriticalthatthosefeatureswork.Ifyouruserscan’tloginorbuyanything,youwilllosemoneyandharmyourreputation.Featurescriticaltoyourappmustworktothemaximumpossibleextent,soyouneedtobesurethatthey’rewelltestedandcoveredbytestautomation.TakealookatthescreenshotinFigure8.7,whereyoucanseethatthemobileappproviderhadanissuewithitssubscriptionmodel.

Figure8.7Checkoutproblemswithpremiumsubscription

PermissionsAsImentionedinChapter4,“HowtoTestMobileApps,”it’sveryimportantthatyouuseonlythemobileapppermissionsyoureallyneedforyourfeaturestowork.Ifyouusepermissionsthatusersdon’tunderstandorthataren’trequired(seeFigure8.8),youwillprobablygetlotsofbadreviewsinthestores,anditmayevennegativelyimpactyourapp’ssecurity.Besuretocheckthepermissionsagainbeforereleasingyourapp.

Page 210: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure8.8Usingpermissionsthataren’trequired

MobileDeviceHardwareUsageIfyourappusesmobile-device-specifichardwarefeaturessuchasthecamera,besurethatthefeatureworksonasmanydevicesaspossible.AsyoucanseeinFigure8.9,theappproviderhadanissuewiththecamerapreviewonsomedevices.Testingforhardwaresupportondifferentdevicesisagoodtaskforcrowdtesters.

Page 211: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Figure8.9Camerapreviewnotworkingproperly

Sincecomingupwiththeideaofcheckingappupdatetexts,IhavecontinueddoingthiseverytimebeforeIupdatetoanewerversionofanapp.Thisissometimestime-consumingandfrustratingwhenI’munabletoreproducethedescribedbug,butithelpedmealotinimprovingmymobiletestingskills.JustbyreadingthroughtheappdescriptionsIlearnedsomanynewwaysofgeneratingmobiletestingideasaswellaslotsofnewwaystoprovokebugsduringmydailytestingwork.

ObserveAnotherwaytoimproveyourmobileskillsisbyobservingotherpeople.Watchotherpeoplewhilethey’reusingtheirmobiledevices.Trytoobserveotherpeoplewhenamongthepublic,forexample,onatrain,inthesupermarket,oranywherethey’reusinganapp.Itisveryinterestingtoseehowotherpeopleuseappsintotallydifferentways,andyoucanlearnallsortsofthingsfromyourobservationsthatyoucanreusewhiletestingyourappandplanningnewfeatureswithyourteam.Itwillalsohelpyoutogeneratenewtestingideasandbearotherusagebehaviorsinmind.

ImportantDon’tbetooobviousanddon’tstartstalkingpeoplewhileobservingthem.

DuringmyobservationsIhavenoticedthatmanypeopledon’tknowthata

Page 212: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

navigationdrawercanbeopenedbyswipingfromtheleftofthescreentotheright.Theytouchthenavigationiconinthetopleft-handcornertoopenit.Irealizedthatnoteveryoneisfamiliarwitheveryfeaturethatamobiledeviceorapphastooffer.Youshouldthereforetakethetimetoobserveotherpeopleinthewildorintestlabstoseehowtheyusetheirappsandthenapplythisknowledgeinyourmobiledevelopmentprocess.AsastartingpointIrecommendthatyouobserveeitheryourcolleaguesor

yourfamily.Thiswayyou’lllearnalot,andtheyprobablywon’tmindyouobservingthem.

TakePartinCompetitionsandTestCyclesIfyou’reinterestedincompetingwithothersoftwaretestersfromaroundtheworldandlearningfromtheirtestingexperience,Irecommendthatyoutakepartinatestingcompetition.Therearelotsofcompetitionsthroughouttheyearwheresoftwaretesterscanregistereitherasateamoralonetotestapieceofsoftwareindifferentcategories.Thegreatthingaboutcompetitionsisthatyoucanshareyourknowledgeandlearnfromothersoftwaretesters.It’salsofuntocompetewithothersoftwaretesterstoseehowgoodyourtestingskillsarecomparedtotheirs.Igenerallyattendtestingcompetitionsinordertolearn.Idon’tcareaboutmy

finalcompetitionranking;Ijustwanttolearnandimprovemytestingskills.Ireallyliketoseeothertestersduringtheirworkandpickupnewtestingideas.Hereareacoupleoftestingcompetitions:•SoftwareTestingWorldCup(www.softwaretestingworldcup.com/)•Testathon(http://testathon.co/)

AnothernicewaytoimproveyourtestingskillsandcontributetothetestingcommunityisWeekendTesting.6WeekendTestingisaplatformwheresoftwaretesterscancollaborateandlearnfromthetestingcommunity.Asthenamesuggests,WeekendTestingtakesplaceontheweekendandisallabouttestingsoftwarefromdifferentperspectivesandsharingyourtestingworkwithothersoftwaretesters.HavealookattheWeekendTestingWebsitetocheckouttheupcomingtestingdates.

6.http://weekendtesting.com/

AsmentionedinChapter6,“AdditionalMobileTestingMethods,”crowdtestingisasoftwaretestingapproachwhereyouaddsoftwaretestersfromallovertheworldtoyourin-housetestingefforts.However,crowdtestingcanserveanotherpurposeaswell:Registeringasacrowdtesterandattendingtesting

Page 213: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

cyclesisagreatwaytolearnasyougettoseeothermobileapps,theproblemstheappproviderfaces,andthebugsthatcomeup.Furthermore,itisveryinterestingtoseeifyourbugreportsaregoodenoughtobeacceptedbythecrowdtestingproviderandmobileappprovider.

ImportantTakepartintestingcompetitions,shareyourknowledgewithothersoftwaretesters,andregisterwithcrowdtestingplatformstoseehowothermobileappswork.Remember:Whileitmaybeinterestingtoseeifyourbugreportsareacceptedbytheprovider,yourfocusshouldbeonimprovingyourmobiletestingskills.

TheMobileCommunityandtheMobileWorldAsmentionedintheprevioussection,learningfromothersoftwaretestersandmobiletestersisagreatwaytoimproveyourownmobiletestingskills.Ithereforerecommendthatyoubecomeanactivepartofthemobilecommunity,forexample,byregisteringonsoftwaretestingplatformslikeSoftwareTestingClub.7

7.www.softwaretestingclub.com/

Everysoftwaretestingplatformalsohasamobilesectionwhereyoucanexchangenewsandviewswithothermobiletesters.It’salsoveryusefultojoinmobiletestinggroupsonvarioussocialmediaplatforms.Therearealwayslotsofgreatmobiledevelopersandtesterswhowanttointeractonacertaintopicorwhohaveaproblem.Helpingsomeonewithaproblemisagreatwaytocontributetothemobilecommunity.Anddon’tbeshyaboutaskingquestionsevenifyouthinktheymightbesilly.There’snosuchthingasastupidquestion!Ifyoudon’thaveaTwitteraccountyet,Ihighlyrecommendthatyoucreate

one.EverysoftwaretestingandmobiletestingexpertusesTwittertowriteaboutnewtestingideas,blogposts,andotherimportantinformationthatisboundtohelpyouduringyourdailyworkinglife.Mostmobiletestingexpertsalsoblog,soyoushouldsubscribetotheirupdatestogetthelatestinformationfromthem.InthenextsectionIwilllistafewblogsandbooksthatmaybeofinteresttoyou.Testingeventsandconferencesareanotherwayofexchangingwiththe

mobilecommunity.Lotsofsoftwaretestingconferencesarehostedallovertheworldwheresoftwaretestingandmobiletestingexpertsmeetandsharetheirknowledgeintheformoftalksorworkshops.Ifyouhavetheopportunitytodo

Page 214: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

so,Ihighlyrecommendthatyouattendsomeconferencesandmeetothermobiletestersinpersontotalkaboutarangeoftopics.Youcanalsochecktoseeifthereareanytestingusergroupsinyourarea;thesearegenerallyfreetoattendandagreatopportunitytomeetothersoftwaretestersnearby.Ifyouworkinthemobiletestingbusiness,youcouldstartbloggingtokeepa

recordofyourexperienceandcontributetothemobilecommunity.Youcanhelpothermobiletesterswithyouracquiredknowledgeorblogaboutyourexperienceswhilebecomingamobiletester.Besideslearningfromothermobiletesters,it’sveryimportantthatyoustay

up-to-datewithregardtothelatesttechnologiesandfeaturesofthemobileoperatingsystemsanddevices.Youneedtoknowwhenthedifferentmobiledevicemanufacturersreleasenewdevicesandnewversionsoftheiroperatingsystems.Foracompleteoverviewofsuchfeatures,Irecommendthatyouwatchthekeynotevideospostedbythemajormanufacturers.Ialsorecommendthatyouuseasmanyappsaspossiblefromarangeof

differentcategoriessoyoualwayshaveanoverviewofpossiblenewfeaturesaswellasnewwaystoimplementanduseanapp.

ValuableSourcesThissectionofthechapterprovidesyouwithsomeinterestingsoftwaretestingcommunities,books,magazines,andblogsthatyoucanusetoimproveyourknowledge.

ImportantTheselistsarebynomeanscomplete.

ConferencesThefollowingconferencesareworthgoingto:

•AgileTestingDays(www.agiletestingdays.com/)•BelgiumTestingDays(http://btdconf.com/)•DutchTestingDay(www.testdag.nl/)•EuroSTAR(www.eurostarconferences.com/)•GoogleTestAutomationConference(https://developers.google.com/google-test-automation-conference/)•Iqnite(www.iqnite-conferences.com/index.aspx)

Page 215: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Let’sTest(http://lets-test.com/)•MobileAppEurope(http://mobileappeurope.com/)•Øredev(http://oredev.org/)•STAREAST(http://stareast.techwell.com/)•STARWEST(http://starwest.techwell.com/)•TestBash(www.ministryoftesting.com/training-events/testbash/)•TestExpo(http://testexpo.co.uk/)

CommunitiesThefollowingsoftwaretestingcommunitiesareworthlookinginto:

•AssociationforSoftwareTesting(www.associationforsoftwaretesting.org/)•MobileQAZone(www.mobileqazone.com/)•SoftwareTestingClub(www.softwaretestingclub.com)•TestingCircus(www.testingcircus.com/)•uTestcommunity(www.utest.com)

BooksThefollowingbooksareworthreading.Notallofthemareaboutmobiletesting,buttheyareanexcellentsourceofknowledgeforsoftwaretesters.

•AgileTesting(http://lisacrispin.com/agile-testing-book-is-now-out/)byLisaCrispinandJanetGregory•BeautifulTesting(www.amazon.com/gp/product/0596159811?tag=sw-testing-books-20)editedbyTimRileyandAdamGoucher•ExploreIt!(http://pragprog.com/book/ehxta/explore-it)byElisabethHendrickson•HowGoogleTestsSoftware(http://books.google.de/books?id=VrAx1ATf-RoC)byJamesA.Whittaker,JasonArbon,andJeffCarollo•LessonsLearnedinSoftwareTesting(www.amazon.com/gp/product/0471081124?tag=sw-testing-books-20)byCemKaner,JamesBach,andBretPettichord•SpecificationbyExample(http://specificationbyexample.com/)byGojkoAdzic•TapintoMobileApplicationTesting(https://leanpub.com/testmobileapps)byJonathanKohl

Page 216: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

MagazinesThefollowingmagazinesprovidegreatcontentfromexpertsinvariousindustries.Thesemagazinesfocusonspecificsoftwareandmobiletestingtopics.

•AgileRecord(www.agilerecord.com/)•ProfessionalTester(www.professionaltester.com/magazine/)•Tea-timewithTesters(www.teatimewithtesters.com/)•TestingCircus(www.testingcircus.com/)

BlogsThefollowinglistcontainsgreatblogsfromsoftwaretestingexperts:

•GojkoAdzic,http://gojko.net/•JamesBach,www.satisfice.com/blog/•MichaelBolton,www.developsense.com/blog/•LisaCrispin,http://lisacrispin.com/•MartinFowler,http://martinfowler.com/•MarkusGärtner,http://blog.shino.de/•ShmuelGershon,http://testing.gershon.info/•AndyGlover,http://cartoontester.blogspot.co.uk/•AdamGoucher,http://adam.goucher.ca/•ElisabethHendrickson,http://testobsessed.com/•JimHolmes,http://frazzleddad.blogspot.com/•LenaHouser,http://trancecyberiantester.blogspot.com/•EricJacobson,www.testthisblog.com/•StephenJanaway,http://stephenjanaway.co.uk/stephenjanaway/blog/•ViktorJohansson,http://therollingtester.com/•JonathanKohl,www.kohl.ca/blog/•RobLambert,http://thesocialtester.co.uk/•AlanPage,http://angryweasel.com/blog/•HuibSchoots,www.huibschoots.nl/wordpress/•RosieSherry,www.rosiesherry.com/

Thefollowingblogshavemultiplecontributors:•http://blog.inthewildtesting.com/

Page 217: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•http://blog.utest.com/(uTestemployees)•http://googletesting.blogspot.de/(Googleemployees)•www.ministryoftesting.com/testing-feeds/(agreattestingfeedcollection)•http://mobileapptesting.com/•http://webapptesting.com/

Andthenthere’smyblog:•www.adventuresinqa.com

SummaryChapter8wasallaboutskillsandtherequiredskillsetofamobiletester.Hiringmobiletestersisnoteasy,becausetheyareveryrare.Ifyouhavefoundsomeonewhocouldfityourcompanyandposition,besureheorshehasthefollowingsoftskillsinordertobesuccessfulintheroleofmobiletester:

•Communication•Curiosity•Criticalthinking•Tenacity•Constantlearner•Creativity•Customerfocus•Programmingandtechnicalskills

Ifyouareamobiletesterandwanttoimproveyourtestingskills,thischapterprovidedsomesuggestions.Withlotsofexamples,thesection“LearnfromOtherApps”showedyouhowtoimproveyourtestingskillsbytryingtoreproducebugsinexistingapps.Inaddition,itisimportanttobeactiveinthemobiletestingcommunity,tolearnfromothermobiletestersandtoshareyourknowledge.Attheendofthechapteranoverviewofimportantconferences,books,blogs,andmagazineswasprovided.

Page 218: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Chapter9.What’sNext?AndFinalThoughts

Welcometothefinalchapterofthisbook!Thischapterdealswiththequestion“What’snext?”What’sthenextbigthingmobiletestersaregoingtohavetodealwith?What

kindsofnewtechnologyarealreadyoutthere,areontheirway,orcouldarriveinthefuture?Arethereanynewtestingchallengesthatweneedtohandle?Arethereanynewtestingtoolsandtestenvironmentsonthehorizon?Toanswerthosequestions,thefollowingsectionsofthischapterdescribe

somenewtechnologiesthatarealreadyonthemarketorduetoarriveinthenearfuture.Tokeeppaceinthefast-growingworldoftechnology,it’simportantforyoutoknowwhat’sinthepipeline.Thefollowingsectionscanbeusedforfurtherinvestigationsandresearchif

needed.Nooneisabletopredictthefuture,butI’mconvincedthatthefollowingtechnologieswillbecomemoreandmoreimportantformobiletestersinthenextcoupleofyears.

InternetofThingsTheInternetofThings(IoT)referstotheinterconnectionofuniquelyidentifiableembeddedcomputingdeviceswithintheexistingInternetinfrastructuretoofferdifferentkindsofservices.ThingsintheIoTcanincludeawidevarietyofdevicessuchashumanmedicalimplants,biochipsforanimals,andcarswithbuilt-insensorsthatcommunicatewithoneanothertoexchangeinformationaboutthecurrenttrafficsituationorprovidedriverswithcertaininformationabouttheircars.TherearealsodevicessuchaswashingorcoffeemachinesthatcanconnecttotheInternetsoyoucanmonitorthemremotely.EverythingthatcanbeassignedanIPaddressandhastheabilitytoprovideandtransferdataoveranetworkisathingintheIoT.AccordingtoastudyconductedbyGartner,1therewillbeupto26billion

devicesontheInternetofThingsby2020.Andthatfiguredoesn’tincludecomputers,tablets,orsmartphones,whichwillreachthe7.3billionmarkby2020.Ifyoucomparethosenumbers,IoTdeviceswilldwarfalltheexistingsmartdevices.ThiswillofcoursegiverisetoawholenewindustrywithpeopletryingtoconnecteverythingtotheInternet.

1.www.gartner.com/newsroom/id/2636073

HerearesomepossibleusageareasandscenariosforIoT:

Page 219: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

•Environmentalmonitoring:Sensorscanbeusedtomonitorwaterquality,soilconditions,ortheatmosphere.•Infrastructuremanagement:Bridges,railwaytracks,andwindfarmscanbemonitored.•Energymanagement:Industrialmanufacturerscanoptimizeenergylevelsinrealtime.•Medicalandhealthcaresystems:People’shealthcanbemonitoredremotely.•Buildingandhomeautomation:Alarmandheatingsystemscanbemonitoredandmanaged.•Transportsystems:Carscancommunicatewithoneanother,suchastoavoidtraffic.

InordertostandardizetheIoT,aconsortium2ofcompanieshasbeenformedtopushalongtheIoTanddevelopdefaultcommunicationstrategies,interfaces,andprotocols.ThefollowingtwosectionsprovidesomeexamplesofcurrentIoTdevicesandscenariosfromdifferentmanufacturers.

2.www.openinterconnect.org/

ConnectedHomeMobiledevicemanufacturersGoogleandApplearecurrentlybuildingtheirfirstIoTservicesandproductswhichwillformpartoftheIoTfamilyalongsideseveralothercompanies.In2014,GoogleboughtNestLabs,3whichbuildsintelligentthermostatsandsmokealarmsforsmarthomes.ThethermostatsandsmokealarmsareconnectedtoaWi-Finetworkandcanbeaccessedfromanywhereintheworldusingacomputer,tablet,orsmartphone.

3.https://nest.com/

Googleiscurrentlydevelopingmobileappsfordifferentmobileplatformsthatgrantaccesstoconnecteddevicesaroundthehome.Theproductisintelligentasitcanlearnfromuserhabitstocontroltheheatingsystembasedonthetimeofdayandthecurrentmonthanddeterminewhetherornottheuserisathome.Userscanalsodefinevariousscenariostocontroltheirentirehomeheatingsystembasedontheirneeds.BecausethedevicesareconnectedtotheInternet,it’seasytoauto-updatethemwithnewsoftwareversionsincludingbugfixesandfeatures.ApplehasintroducedHomeKit4withiOS8,whichprovidesaframeworkto

communicateandcontrolconnecteddevicesintheuser’shome.Userswillbe

Page 220: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

abletoautomateandcontrolIoTdeviceswiththeirvoicebyusingSiri.HomeKitwillbeabletocontroldevicessuchasthermostats,lighting,doors,andotherelementsthatcanconnecttotheInternet.AppleprovidesthedevelopmentframeworkforHomeKitandiscurrentlylookingforindustrypartnerswhowanttoimplementApple’sHomeKitaccessoryprotocoltobecontrolledbytheHomeKitapp.

4.https://developer.apple.com/homekit/

Asyoucansee,connectedhomesarealreadyavailableonthemarketandenableentirelynewwaysofinteractingwithdevicesandpartsofourdailylife.Thereareplentyofpotentialnewtestscenarios,testenvironments,andtestingchallengesthataretotallydifferentfromtraditionaltestingormobiletesting.

ImportantBesidesGoogleandApple,therearealotofothercompaniesthatareinvestinginandalreadyhavesolutionsinplaceforconnectedhomes.IoptedtowriteaboutGoogleandApplebecausetheyalsoprovideAPIsfordevelopersthatallowthemtobuildmobileapplicationsaroundtheconnectedhometechnology.

ConnectedCarConnectedcarsarethenextIoTexample.Again,GoogleandApplearealreadyontheirwaytointegratingtheAndroidandiOSmobileoperatingsystemsintocarstomakethemevenmoreintelligent.GooglehasintroducedAndroidAuto,5andApplereleasedCarPlay.6BothGoogleandApplewillprovidealightweightversionoftheirmobileoperatingsystemstoprovideuserswithfeaturestheycanusewhiledriving,suchasnavigation,music,contacts,phone,andmessages.

5.www.android.com/auto/6.www.apple.com/ios/carplay/

Besidestheirownmobileapps,bothGoogleandAppleoffertheoptiontouseinstalledthird-partyappsincars.Therearealreadylotsofcarmanufacturersthatsupportbothsystemsandletbuyerschoosethesystemtheyprefer.However,usingmobileappswithcardisplaysgivesrisetosomenew

challengesforanyoneinvolvedinthesoftwaredevelopmentprocess.Forexample,theprovidedappsandfeaturesshouldn’tdistractthedriverandneedtoofferaverysimpleuserinterfacewithlessinformationcomparedtomobileappsorWebapplications.

Page 221: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Thefollowingfourpointsmustbeconsideredwhendevelopingandtestingmobileappsorotherapplicationsforconnectedcars:

•Simpleinterface:Carapplicationsandinterfacesshouldnotdistractthedriver.TheUIelementsmustbeeasytousewhilethedriverisatthewheel.Traditionalinputmethodsneedtobereconsideredandshouldalsoincludevoicecontrol.•Avoiduselessfeatures:Thefeaturesetofanapprequiredwhiledrivingisprobablyalotsmallerthanforanappusedonasmartphone.Theappshouldthereforeofferfewerfeaturesonthecardisplaytopreventthedriverfrombeingoverwhelmedorfrustratedwhileatthewheel.•Third-partyappsneedguidelines:CarmanufacturersneedtoprovideanAPIforthird-partydeveloperssotheirservicescanbeintegrated.However,thisposesthechallengeofcreatingverystrictguidelinesaboutwhatisandisn’tpossible.•Testinginthecar:Developingappsforcarsischallengingenoughinitself,buttestingappsforcarsisevenmorecomplex.Itissimplynotenoughtotesttheappinalabsituationbecausecarsaregenerallyonthemove,havedifferentmanufactureryearsandmodels,andhavelotsofinterfaceswithothersystems.Electronicinterferenceinacarcanhaveahugeimpactonyourappandthewholesystem.Theprovidedappmustbesafeforthedrivertousewhileatthewheel.Lastbutnotleast,theappmustbewelltestedtoavoidanycriticalbugs.

AgoodexampleofaconnectedcarandIoTisthecarmanufacturerTesla,7whichbuildscarsthatarecompletelyconnectedtotheInternetandcanbepartiallycontrolledwiththeaidofamobileapp.Thecarreceivesautomaticupdatesthatimprovefeatures,fixbugs,andevensolveproblemswithdifferentpartsoftheengine.WiredmagazinepublishedaninterestingarticleaboutTeslaasanexampleofIoT.8

7.www.teslamotors.com/8.www.wired.com/2014/02/teslas-air-fix-best-example-yet-internet-things/

Asyoucansee,thetwoexamples—connectedhomeandcar—representnewchallengesfortheentiresoftwaredevelopmentprocess.Fromatestingpointofviewinparticular,thesenewtechnologiesrequiredifferenttestingmethodsaswellasnewtestingenvironments,newtestingdevices,andcompletelynewtestingscenarios.

Wearables

Page 222: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Wearabletechnologyisarapidlygrowingfieldthat’sexpectedtogrowexponentiallyoverthenextfewyears.Therearelotsofnewandinnovativeformfactorsfordevicesthatcanbewornondifferentpartsofthebody.Thesenewformfactorsposenewchallengesforcompaniesastheylooktofindsmartwaystomaketheirproductfunctional,usable,andlovablefortheircustomers.Thesameappliestodevelopersandsoftwaretesterswhoneedtorethinktheirworkandthewaytheydevelopandtestsuchproducts.Wearablesgenerallyinvolvesmartwatches,smartglasses,andfitnesswristbands.

SmartWatchesandFitnessWristbandsSmartwatchesandfitnesswristbandsareextensionstomobiledevicesthatsendandreceiveinformationsuchasmessages,news,incomingcalls,andhealthstatustoandfrommobiledevices.Togetthelatestinformationfromanapp,usersnolongerneedtotaketheirdeviceoutoftheirpocket.Mostdevicescanbecontrolledbytheuser’svoiceorasmalltouchscreen.However,asmartwatchorfitnesswristbandisessentiallyuselesswithoutamobiledevicetointeractwith.Theusabilityanddesignofsmartwatchesandfitnesswristbandsneedtobe

thoroughlytestedandchecked.Designingsoftwareforreallysmallscreensisnoteasy,whichiswhydesignersandUXexpertsneedtorethinktheirconceptsinordertobuildniceproductsthatwearablesuserswillloveanduse.JonathanKohlwroteanexcellentarticleabouthislessonslearnedwhendesigningproductsforsmartwatchesandwearables.9

9.www.kohl.ca/2014/lessons-learned-when-designing-products-for-smartwatches-wearables/

Ifyouhavetheopportunitytotestwearables,especiallysmartwatchesorfitnesswristbands,youshouldkeepaneyeonthelook-and-feelofthedevicetogetherwiththesoftwareundertest.Thisalsoincludestestingthedesignandusability.Whendoingso,youshouldaskyourselfthefollowingquestionstogeneratevaluablefeedbackabouttheproduct:

•Isthedevicenicetowear?•Doestheappmakesenseonthewearabledevice?•Arethefeatureseasytouseandhelpful?•Docertainpartsofthedevicegetinthewaywhileyou’reonthemoveandwhileyou’reusingthesoftware?•Howcantheuserinteractwiththesmartwatchorfitnesswristband?

Thelook,feel,design,andusabilityarethemainsuccessfactorswhenitcomestowearabletechnology.Ifawearabledevicedoesn’tfeelgood,userswill

Page 223: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

notbuyorwearit.Fromatechnologicalpointofview,testingsmartwatcheshassomeadditional

challengescomparedtomobileappsanddevices.Thefactthatsmartwatchesareextensionstomobiledevicesrequirestestingofthewearabledevicetogetherwiththesoftwaretoseehowbothcommunicatewithmobiledevicesinordertoreceiveandtransferdata.Thisscenarioisn’tsomethingyoucanautomate.I’msureyou’realreadyawareofmobiledevicefragmentation,butthisiscompoundedbythefactthatsmartwatchesandfitnesswristbandsneedtoworkcorrectlywithinadifferentsetofuniquedailyuserscenarios,andallthosescenariosrequireextensivein-the-wildtesting.Suchtestinginareal-lifeenvironmentwillplayanessentialpartinthesuccessofsoftwareforsmartwatches.GoogleintroducedAndroidWear10in2014tokickoffthewearabledevice

era.AppleintroducedtheAppleWatch11inSeptember2014andstartedsellingitinearly2015.IfyousearchtheInternetforsmartwatchesandfitnesswristbands,you’llcomeacrossvariousdevicemanufacturersandallthedifferentdevicesonthemarket.10.www.android.com/wear/11.www.apple.com/watch/

Forinformationaboutbuildingsoftwareproductsforwearabledevices,checkoutthePebbledeveloper,12theGooglewearable,13andtheAppleWatch14featurepages.12.https://developer.getpebble.com/13.https://developer.android.com/training/building-wearables.html14.www.apple.com/watch/features/

SmartGlassesGoogleGlassisanotherwearablethatwasintroducedbyGoogle.GoogleGlass15includesalmostthesamehardwareasamobiledeviceextendedwithanopticalhead-mounteddisplay(OHMD)tohavethecontentandinformationdirectlyinfrontofyoureyes.Theglassesareequippedwithlotsofsensorsandacameratointeractwithyoursurroundings.Youcancontrolthiswearabledevicewithyourvoiceorbyusingthetouchpadonthesideoftheframe.15.www.google.com/glass/start/

TheexplorereditionofGoogleGlasshasbeenonsaleinsomecountriessince2014,butlotsofcountriesandcompanieshaveexpressedprivacyconcernssinceitsintroductionin2012becausethedeviceisabletorecordpeopleinpublic

Page 224: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

withouttheirpermission.Furthermore,thereareconcernsabouttheproductintermsofcorporatesecretsandsafetyconsiderationswhileusingitindifferentscenarios,suchaswhiledrivingacarorridingamotorbike.However,Googleprovidedanewwayofusingmobiletechnologiesandset

newstandardsandinnovationsintheworldofwearabledevices,eventhoughtheproductisn’treadyforthemassmarketyet.GoogleGlassisagreatexampleofthedirectiontechnologywilltakeoverthecomingyears.Ifyouhavetheopportunitytodevelopandtestsoftwareforsmartglasses,

don’tforgettorunthroughthelistofquestionsapplicabletosmartwatches.You’llalsoneedtorethinkyourtestingapproachforthisdevice.

HealthAppsAnotherinterestingandgrowingmarketismobilehealthapps.“ThenumberofmHealthappspublishedonthetwoleadingplatforms,iOSandAndroid,havemorethandoubledinonly2.5yearstoreachmorethan100,000apps(Q12014)”and“...willreach$26billioninrevenuesby2017,...”asquotedinthecurrentmHealthAppDeveloperEconomics16report.ThishugeincreaseshowsthatmHealthappswillbeontheriseinthenearfuture.16.http://mhealtheconomics.com/mhealth-developer-economics-report/

ThetopfourmHealthappsare:1.Fitnessapps(30%)2.Medicalreferenceapps(16%)3.Well-beingapps(15%)4.Nutritionapps(8%)

TheremainderofthemHealthappsaredistributedamongdifferentcategoriessuchasmedicalconditionmanagement,diagnostics,compliance,reminders,alerts,andmonitoring.Healthappsinvolvetheuseofmobiledevicesorwearablestomonitorthe

humanbodyforcurrentbloodpressure,pulse,heartrate,sleeppatterns,calorieconsumption,orcurrentspeedwhilerunning.ThehugenumberofmHealthappsonthetwoleadingplatforms,iOSandAndroid,hasconvincedAppleandGoogletoinvestinanddevelopmHealthAPIsandappsfortheirmobileplatforms.AppleintroducedHealth17foritscustomersandHealthKit18foritsdevelopersatthesametimeasitrolledoutiOS8.GoogleintroducedGoogleFit19in2014.ThefactthatbothAppleandGoogleareenteringthehealthmarketwillleadtoseveralnewdevicesandappsbeingrolledoutinthenearfuture.

Page 225: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

17.www.apple.com/ios/whats-new/health/18.https://developer.apple.com/healthkit/19.https://developers.google.com/fit/

Asthenumbersshow,mostoftheseappshelpcustomerstotracktheirfitnessordietaryhabits,buthealthappsalsoposehighriskstocustomers.Appsthatmanageinsulindosesforpatientswithdiabetescouldhavedisastrousconsequencesifabugoccurs.Thisriskraisesanimportantquestion:Canwetrusthealthcareapps?MedicaldevicesaregenerallyregulatedbytheUnitedStatesFoodandDrug

Administration(FDA),butthisisnotthecasewitheverymobilehealthapp.ExpertsfromtheNewEnglandJournalofMedicine20saythattheFDAdoesn’thaveenoughresourcestoregulateallthehealthappsavailableinthedifferentmobileappstores.AnotherchallengethatisnearlyimpossiblefortheFDAandappproviderstohandleisallthemobileoperatingsystemupdatesprovidedbythedifferentvendors.Eachmobileplatformreceivesmorethanoneortwoupdatesayear,andeachoperatingsystemupdatemustbecompliantwiththeFDAregulations.20.www.nejm.org/doi/full/10.1056/NEJMhle1403384

Sotheanswertothepreviousquestionisno.Wecan’ttrusthealthappsiftheyaren’tregulatedbyanyinstitutionbecausewecan’tbesurethatthedelivereddataiscorrectandfreeofmistakes.Ifyouhavetheopportunitytotestmobilehealthandfitnessapps,pleasebear

thefollowingpointsinmind:•GetinformationfromtheFDAandothermedicalinstitutionswithregardtoregulationsandhealthcareworkflows.•Theprovideddatamustbecorrectinordertoprotecthumanlife.•Datasecurityisaveryimportantaspectduetotheprivacyofaperson’sstateofhealth.•Mobilehealthappsmusthaveexcellentusabilityinordertocoverthetargetgroup’sneeds.•Geolocationdatamustbecorrectforfitnesstrackers.

Besidesthat,allofthemobiletestingknowledgeyouhaveacquiredinthisbookalsoappliestohealthandfitnessapps.Ifyou’dliketofindoutmoreaboutmHealth,visitthemHealthNews21or

mobileHealthEconomics22WebsitesorhavealookatthemHealthAppDeveloperEconomics2014study.23

Page 226: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

21.www.mhealthnews.com/22.http://mhealtheconomics.com/23.http://mhealtheconomics.com/mhealth-developer-economics-report/

FinalThoughtsThisisthelastsectionofmybookaboutmobiletesting,andI’dliketoprovideyouwithsomefinalthoughts.Duringthecourseofthisbookyou’velearnedagreatdealaboutmobiledevices,mobileapps,mobileusers,andthetoolsthatareimportantwhenitcomestomobiletesting.Ialsohopeyou’velearnedfrommyideasandexperiencesduringmytimeasamobiletester.Thisbookisdesignedtohelpyouinyourdailylifeasamobiletester,mobile

developer,orproductmanagerbygivingyoutheimpetustogeneratenewtestingideasandtryoutnewmobiletestingapproaches.Itshouldalsoserveasabasisfordevelopingyourowntestingideasandapproaches,whilealsohelpingyoutoextendyourknowledgelevel.Asyouhaveseen,themobiledevelopmentandtestingbusinessisrapidly

changingwithlotsofnewtechnologyenteringthemarketeverydayandplentymoreinthepipeline.Thisiswhyit’simportantthatyoustayup-to-date,strivetolearnconstantly,andadaptyourskillstotheever-changingworldoftechnology.

FiveKeySuccessFactorsToroundthingsoff,I’dliketoprovideyouwithmyfivekeysuccessfactorsforbecomingasuccessfulmobiletester.

SuccessFactor1:HaveHighExpectationsMobileusershavehighexpectations,andyoushouldalsohaveveryhighexpectationswhenitcomestomobileappsandtheirusability,performance,andfeatureset.Bearinmindthatmobilecustomerswilluninstallyourappveryquicklyifthey’renothappywithit,andthey’llprobablysubmitabadreviewtotheappstore.It’sthereforeimportantthatyoualwayskeepyourcustomersinmind,encouragegoodusabilityandperformance,andmakesurethatalltheimportantbugsgetfixed.KeeptheKIFSUprincipleinmindandlistentoyourcustomers’needs.

SuccessFactor2:BeanExpertonMobileDevicesAsuccessfulmobiletesterneedstobeanexpertonmobiledevices.Itisessentialtoknowallthedifferenthardwareandsoftwarefeaturesofmobiledevicesfromthevariousplatforms.Thisknowledgewillhelpyoutokeeplotsofdifferenttest

Page 227: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

scenariosinmindduringyourdailybusiness.Ifyou’reabletodoso,buymobiledevicesusingthedifferentplatformssoyoucanstayup-to-date.Ifbuyingisnotanoption,trytorentthemfromamobiledevicelab.Youshouldalsosubscribetovarioustechnologyblogsandnewspagesin

ordertogetthelatestnewsaboutmobileoperatingsystemsandmobiledevices.Irecommendthatyouwatchthekeynotevideosofthemajormobilemanufacturerstofindoutthelatestinformationaboutthedifferentplatforms.

SuccessFactor3:BeontheMoveOneofthemostimportantpointsyoushouldbearinmindwhentestingamobileappistobeonthemovewhileyou’retesting.Yourcustomersusetheirmobileappsinmanydifferentscenarios,locations,anddatanetworks.Therefore,it’sessentialthatyoutestyourappinseveraldatanetworkswithdifferentnetworkspeedstoreplicatereal-lifescenarios.Whiletestingyourappinthewild,you’lldoubtlesscomeacrosslotsofdifferentproblemsthatwouldprobablynevershowupintheoffice.Whentestinganapponthemove,therewillbelotsofinterferencesthatcouldhaveanimpactonyourappwhenusingthevarioussensorsandinterfacesamobiledevicehasonoffer.Sogrababag,fillitwithmobiledevices,andstarttestinginthewildright

now!

SuccessFactor4:BuildUpYourProgrammingSkillsMobiletestersneedtobeabletowritetestautomationcode.Ifyoudon’thaveanyprogrammingskillsrightnow,doyourbesttogetintoprogrammingsoyoucanwritereliableandrobusttestautomationscriptsforyourmobileapp.Programmingskillswillalsohelpyousupportthedeveloperswiththeirregressiontests,andyou’llbeabletocommunicateanddiscusstheapp’scodewiththedevelopers.Ifyourprogrammingskillsneedbrushingup,now’sthetimetoreadsomeprogramminglanguagebooksorrunthroughsomeonlinetutorials.

SuccessFactor5:BeaConstantLearnerThefinalsuccessfactorinbecomingabettermobiletesteristobeaconstantlearner.Thisdoesn’tjustapplytomobiletesters;itshouldbethecaseforanyoneinvolvedintheITbusiness.Thetechnologiesusedtobuildcomplexsystemsincludingmobileappsarechangingconstantly.Furthermore,newwaysofusingandcommunicatingwithnewtechnologiesareontheirway,andit’simportantforyoutofindoutaboutthemassoonaspossible.

Page 228: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Besideslearningnewtechnologies,youshouldalsoworkonimprovingyourtestingskills.Greatwaystodothisincludereadinglotsofblogsandbooks,attendingconferences,andtakingpartincompetitionstolearnfromothermobiletestersandshareexperienceswiththem.Thiswillhelpyoutoimproveyourtestingideas,approaches,andskills.Don’tshyawayfromtryingoutnewthings—makemistakesandlearnfrom

them.

SummaryThelastchapterofthisbookcoveredthetopic“What’snext?”Whataretheupcomingtechnologytrendssoftwaretestershavetodealwith?Idescribedfivepossibletechnologytrendsthatarealreadyonthemarketorontheirway.Thefivetechnologiesare

•InternetofThings•Connectedhomes•Connectedcars•Wearables•Healthapps

Inthe“FinalThoughts”sectionIoutlinedfivekeysuccessfactorstobecomeasuccessfulmobiletester.Thosesuccessfactorsare

•Havehighexpectations.•Beanexpertonmobiledevices.•Beonthemove.•Buildupyourprogrammingskills.•Beaconstantlearner.

That’sit;thankyouverymuchforreadingmybook.Ihopeyoulearnedalotofnewthingsandgotnewideasforyourdailylifeasamobiletester.Happymobiletesting!

Page 229: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Index

0Gnetworks,121Gnetworks,122Gnetworks,12–133Gnetworks,134Gnetworks,135Gmobilestandard,1399tests,145

Accelerationsensor,testing,38AccessibilityguidelinesAndroid,62iOS,62WC3initiative,62WindowsPhone,63

AccessibilitytestingAndroid,62auditoryimpairment,61cognitiveimpairment,61–62iOS,62overview,60physicalimpairment,61visualimpairment,60–61WC3initiative,62WindowsPhone,63

Actualresult,inbugreports,98AdvancedUserInteractionsAPI,125Advertisements,selling,24AgileRecord,197AgileTesting,196AgileTestingDays,195AmazonAppstoreGuidelines,26Ambientlightsensor,testing,37

Page 230: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AMPS(AdvancedMobilePhoneService),12AMTS(AdvancedMobileTelephoneService),12Androiddesignguide,18guidelines,81

Androidappstestautomation.SeeTestautomationtools,Android.testingcriteria,103

AndroidAssetPackagingTool,66AndroidAuto,201AndroidEmulator,51Androidoperatingsystemaccessibilityguidelines,62accessibilitytesting,62AppQualityAlliancesite,103pseudo-randomtestevents,66

Androidsmartphonebatterystatus,displaying,18docksection,18generatingpseudo-randomtestevents,66interrupttesting,66–67introductionof,14vs.iOS,17–19JouleUnitenergyprofilingtool,65Monkeytool,66networkstrength,displaying,18notifications,displaying,18pinningapps,18statusbar,18stresstesting,66–67time,displaying,18userinterface,18

AndroidWebbrowservs.otherbrowsers,48Appdevelopmentdevelopmentguidelines,2–3

Page 231: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

KIFSU(KeepItFastSimpleUsable)principle,3KISS(KeepItSimple,Stupid)principle,3rejection,reasonsfor,18testing.SeeMobiletesting.

AppQualityAlliancesite,103AppstoresAppleAppStore,25BlackBerryWorld,26GooglePlayStore,25listof,25MicrosoftStore,26numberofavailableapps,25rejectingapps,reasonsfor,18reviewandpublishingguidelines,26Samsung,25uploadingappsto,26forWindowsPhone,26

Appaloosa,138AppBlade,138AppiumforAndroid,127–128foriOS,134nativeobjectrecognition,111onlineresources,111,134

Applause,138,145AppleAppStore,25AppleAppStoreGuidelines,26AppleWatch,204“ApplyingtheSFDPOTHeuristictoMobileTesting,”88Appsdeveloping.SeeAppdevelopment.health,205–207mHealth,205–207numberavailable,2,25pinning,18

Page 232: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

preinstalled,testing,44reasonsfordeleting,2system,testing,44testing.SeeMobiletesting.uploadingtoappstores,26WindowsPhone,downloading,26

Apps,Androidtestautomation.SeeTestautomationtools,Android.testingcriteria,103

Apps,iOStestautomation.SeeTestautomationtools,iOS.testingcriteria,103

Apps,typesofhybrid,20–21native,19–20Web,22–23

appsfire,177AppsFlyer,177AppThwack,36,149Appurify,149AssociationforSoftwareTesting,196Auditoryimpairment,accessibilitytesting,61Automatedtesting.SeeTestautomation.

Bach,James,88,90Bamboo,137Batteryconsumptiontools,64–66Batterylife,savingwithproximitysensor,37–38Batterystatus,displaying,18Batteryusage,testingbatteryconsumptiontools,64–66Charlestool,63Fiddlertool,64fullychargedbattery,63–64Instrumentsenergyusagefunction,65

Page 233: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

JouleUnitenergyprofilingtool,65lowbattery,64overheating,64usagestatistics,64–66

BeautifulTesting,196BelgiumTestingDays,195BetabyCrashlytics,138Betadistributiontools,138–139BirdFlight,138BlackBoxSoftwareTesting,55Blackboxtesting,54–55,164BlackBerryguidelines,81relativemarketshare,14,16

BlackBerryWebbrowservs.otherbrowsers,48BlackBerryWorld,26BlackBerryWorldGuidelines,26Blindness.SeeVisualimpairment.Blink,47Blogs,196–197BooksaboutSQLite,75Booksandpublications.SeealsoOnlineresources.AgileRecord,197AgileTesting,196BeautifulTesting,196ExploreIt!,196HowGoogleTestsSoftware,196TheInmatesAreRunningtheAsylum,30LessonsLearnedinSoftwareTesting,196MobileUsability,57ProfessionalTester,197SpecificationbyExample,196TapintoMobileApplicationTesting,92,196Tea-timewithTesters,197TestingCircus,197

Page 234: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Bots,137Boundaryvaluetesting,55Browserversion,inbugreports,99BugAdvocacy,183Bugcategory,inbugreports,101BugID,inbugreports,97Bugreportsbepolite,102keepitsimple,102mindmaps,examples,94–96overview,93,96–97remaincalm,102

Bugreports,contentsactualresult,98browserversion,99bugcategory,101bugID,97description,97expectedresult,98language,100logfiles,101–102mobiledevice,99mobileplatform,99mobile-device-specificinformation,99networkconditionandenvironment,100operatingsystem,99reproducible,99screenshotorvideo,101severity,101softwarebuildversion,100stepstoreproduce,98testdata,100testerwhofoundthebug,102work-around,98

Bugs,findingandprotectingfrom,53–55

Page 235: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Buildbot,137Businessmodelschoosing,24–25freemium,23–24in-apppurchases,24paid,24sellingadvertisements,24transaction,24

CalabashforAndroid,125–126foriOS,131–132nativeobjectrecognition,111

Camerasmobiletesting,43–44resolutionandimagesize,43–44testing,43–44

Capacitivetouchscreens,41Captureandreplaytools,111–112CarPlay,201CDMA(CodeDivisionMultipleAccess),12Cellphonesgenerationsof,12–13heads,12historyof,4–5transceivers,12

Charlesbatterytool,63Checklists.SeealsoGuidelines;Mindmaps;Mnemonics.genericmobiletesting,85–87mobileteststrategy,169–170overview,84

Checkstyletool,54ChromeWebbrowservs.otherbrowsers,48CIsystems,137Clicktale,177

Page 236: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Cloudtesting,147–152CloudMonkey,36,149Cognitiveimpairment,accessibilitytesting,61–62Cohn,Mike,105,106Colordeficiencies.SeeVisualimpairment.Color-blindness.SeeVisualimpairment.Communication,testerskill,179–181Communities,196Communitysupport,174–175Conferences,195–196Configurationdata,mobileteststrategy,165Connectedcars,201–203Connectedhomes,200–201Constantlearning,testerskill,183–184Cooper,Alan,30Coordinate-basedrecognitiontools,110COPFLUNGGUN(Communication,Orientation,Platform,Function,Location,Userscenarios,Notifications,Guidelines,Gesture,Updates,Network),92Crashreports,176Crashesonspecificdevices,testerskillsimprovement,187–192Creativity,testerskill,184Criticalthinking,testerskill,181–182Crowdtesting,141–147Crowdtestingproviders,145crowdsourcedtesting,145Crowdsourcing,141CruiseControl,137CSS3,22CucumberforAndroid,125–126Curiosity,testerskill,181Customerfocus,testerskill,184–185Customers.SeealsoUsers.gettinginformationabout,29–32invitingtousabilitytestingsessions,31–32representingwithpersonas,30–32

Page 237: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

satisfying,checklistfor,32

Databases,testing,75Dateformats,testing,46Deafness.SeeAuditoryimpairment.Decisiontables,testing,55Deletingapps,reasonsfor,2Description,inbugreports,97Developingapps.SeeAppdevelopment.Devicemovement,detecting,38Deviceorientation,detecting,38Docksection,AndroidandiOSdevices,18DolphinWebbrowservs.otherbrowsers,48Doubletapgesture,42Downloadingresources.SeeOnlineresources.Draggesture,42Dumbphones,5DutchTestingDays,195Dynamictesting,53–55

EDGE(EnhancedDataratesforGlobalEvolution),13eggPlantforAndroid,129imagerecognition,110OCR/textrecognition,111

EmulatorsAndroidEmulator,51handlingfragmentation,35mobiledevicetestclouds,35prosandcons,115–116vs.realdevices,51–52vs.simulators,51–52

EnergyUsageInstrument,65–66EspressoforAndroid,128

Page 238: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

nativeobjectrecognition,111ETSI(EuropeanTelecommunicationsStandardsInstitute)standards,82EuroSTAR,195Expectedresult,inbugreports,98ExperitestforAndroid,129foriOS,134mobilecloudtesting,149

ExploreIt!,196ExtSolo,122–123

FCCCUTSVIDS(Featuretour,Complexitytour,Claimstour,Configurationtour,Usertour,Testabilitytour,Scenariotour,Variabilitytour,Interoperabilitytour,Datatour,Structuretour),89–90,170Featurephones,5Fiddlerbatterytool,64FindBugstool,54FirefoxMobilebrowservs.otherbrowsers,48Fitnesswristbands,203–2045Gmobilestandard,134Gnetworks,13Fragmentation,definition,5Fragmentation,handlingemulators,35groupingtestdevices,33–34mobilecloudtesting,35–36mobiledevicelabs,34–36prioritizingmobiledevicegroups,33–34privacy,35rentingtestdevices,34–36security,35simulators,35

Frank,134Freemiumbusinessmodel,23–24Fullychargedbattery,testing,63–64

Page 239: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Functionaltesting,56,162

Gatheringcustomerinformation,30Gecko,47GeneralPacketRadioService(GPRS),13Generationsofmobiledevices,11–12Geographicalregions,adaptingto.SeeL10n(localization).GesturesupportforAndroid,125Gesturesdetecting,40testing,41–42

GherkinforAndroid,126GHUnit,134GlobalAppTesting,145Google,OurMobilePlanet,34GoogleBestPractices,57GoogleGlass,204–205GoogleInstrumentationTestRunner,128GooglePlaynativeAppBetaTesting,138GooglePlayStore,25GooglePlaystoreGuidelines,26GoogleTestAutomationConference,195Googlewearables,204GPRS(GeneralPacketRadioService),13GPScoordinates,detecting,39–40GPSlocation,settingforAndroid,122Groupingtestdevices,33–34GSM(GlobalSystemforMobileCommunications),12Guidelines.SeealsoChecklists;Mindmaps;Mnemonics.AmazonAppstoreGuidelines,26Android,81appdevelopment,2–3appstores,reviewandpublishing,26AppleAppStoreGuidelines,26AppleiOSapproval,81

Page 240: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

BlackBerry,81BlackBerryWorldGuidelines,26forcorporatelook-and-feel,59GooglePlaystoreGuidelines,26platform-specificmobiletesting,81–82testautomation,114–115testingconnectedcars,202WindowsPhone,81

Guidelines,accessibilitytestingforAndroid,62foriOS,62WC3initiative,62forWindowsPhone,63

Gyroscopesensor,testing,38

Hardwareusagetesting,192Heads,cellphones,12Healthapps,205–207Hearingimpairment.SeeAuditoryimpairment.Help.SeeBooksandpublications;Onlineresources.HockeyApp,138HockeyKit,139HomeKit,201HowGoogleTestsSoftware,196Howe,Jee,141HTCDreamsmartphone,14HTML5,22Humiditysensor,testing,39Hybridapps,20–21

ISLICEDUPFUN(Inputs,Store,Location,Interactions/interruptions,Communication,Ergonomics,Data,Usability,Platform,Function,Userscenarios,Network),90–92,170I18n(internationalization),45–46IEEE(InstituteofElectricalandElectronicsEngineers),82Ignite,195

Page 241: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Imagerecognitiontools,109iMobiTrax,177In-apppurchases,24TheInmatesAreRunningtheAsylum,30Inputs,Store,Location,Interactions/interruptions,Communication,Ergonomics,Data,Usability,Platform,Function,Userscenarios,Network(ISLICEDUPFUN),90–92,170Installationtesting,71–72Instruments,energyusagefunction,65Internationalization(I18n),45–46Internetconnections,testing,4InternetExplorerMobileWebbrowservs.otherbrowsers,48InternetofThings(IoT).SeeIoT(InternetofThings).Interrupttesting,66–68In-the-wildtesting,167–169iOSaccessibilitytesting,62approvalguidelines,81designguide,18designresources,81generatingpseudo-randomtestevents,67simulators,52

iOSappstestautomation.SeeTestautomation,iOS.testingcriteria,103

iOSsmartphonevs.Android,17–19batterystatus,displaying,18docksection,18generatingpseudo-randomtestevents,67Instrumentsenergyusagefunction,65interrupttesting,67–68loggingenergyusage,onlineresource,66networkstrength,displaying,18notifications,displaying,18

Page 242: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

pinningapps,18statusbar,18stresstesting,67–68time,displaying,18UIAutoMonkeytool,67–68userinterface,18

ios-driver,132–133IoT(InternetofThings)AndroidAuto,201AppleCarPlay,201AppleHomeKit,201connectedcar,201–203connectedhome,200–201mobiletesting,199–203NestLabs,200overview,199–200

ISTQBclass,55

JamoSolutionsAndroid,129iOS,134

Janky,137Javastaticanalysistools,54JavaScript,22Jenkins,137Johnson,KarenNicolemindmaps,93–96mnemonics,88

JouleUnit,energyprofilingtool,65JSONWireProtocolcompatibilitywithSelendroid,124andios-driver,132–133

JUnittool,54

Kaner,Cem,183

Page 243: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Kelly,Mike,89Keyboardinput,testing,44Keyboards,testing,187–188KeynoteforAndroid,129foriOS,134mobilecloudtesting,149

KeynoteMobileTesting,36KIF(KeepItFunctional),133KIFSU(KeepItFastSimpleUsable)principle,3KISS(KeepItSimple,Stupid)principle,3,102Kiwi,134Kohl,Jonathan,90,92

L10n(localization),45–46Languageinbugreports,100switching,forAndroid,122

Languagesadaptingto.SeeI18n(internationalization);L10n(localization).fallback,46

Launchstrategy.SeeMobilelaunchstrategy.LessonsLearnedinSoftwareTesting,196Let’sTest,195Linttool,54Localstoragetesting,76Localization(L10n),45–46Locationsensor,testing,39–40Logfilesinbugreports,101–102checking,82–83

LoggingenergyusageiniOS,66Logintask,testing,190Longtouchgesture,41Lowbattery,testing,64

Page 244: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

LTE(LongTermEvolution),13

Magazines.SeeBooksandpublications.Magneticfields,detecting,38–39Magneticsensor,testing,38–39Manualtesting,mobileteststrategy,162,167–169Maximumdevicescope,160Metrics,mobileteststrategy,162mHealthapps,testing,205–207Microphones,testing,42–43MicrosoftStore,26Mindmaps,93,94–96MinistryofTesting,93Mnemonics.SeealsoChecklists;Guidelines;Mindmaps.COPFLUNGGUN(Communication,Orientation,Platform,Function,Location,Userscenarios,Notifications,Guidelines,Gesture,Updates,Network),92FCCCUTSVIDS(Featuretour,Complexitytour,Claimstour,Configurationtour,Usertour,Testabilitytour,Scenariotour,Variabilitytour,Interoperabilitytour,Datatour,Structuretour),89–90ISLICEDUPFUN(Inputs,Store,Location,Interactions/interruptions,Communication,Ergonomics,Data,Usability,Platform,Function,Userscenarios,Network),90–92mobileteststrategy,170overview,87SFDPOT(Structure,Function,Data,Platform,Operations,Time),88

Mob4Hire,145Mobile,definition,11MobileAppEurope,195MobileCheatSheet,79Mobilecloudtestinghandlingfragmentation,35–36mobiledevicetestclouds,35–36

Mobilecloudtestingproviders,149–150Mobilecommunity,testerskillsimprovement,194–195Mobiledevice,inbugreports,99

Page 245: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Mobiledevicelabs,34–36Mobiledevicetestcloudsemulators,35groupingtestdevices,33–34mobilecloudtesting,35–36mobiledevicelabs,34–36prioritizingmobiledevicegroups,33–34privacy,35rentingtestdevices,34–36security,35simulators,35

Mobiledevices.SeealsoSmartphones;specificbrands.acquiringfortesting,6–8cellphones,4–5dumbphones,5featurephones,5fragmentation,5rentingfortesting,7selectingfortesting,6

MobileFrameworksComparisonChart,21MobileLabs,36Mobilelaunchstrategycheckreleasematerial,172–174communitysupport,174–175crashreports,176post-release,174pre-launch,172–174reviews,175statistics,176–177timingoftherelease,173tracking,176–177

Mobilenetworks,historyofAMPS(AdvancedMobilePhoneService),12AMTS(AdvancedMobileTelephoneService),12CDMA(CodeDivisionMultipleAccess),12

Page 246: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

EDGE(EnhancedDataratesforGlobalEvolution),13generations,11–12GPRS(GeneralPacketRadioService),13GSM(GlobalSystemforMobileCommunications),12LTE(LongTermEvolution),13MobileRadioTelephoneSystem,12MTD(MobileTelephonySystemD),12MTS(MobileTelephoneService),12NMT(NordicMobileTelephone),12OLT(OffentligLandmobilTelefoni),12overview,11–14speed,11–13UMTS(UniversalMobileTelecommunicationsSystem),13WiMAX(WorldwideInteroperabilityforMicrowaveAccess),13

MobilePersonas,30Mobileplatform,inbugreports,99MobileQAZone,196MobileRadioTelephoneSystem,12Mobilereleasecycles,6–8MobileSecurityTesting,79MobileTelephoneService(MTS),12MobileTelephonySystemD(MTD),12Mobileteststrategyautomatedtesting,162blackboxtesting,164configurationdata,165definingrequirements,156–158FCCCUTSVIDS,170functionaltesting,162ISLICEDUPFUN,170in-the-wildtesting,167–169manualtesting,162,167–169mnemonics,170mobilechecklists,169–170mobiletours,169–170

Page 247: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

nonfunctionaltesting,162–163overview,155–156possiblemetrics,162productrisks,172regressiontesting,162stabledata,165targetdevices,selecting,166–167targetgroupinformation,gathering,157–158temporarydata,165testautomation,170–171testdata,164–166testenvironment,selecting,166–167testlevels,161–163testtechniques,163–164usagescenarios,168whiteboxtesting,163

Mobileteststrategy,scopeoftestingmaximumdevicescope,160multidevicescope,159–160single-devicescope,159use-casescope,160–161

Mobiletesting.SeealsoQualityassurancemeasures;specifictests.acquiringdevicesfor,6–8vs.automatedtesting,52–53batteries.SeeBatteryusage,testing.becreative,83boundaryvaluetesting,55cameras,43–44checkinglogfiles,82–83CI(continuousintegration),136–137cloudtesting,147–152connectedcar,201–203forconnectedcars,202connectedhome,200–201crowdtesting,141–147

Page 248: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

databases,75decisiontables,55documentingresults.SeeBugreports.ETSI(EuropeanTelecommunicationsStandardsInstitute)standards,82functionaltesting,56generatingpseudo-randomtesteventsforiOSsmartphone,67genericchecklistfor,85–87gestures,41–42hardwareusage,192IEEE(InstituteofElectricalandElectronicsEngineers),82installationtesting,71–72interrupttesting,66–68IoT(InternetofThings),199–203keyboardinput,44keyboards,187–188localstoragetesting,76logintask,190mHealthapps,205–207microphones,42–43mindmaps,93,94–96onmultipleplatforms,187–192vs.othertechnologies,1–2,8paymenttask,190forpeoplewithdisabilities.SeeAccessibilitytesting.performance.SeePerformancetesting.permissions,190–191platform-specificguidelines,81–82preinstalledapps,44pseudo-randomtesteventsforAndroid,66qualityofInternetconnections,4inreallifeenvironments,3–4remotelocations,4rentingdevicesfor,7security.SeeSecuritytesting.selectingdevicesfor,6

Page 249: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

smartglasses,204–205soundinputs,42–43standardsconformance,82standbytesting,71stresstesting,66–68systemapps,44TestingMap,93touchscreen,41–42uninstalltesting,72userinterface.SeeUsabilitytesting.voicecommands,42–43W3C(WorldWideWebConsortium),82wearables,203–204weatherconditions,4widgets,187–189

Mobiletesting,mnemonics.SeealsoChecklists;Guidelines;Mindmaps.COPFLUNGGUN(Communication,Orientation,Platform,Function,Location,Userscenarios,Notifications,Guidelines,Gesture,Updates,Network),92FCCCUTSVIDS(Featuretour,Complexitytour,Claimstour,Configurationtour,Usertour,Testabilitytour,Scenariotour,Variabilitytour,Interoperabilitytour,Datatour,Structuretour),89–90ISLICEDUPFUN(Inputs,Store,Location,Interactions/interruptions,Communication,Ergonomics,Data,Usability,Platform,Function,Userscenarios,Network),90–92overview,87SFDPOT(Structure,Function,Data,Platform,Operations,Time),88

Mobiletesting,sensorsandinterfacesaccelerationsensor,38ambientlightsensor,37changesindevicemovement,detecting,38deviceorientation,detecting,38gestures,detecting,40GPScoordinates,detecting,39–40gyroscopesensor,38

Page 250: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

humiditysensor,39locationsensor,39–40magneticfields,detecting,38–39magneticsensor,38–39possibletests,40–41pressuresensor,39proximitysensor,37–38screenbrightness,37temperaturesensor,39touchlesssensor,40

Mobiletesting,updatetestingadbtool,74–75forAndroidapps,74–75foriOSapps,73–74overview,72typicalscenarios,73

MobileTools,79Mobiletours,169–170Mobiletrackingtools,177MobileUsability,57MobileWebbrowserscomparisonof,48layoutengines,47

MobileAppTracking,177Mobile-device-specificinformation,inbugreports,99Mobilityanddatanetworks,3–4Monkeytool,66MonkeyTalkforAndroid,129coordinate-basedrecognition,110foriOS,134OCR/textrecognition,111

Moolya,92MTD(MobileTelephonySystemD),12MTS(MobileTelephoneService),12

Page 251: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Multidevicescope,159–160Multitouchgesture,42

Nativeapps,description,19–20NativeObjectRecognition,111Neotys,149NestLabs,200Networkconditionandenvironment,inbugreports,100Networkstrength,displaying,1899tests,145NMT(NordicMobileTelephone),12Nonfunctionaltesting,162–163Notifications,displaying,18

OCMock,134OCR/textrecognition,110–111OLT(OffentligLandmobilTelefoni),121Gnetworks,12Onlineresources.SeealsoBooksandpublications.5Gmobilestandard,1399tests,145adjust,177AmazonAppstoreGuidelines,26Androiddesignguide,18AndroidEmulator,51Androidguidelines,81AppQualityAlliancesite,103apprejection,reasonsfor,18appstorereviewandpublishingguidelines,26Appaloosa,138AppBlade,138Appium,134Applause,138,145AppleAppStore,25AppleAppStoreGuidelines,26

Page 252: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

AppleiOSapprovalguidelines,81AppleiOSdesignresources,81AppleWatch,204“ApplyingtheSFDPOTHeuristictoMobileTesting,”88appsfire,177AppsFlyer,177AppThwack,36,149Appurify,149Bamboo,137batteryusage,65–66BetabyCrashlytics,138betadistributiontools,138–139BirdFlight,138BlackBerryguidelines,81BlackBerryWorld,26BlackBerryWorldGuidelines,26Blink,47BooksaboutSQLite,75Bots,137Buildbot,137CDMA(CodeDivisionMultipleAccess),12CIsystems,137Clicktale,177CloudMonkey,36,149crowdtestingproviders,145crowdsourcedtesting,145CruiseControl,137CSS3,22EDGE(EnhancedDataratesforGlobalEvolution),13eggPlant,129EnergyUsageInstrument,65–66Espresso,128Experitest,129,134,149Frank,134gatheringcustomerinformation,30

Page 253: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Gecko,47GHUnit,134GlobalAppTesting,145GoogleBestPractices,57GoogleInstrumentationTestRunner,128GooglePlaynativeAppBetaTesting,138GooglePlayStore,25GooglePlaystoreGuidelines,26Googlewearables,204GPRS(GeneralPacketRadioService),13GSM(GlobalSystemforMobileCommunications),12HockeyApp,138HockeyKit,139HTML5,22iMobiTrax,177iOSdesignguide,18iOSsimulators,52ios-driver,133JamoSolutions,129,134Janky,137JavaScript,22Jenkins,137Keynote,129,134,149KeynoteMobileTesting,36Kiwi,134loggingenergyusageiniOS,66MicrosoftStore,26Mob4Hire,145mobilecloudtestingproviders,149–150mobiledevicetestcloud,36MobileFrameworksComparisonChart,21MobileLabs,36MobilePersonas,30mobiletrackingtools,177mobileusability,57

Page 254: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

mobileusabilitydesignprinciples,57mobileuserinterfacedesignprinciples,57MobileAppTracking,177MonkeyTalk,129,134Neotys,149OCMock,134OpenDeviceLab,36operatingsystemmarketshares,16OurMobilePlanet,34passbrains,145Pebble,204PerfectoMobile,36,129,134,150PhoneGapframework,20platform-specificguidelines,81–82Presto,47Ranorex,129,134,150Roboelectric,129Robotiumprojectpages,122Robotiumwikipage,122SauceLabs,36,150Siesta,129SilkMobile,129,134SOASTA,129,134Specta,134Subliminal,134TeamCity,137TenKodEZTestApp,129TestBirds,145TestChameleon,150testCloud,145Testdroid,150TestFlight,139testingcriteriaforAndroidandiOS,103testingtools,54Testmunk,36,150

Page 255: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

TestObject,36,129,150TestPlus,145TouchTest,36TravisCI,137Trident,47UIAutomator,129UMTS(UniversalMobileTelecommunicationsSystem),13usabilityheuristics,57usabilityprinciplesandtechniques,57usabilitytesting,57wearables,204Webbrowserlayoutengines,47WebKit,47widgets,18WiMAX(WorldwideInteroperabilityforMicrowaveAccess),13WindowsPhoneguidelines,81XamarinTestCloud,36,150XCTest,134Zucchini,134

Onlineresources,fortestersAgileTestingDays,195AssociationforSoftwareTesting,196BelgiumTestingDays,195blogs,196–197booksandpublications,196–197communities,196conferences,195–196DutchTestingDays,195EuroSTAR,195GoogleTestAutomationConference,195Ignite,195Let’sTest,195MobileAppEurope,195MobileQAZone,196Øredev,195

Page 256: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

SoftwareTestingClub,196STAREAST,196STARWEST,196TestBash,196TestExpo,196TestingCircus,196uTestcommunity,196

OpenDeviceLab,36OperaMobileWebbrowservs.otherbrowsers,48Operatingsystemsthebigtwo,16–19.SeealsoAndroid;iOS.inbugreports,99relativemarketshares,16

Øredev,195OurMobilePlanet,34Overheating,batteries,64OWASP(OpenWebApplicationSecurityProject),77OWASPMobileSecurityPageMobileCheatSheet,79MobileSecurityTesting,79MobileTools,79Top10MobileRisks,80

Paidbusinessmodel,24passbrains,145Paymenttask,testing,190Pebble,204PerfectoMobileforAndroid,129coordinate-basedrecognition,110foriOS,134mobilecloudtestingproviders,150mobiledevicetestcloud,36

Performancetestingcriticalareas,69

Page 257: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

mobileapps,70–71overview,68–69reproducingissues,189–190

Permissions,testing,190–191Personas,30–32PhoneGapframework,20Physicalimpairment,accessibilitytesting,61Pinchopen/closegestures,42Pinningapps,18Platform-specificguidelinesfortesting,81–82PMDtool,54Post-release,mobilelaunchstrategy,174Preinstalledapps,testing,44Pre-launch,mobilelaunchstrategy,172–174Pressuresensor,testing,39Presto,47Prioritizingmobiledevicegroups,33–34Privacy,35Processfocus,53–55Productfocus,53–55Productrisks,mobileteststrategy,172ProfessionalTester,197Programminglanguage,choosing,foriOStests,132–133Programmingskills,testerskill,185Proximitysensor,testing,37–38Pyramid.SeeTestautomationpyramid.

Qualityassurancemeasures.SeealsoMobiletesting.blackboxtesting,54–55dynamictesting,53–55findingbugs,53–55Javastaticanalysistools,54processfocus,53–55processfocusphase,54productfocus,53–55

Page 258: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

protectingfrombugs,53–55statictesting,53–55whiteboxtesting,54

RanorexforAndroid,129foriOS,134mobilecloudtestingproviders,150

Realdevices,prosandconsoftesting,116–117Reda,Renas,122Regressiontesting,mobileteststrategy,162Rejectingapps,reasonsfor,18Releasecycles.SeeMobilereleasecycles.Releasematerial,checking,172–174Rentingdevicesfortesting,7Rentingtestdevices,34–36Reproducible,inbugreports,99Requirementsdefinition,mobileteststrategy,156–158ResearchinMotion,14Resistivetouchscreens,41Reviewandpublishingguidelines,appstores,26Reviews,mobilelaunchstrategy,175Roboelectric,129RobotiumforAndroid,121–122nativeobjectrecognition,111OCR/textrecognition,111recordingtestscripts,122–123

RobotiumExtensions,122–123Robotiumprojectpages,122RobotiumRecorder,122–123Robotiumwikipage,122Rotategesture,42Rotatingtouchscreens,42RoutineBot,110

Page 259: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

SafariWebbrowservs.otherbrowsers,48Samsungappstore,25SauceLabs,36,150Scopeoftestingmaximumdevicescope,160multidevicescope,159–160single-devicescope,159use-casescope,160–161

Screenbrightness,testing,37Screens.SeeTouchscreens.Screenshotorvideo,inbugreports,101Securityhandlingfragmentation,35mobiledevicetestclouds,35

Securitytestingcachestorage,78client-sidevalidation,78commonappsecuritymistakes,77–79encryption,78fuzzing,77overview,76–77penetrationtesting,77securityrequirementsanalysis,79–80summary,80–81testingtools,77Top10MobileRisks,80unencryptedcommunications,78unintendedlocalstorage,78unnecessaryapppermissions,78

SeeTest,111SelendroidforAndroid,124–125nativeobjectrecognition,111

Selenium,111Sellingadvertisements,24

Page 260: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Sensors,testing.SeeMobiletesting,sensorsandinterfaces.Severityoferror,inbugreports,101SFDPOT(Structure,Function,Data,Platform,Operations,Time),88Sherry,Rosie,93–96Siesta,129Sikuli,110SilkMobileforAndroid,129foriOS,134

Simulatorsvs.emulators,51–52handlingfragmentation,35iOS,52mobiledevicetestclouds,35prosandcons,115–116vs.realdevices,51–52

Single-devicescope,159Smartglasses,204–205Smartwatches,203–204Smartphones.SeealsoMobiledevices;specificbrands.commonfeatures,5externalcomponents,15–16hardwarecomponents,15historyof,14–16marketpenetration,5post-2007,14–16

SOASTAforAndroid,129foriOS,134

Softwarebuildversion,inbugreports,100SoftwareTestingClub,196Soundinputs,testing,42–43SpecificationbyExample,196Specta,134Speedofmobilenetworks,historyof,11–13

Page 261: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Spoon,123–124Square,123,133Stabledata,mobileteststrategy,165Standardsconformance,testing,82Standbytesting,71STAREAST,196STARWEST,196Staticanalysistools,54Statictesting,53–55Statistics,mobilelaunchstrategy,176–177Statusbar,18Stepstoreproduce,inbugreports,98Strategyforproductlaunch.SeeMobilelaunchstrategy.fortesting.SeeMobileteststrategy.

Stresstesting,66–68Structure,Function,Data,Platform,Operations,Time(SFDPOT),88Subliminal,134Swipegesture,41Systemapps,testing,44

Tapgesture,41TapintoMobileApplicationTesting,92,196Targetdeviceselection,mobileteststrategy,166–167Targetgroupinformationgathering,mobileteststrategy,157–158TeamCity,137Tea-timewithTesters,197Technicalskills,testerskill,185Temperaturesensor,testing,39Temporarydata,mobileteststrategy,165Tenacity,testerskill,183TenKodEZTestAppforAndroid,129nativeobjectrecognition,111

Testautomation

Page 262: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

cloud-based,115–116,152emulators,prosandcons,115–116goalsfor,113–114guidelinesfor,114–115vs.manualtesting,52–53mobileteststrategy,162,170–171vs.mobiletesting,52–53realdevices,prosandcons,116–117selectingtasksfor,113–115simulators,prosandcons,115–116

Testautomationpyramiddefaultconfiguration,105–106flippedconfiguration,106–108mobiletestconfiguration,108–109

TestautomationtoolsAppium,111betadistribution,138–139Calabash,111captureandreplay,111–112coordinate-basedrecognition,110eggPlant,110,111Espresso,111imagerecognition,109MonkeyTalk,110,111NativeObjectRecognition,111OCR/textrecognition,110–111overview,109PerfectoMobile,110recommendations,112–113Robotium,111RoutineBot,110SeeTest,111selectioncriteria,118–120Selendroid,111Selenium,111

Page 263: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Sikuli,110TenKodEZTestApp,111TestObject,110,111

Testautomationtools,AndroidAdvancedUserInteractionsAPI,125Appium,127–128automatingUIacceptancetests,125CalabashforAndroid,125–126Cucumber,125–126eggPlant,129Espresso,128Experitest,129ExtSolo,122–123gesturesupport,125Gherkin,126GoogleInstrumentationTestRunner,128JamoSolutions,129Keynote,129MonkeyTalk,129overview,120–121PerfectoMobile,129Ranorex,129recommendations,129–130recordingtestscripts,122–123Roboelectric,129Robotium,121–122RobotiumExtensions,122–123RobotiumRecorder,122–123Selendroid,124–125settingGPSlocation,122Siesta,129SilkMobile,129SOASTA,129Spoon,123–124switchingcurrentlanguage,122

Page 264: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

TenKodEZTestApp,129TestObject,129togglingWi-Fionandoff,122UIAutomator,129UIAutomatorViewer,121

Testautomationtools,iOSAppium,134CalabashforiOS,131–132choosingaprogramminglanguage,132–133Experitest,134Frank,134GHUnit,134ios-driver,132–133JamoSolutions,134Keynote,134KIF(KeepItFunctional),133Kiwi,134MonkeyTalk,134OCMock,134PerfectoMobile,134Ranorex,134SilkMobile,134SOASTA,134Specta,134Subliminal,134UIAutomation,129–130XCTest,134Zucchini,134

Testdatainbugreports,100mobileteststrategy,164–166

Testenvironmentselection,mobileteststrategy,166–167Testlevels,mobileteststrategy,161–163Testscripts,recording,122–123Teststrategy.SeeMobileteststrategy.

Page 265: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Testtechniques,mobileteststrategy,163–164TestBash,196TestBirds,145TestChameleon,150testCloud,145Testdroid,150Testersblogs,196–197booksandpublications,196–197communities,196conferences,195–196namedinbugreports,102successfactors,207–209

Testers,requiredskillscommunication,179–181constantlearning,183–184creativity,184criticalthinking,181–182curiosity,181customerfocus,184–185programmingskills,185technicalskills,185tenacity,183

Testers,skillsimprovementcrashesonspecificdevices,187–192engagewiththemobilecommunity,194–195learnfromotherapps,186observeotherpeople,192–193participateintestingcompetitions,193–194Twitter,194

TestExpo,196TestFlight,139Testingapps.SeeMobiletesting.TestingCircus(community),196TestingCircus(magazine),197

Page 266: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Testingcompetitions,testerskillsimprovement,193–194TestingcriteriaforAndroidandiOS,103TestingMap,93Testingtoolsadjust,177appsfire,177AppsFlyer,177forautomation.SeeTestautomationtools.Checkstyle,54Clicktale,177FindBugs,54iMobiTrax,177JUnit,54Lint,54formobiletracking,177MobileAppTracking,177PMD,54staticanalysis,54TestNG,54whiteboxtesting,54XCTest,54

Testmunk,36,150TestNGtool,54TestObjectforAndroid,129imagerecognition,110mobilecloudtestingproviders,150mobiledevicetestcloud,36OCR/textrecognition,111

TestPlus,1453Gnetworks,13Time,displaying,18Timingoftherelease,173T-MobileG1smartphone,14Tools.SeeOnlineresources;Testingtools;specifictools.

Page 267: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Top10MobileRisks,80Touchgestures,41–42Touchlesssensor,testing,40Touchscreenscapacitive,41effectsofweatherconditions,42mobiletesting,41–42resistive,41rotating,42testing,41–42touchgestures,41–42typesof,41

TouchTest,36Tracking,mobilelaunchstrategy,176–177Trackingtools,177Transactionbusinessmodel,24Transceivers,cellphones,12TravisCI,137Trident,47Twitter,testerskillsimprovement,1942Gnetworks,12–13

UIacceptancetests,automating,125UIAutomation,129–130UIAutomator,129UIAutomatorViewer,121UMTS(UniversalMobileTelecommunicationsSystem),13Uninstalltesting,72Updatetestingadbtool,74–75forAndroidapps,74–75foriOSapps,73–74overview,72typicalscenarios,73

Uploadingappstoappstores,26

Page 268: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

Usabilityheuristics,57TheInmatesAreRunningtheAsylum,30principlesandtechniques,57

Usabilitytestingallowmistakes,58consistency,59corporateidentityguidelinesforlook-and-feel,59details,checking,58documentyourobservations,59–60invitingcustomersto,31–32lessismore,57navigation,checking,58overview,56self-explanatoryapps,57usabilityanddesignpatterns,58verifytext,59workflows,checking,58

Usabilitytestingsessions,31–32Usagescenarios,mobileteststrategy,168Usagestatistics,batterylife,64–66Use-casescope,160–161UserinterfaceAndroidvs.iOS,18components,viewingpropertiesof,121designprinciplesformobiledevices,57testing.SeeMobiletesting,sensorsandinterfaces.

Users,expectations.SeealsoCustomers.overview,2–3priorityappcharacteristics,2reasonsfordeletingapps,2

uTestcommunity,196

Visualimpairment,accessibilitytesting,60–61Voicecommands,testing,42–43

Page 269: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

W3C(WorldWideWebConsortium)accessibilityguidelinesinitiative,62conformancetesting,82

Wearablesfitnesswristbands,203–204GoogleGlass,204–205mobiletesting,203–204overview,203smartglasses,204–205smartwatches,203–204

Weatherconditionseffectsontouchscreens,42testing,4

Webapps,description,22–23Webbrowserlayoutengines,47Webbrowsers.SeeMobileWebbrowsers.WebKit,47WeekendTesting,193–194Whiteboxtestingmobileteststrategy,163toolsfor,54

WidgetsiOSvs.Android,18testing,187–189

Wi-Fi,togglingonandoff,122WiMAX(WorldwideInteroperabilityforMicrowaveAccess),13WindowsPhoneaccessibilityguidelines,63accessibilitytesting,63appstore,26relativemarketshare,16

WindowsPhoneapps,downloading,26Work-around,inbugreports,98WorldwideInteroperabilityforMicrowaveAccess(WiMAX),13

Page 270: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

XamarinTestCloud,36,150XCTest,134XCTesttool,54

0Gnetworks,12Zucchini,134

Page 271: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 272: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 273: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 274: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 275: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and

CodeSnippets

Page 276: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 277: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 278: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 279: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 280: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 281: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 282: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 283: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 284: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 285: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 286: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 287: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 288: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 289: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 290: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and
Page 291: About This eBook - تیستنtisten.ir/wp-content/uploads/2019/02/Daniel-Knott-Hands-On-Mobile-… · Mobile Usability Testing Accessibility Testing Battery Usage Testing Stress and