/
todrivemanygamesandnavigationapps,butthesesensorsarenotexposedattheGUI todrivemanygamesandnavigationapps,butthesesensorsarenotexposedattheGUI

todrivemanygamesandnavigationapps,butthesesensorsarenotexposedattheGUI - PDF document

alexa-scheidler
alexa-scheidler . @alexa-scheidler
Follow
372 views
Uploaded On 2015-10-11

todrivemanygamesandnavigationapps,butthesesensorsarenotexposedattheGUI - PPT Presentation

cordandR eplayforAN droidarecordandreplaytoolthataddressesthesechallengesinthecontextofAndroidapplicationsRERANdirectlycapturesandreplaysthelowleveleventsthataretriggeredonthedeviceThisapproach ID: 156969

cordandR eplayforAN droid) arecord-and-replaytoolthataddressesthesechallengesinthecontextofAndroidapplications.RERANdirectlycapturesandreplaysthelow-leveleventsthataretriggeredonthedevice.Thisapproach

Share:

Link:

Embed:

Download Presentation from below link

Download Pdf The PPT/PDF document "todrivemanygamesandnavigationapps,butthe..." is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

todrivemanygamesandnavigationapps,butthesesensorsarenotexposedattheGUIlevel.OnesuchappisGoogleMapsStreetView,whichusesthecompasssensortodetectphoneorientation(withrespecttomagneticNorth)inordertoorienttheon-screenmapcorrectly.Finally,theaccuracyofeventtimingduringbothcaptureandreplayiscrucial.Forexample,aswipethatiscapturedtooslowlywillreplayasasequenceofbuttonpresses,andthetimingbetweenexternaleventsanduser-interfaceactionscanbesimilarlycrucial.Indeed,wefoundthatdelaysasshortasmillisecondscanadverselyimpactthereplayprocess.InthispaperwepresentRERAN(RE cordandR eplayforAN droid),arecord-and-replaytoolthataddressesthesechallengesinthecontextofAndroidapplications.RERANdirectlycapturesandreplaysthelow-leveleventsthataretriggeredonthedevice.ThisapproachallowsRERANtocaptureandplaybackGUIevents,i.e.,touchscreengestures(e.g.,tap,swipe,pinch,zoom),aswellasthosefromothersensorinputdevices(e.g.,accelerometer,lightsensor,com-pass).Incontrast,priorreplaytoolsforAndroid[2],[6],[7],whicharebasedonthekeywordactionparadigm,onlyreplaytouchscreenpressesandcannothandletouchscreengesturesorothersensorinputs.RERANworksinanatural,1non-intrusive,andlow-effortway:duringrecord,acapturecomponentreadstheevents,withnonoticeableimpactonexecution.Thiscontrastswithmanykeyword-action-basedapproaches,whichrequiremanualscriptingoftestcasesratherthandirecttracecollection[3]–[5].Duringreplay,aphone-basedreplayagentfeedstheeventstothephone,andthephoneactsasitwouldifthesensorinputcamefromuserorenvironmentinteraction.RERANiscarefullydesignedtomanagethelargenumberoflow-leveleventsthatoccurduringexecutionandtorecordandreplaythemwithprecisetimings.RERANiscurrentlyunabletoreplaysensorswhoseeventsaremadeavailabletoapplicationsthroughsystemservicesratherthanthroughthelow-leveleventinterface(e.g.,cameraandGPS).RERANalsodoesnotcaptureothersourcesofnondeterminisminapplications,forexampleuseofrandom-numbergeneratorsandaccesstothelesystem.Providingfullydeterministicreplaywouldrequireasignicantlymoreheavyweightsolution,forexample,involvingmodicationstothevirtualmachineand/orcompleteinterpositionbetweentheappandtheunderlyingplatform.Despitetheselimitations,wedemonstratethatRERANisusefulinseveralways.First,wewereabletorecordandsuccessfullyreplayexecutiontracesfor86outoftheTop-100freeAndroidappsonGooglePlay(themainAndroidappdistributionchannel).Moreover,RERANreplaysinnearlyrealtime,withanoverheadofjustover1%comparedtotheoriginalexecution.Second,RERANisapowerfuldebuggingaidbecauseitcancaptureandreplayeventsequencesthatleadtocrashesin1RERANrequiresthedevicetobe“rooted”inordertoexecutethereplayagent,whichwebelieveisareasonableassumptionfortheintendedusersofRERAN,researchersanddevelopers. Fig.1.Distributionofgesturesinthe86appsreplayablewithRERAN.apps,whichhelpsdevelopersinspectsystemstatearoundacrashpoint.Inparticular,wedemonstratehow,usingRERAN,wewereabletoreproduceandreplaybugsinwidely-usedappsincludingFirefox,Facebook,K-9Mail,andQuickofce.Third,RERANhassupportfortimewarpingwhichallowstheexecutionofcertainappstobefast-forwardedinordertoreachaspecicappstatefasterthanintheoriginalexecution,andwithoutanyadditionalmanualinput.Wefoundthatthereplaytimefortime-warpableappscanbereducedby22to68percentcomparedtotheoriginalexecution.Theremainderofthispaperisorganizedasfollows.Sec-tionIIintroducestheAndroidinputeventsandsensorclasses,aswellaseventgeneration,delivery,andprocessing.Sec-tionIIIprovidesanoverviewofourapproachandthechal-lengesthataccuraterecord-and-replayposefortouchscreen-basedsmartphones.InSectionIVwediscusstheexperimentalmethodologywefollowed,theimplementationofRERAN,resultsofrunningitonTop-100GooglePlayapps,andperformanceoverhead.SectionVpresentsthreeapplicationsofusingRERANforresearchanddevelopmenttasks:repeata-bility,reproducingbugs,andtimewarping.InSectionVIwediscusslimitationsofourapproachandrecord-and-replayonAndroidingeneral.SectionVIIdiscussesrelatedwork,andinSectionVIIIwepresentourconclusions.II.ANDROIDINPUTSInthissectionwedescribethediversekindsofinputsthatAndroidappscanaccept,aswellashowtheseinputsarerepresentedinternallyasevents.A.TouchscreenUserActionsSmartphoneappsaredistinguishedinpartbytheexpressivevarietyofuseractionspossiblethroughtouchscreens.Webrieydescribethemostcommonones:Press-and-Release:Theprimaryinputactionisthesim-plepress,inwhichtheusertapsanareaonthescreenandreleasesquickly,e.g.,clickingabuttonortypingtextwiththeon-screenkeyboard.Press-and-Hold:Thepressandholdconsistsoftheusertappinganareaonthescreenandreleasingafterholding,inthesameposition,pastsomethresholdamountoftime.Thisactioncanbeusedtoaccesssecondarymenusorhiddenoptions. Fig.3.TimeseriesofeventsinGasBuddy. Fig.2.Seriesofeventsrepresentingaswipe;Xi,Yiaretheinitialstartingcoordinates,Xm,Ymarethecoordinatesduringmoving(stillholdingdown),andXf,Yfarethenalcoordinates.orientation.Inthefourthphase,theuserbrowsesgaspricesforanindividualstation(seconds46–60),whichrequiresscrollingandnocompass.Finally(seconds61+)theusernavigatesagainthroughthestationsmapusingpinchandzoom,whichgeneratesbothtouchscreenandcompassevents.Thetimeseriesrevealsseveralkeyrequirementsforsuccess-fulreplay:eventsfromallsensors,notonlythetouchscreen,mustbecapturedanddelivered,astheyinuenceappbehavior;andeventsmustbecapturedanddeliveredathighthroughput.WeprovideabroaderquantitativeassessmentoftypicaleventvolumeinTableI.Thetableshowsthetotalnumberofeventsreceivedfromthreeinputdevices,capturedduringa5-minuterunoftheapplisted.Touchscreeneventsdominate,TABLEINUMBEROFINPUTEVENTSPERINPUTDEVICEDURINGA5-MINUTERUN. Appname Touchscreen Proximitysensor Accelerometer Facebook 6,199 701 6 AngryBirds 5,895 675 3 GasBuddy 4,723 273 15 Amazon 4,831 779 4 howevertherearealsoasignicantnumberofeventsfromsensors.Forallappsthephonewaskeptatonatableduringexecution,whichaccountsforthesmallnumberofreportedaccelerometerevents.III.APPROACHOVERVIEWWenowpresentanoverviewofourapproach,itstechnicalchallenges,anditsadvantagesoverpriorrecord-and-replayap-proaches.GoogleprovidestheAndroidSoftwareDevelopmentKit(SDK),whichcontainsvarioustoolstoaidappdevelopersinimplementation,testing,anddebugging.SeveralofthesetoolswereusedinthedevelopmentofRERAN.Thehigh-levelviewispresentedinFigure4.Recordorreplaycanbestartedfromeitherthephone,usingtheAndroidTerminalEmulator[9]appavailableforfreeonGooglePlay,orfromacomputerconnectedtothephoneviaaUSBcable.TheAndroidDebugBridge(ADB),accessiblethroughtheadbcommandintheAndroidSDK,andAndroidTerminalEmulatoractastheinterfacebetweenRERANandthesmart-phone.Commandscanbeissuedtothesmartphone'sOSviatheseshells.Weusedthisabilitybothtorecordeventsandtoreplaythem.A.RecordWeusetheAndroidSDK'sgeteventtool,whichreadsthe/dev/input/event*lesinordertoprovidealivelog(trace)oftheinputeventsonthephone,asshownonthetopofFigure4.Theperformanceoftheappisunaffectedduringlogging.Oncelogginghasended,RERAN'srecordphasetranslatesthecapturedtraceandcreatestheeventtracelethatisreadytobereplayed.Duringtranslation,allthe TABLEIITHE86OUTOFTOP-100APPSINTHEU.S.VIEWOFGOOGLEPLAY(ASOFMAY6,2012)THATRERANCANREPLAY. Appname AdobeAIR CraigslistMobile FeedYourDinoFree IMDB RunningFred VisualAnatomy AdobeFlashPlayer CrimeCity GasBuddy Instagram SincerelyInkCards WeatherBug AdobeReader DailyHoroscope GoogleDrive Kindle SkyMap WeatherChannel AmazonMobile DanceLegend GoogleEarth Maps Skype WhatsAppMessenger AngryBirdsRio DeathRallyFree GoogleMapsStreetView MotoPrint SlackerRadio Where'sMyWater AngryBirdsSeasons Dictionary GooglePlayBooks MoviesbyFlixster SlotCityMachines WordSearch AngryBirdsSpace DocumentsToGo GooglePlayMusic MP3RingtoneMaker StickManBMXStunts YellowPages BackgroundHDWallpapers DragRacing GooglePlayMovies Myxer TalkingTom2 Yelp BaseballSuperstars2012 DragRacing-BikeRacing GooglePlus Netix TED YouTube BBCNews DrawSomething GoogleSearch NBAGametime Textgram Zedge Bible EasyBatterySaver GoogleTranslate OneTouchDrawing TouchNotePostCards Zinio BMXBoy eBay Groupon Picsart Tunewiki BrightestFlashlight ESPNScoreCenter HeartRadio PoolMasterPro Twitter BubbleShoot Evernote HowtoReadThoughts PulseNews UnblockMeFree ColorNote Facebook iFunny RecipeSearch UnicornDash TABLEIIITHEPERFORMANCEANDSPACEOVERHEADOFRERANON4POPULARAPPSAVERAGEDOVER5USERSESSIONS. Appname Run-timeoverhead Tracesize Original Replay Overhead (seconds) (seconds) (%) (KB) Facebook 291.04 294.12 1.05 260.43 AngryBirds 296.81 300.05 1.08 359.76 Dictionary 262.83 264.11 0.48 117.85 GasBuddy 254.14 256.81 1.04 244.62 thephoneviaadb.However,asdescribedearlier,thatsolutiondidnotachievethemicrosecondaccuracyneededforgestures.RERANsupportsselectivereplay,wherebytheusercansuppressentireclassesofevents.Thiscanbeespeciallyhelpfulwhentheuseristryingtoisolatetherootcauseofabug.Itcanalsoreduceoverheadwhenreplayinganappthatneverusesaparticularsensorinput,suchastheaccelerometer.Thecompiledreplayagentisuploadedtothephoneviaadbandtakesatracele(eventsetandtheirtiming)asargument.Inordertoexecuteonthephone,systempermissionsmustbechanged,whichrequiresthephonetoberooted.Thereplayagentrunsinaseparateprocessfromthereplayedapp.D.AchievementsOftheTop-100appsonGooglePlay,wewereabletosuccessfullyreplay86;welistthenamesofthese86appsinTableII.NotethattheseappsspanavarietyofcategoriesfromSocialMediatoProductivitytoGames,demonstratingthewidescopeofRERAN'spracticalutility.InSectionVIwediscussthereasonswhyreplayisnotpossiblefortheremaining14appsinTop-100.E.TimeandSpaceOverheadWemeasuredtimeandspaceoverheadsfor4sampleapps,usingtracesfrom5differentusers.WepresenttheresultsinTableIII.First,wecomparedthecompletiontimeoforiginalexecutionswiththecompletiontimeofreplayedexecutions.Columns2and3showtheaverageruntime,acrossthe5executions,oftheoriginalrunandofthereplayedrun;column4showsthetimeoverhead,near1%inallcases.Webelievethereplayoverheadislargelyduetothefactthateventinjectionisnotinstantaneous.Duringcapture,sometimesaninputdevicereportseventsasoccuringsimultaneously,i.e.,withthesametimestamp.Wewereabletomimicthisbywritingmultipleeventsintothestreamatonce.However,becausetheeventsarebeinginjectedprogramatically,ratherthanbeinggeneratedbythephysicaldevice,capturedsimultaneouseventsareonlyreplayedwithin500microsecondsofeachother.Despitethelag,itcausednonoticeabledifferencesinappbehavior.Thelastcolumnshowstheaveragelogsizeoftheeventscaptured.Asexpected,forthemoreinteractiveappsthatusemanygestures,e.g.,AngryBirds,thelogsizeishigherthanlessinteractiveapps,e.g.,Dictionary.AlltestswereconductedonthephysicaldevicesdescribedinSectionIV-A.V.REPLAYUSESTheabilitytoreplayarecordedexecutionhasmyriadapplications.InthissectionweillustrateseveralscenariosofhowRERAN'srecord-and-replaycapabilitiescanbebenecialtodevelopersandresearchers.A.RepeatabilitythroughTraceReplayRERANisabletoplaybackasetofinputeventsofaspecicsessionexactlyinthesamewayasitwasoriginallyrecorded.Thisincludestouchscreenevents,userproximityevents,aswellaschangesinphoneorientationsensedbytheaccelerometerandcompass.Incontrast,ifauserweretomanuallyrepeatasessiontryingtoreplicatethesameactionsasthepreviousrun,therecouldbeinconsistenciesandabnormalitieswhencomparedtotheoriginalrunduetohumanerrorandinconsistenttiming;thiscouldinturnleadtounfaithfulresultsoranundesiredoutcome.Replaycangreatlyhelpdevelopersandresearcherswhowishtoeliminateinaccurateandtime-consumingapptestingwhenrepetitionofasequenceisneeded.Infact,inourpriorresearch[10],weusedapreliminaryversionofRERANtoeliminatetheneedforconstantinteractionwithtesters:toprolenetworktrafcandotherappcharacteristics,weexamined10functionallyidenticalexecutionsofthesameappbyrecordingauser'sinteraction(execution#1)andreplayingit9times(executions#2through#10). virtualorphysicalkeypadandclickingbuttons.Theseeventsoccuronhumantimescalesandthushavesignicantroomforspeed-ups.Processingcontentreferstotheuserexaminingcontentonthescreen,anddecidingwhichactiontoperformnext,e.g.,pressabutton.ProcessingcontentcanalsotakeplaceafteraccessingdataonexternalserversviatheInternet(e.g.,theCNNandFacebookapps).Thesesituationscanbefast-forwardedbecausethereisalagbetweenthetimethatthecontenthasloadedandthetimetheuserperformsthenextinputaction.Wefast-forwardusingthreerulesthatwehavederivedempiricallyforourphonesandtestapps,butweexpectthegeneralprincipletoholdforothersetups.Therulesareasfollows:(a)iftheTDislessthan0.7seconds,thenwecompressthedelayto0.001seconds;(b)ifthedelayisgreaterthan3.0seconds,wecompressthedelayto3.0seconds,and(c)anydelaybetween0.7and3.0secondsisunchanged.Rule(a)triestoidentifyandfast-forwarddataentryfromtheuser.Thisrule,forexample,allowsdataentrytobegreatlyspedupinappsrequiringheavytextinputsuchasDictionaryandGoogleTranslate.Rule(b)accountsforthelongTDsduringexecutionthatcanoccurwhenauserisviewingcontentonthescreenordecidingwheretonavigatetonext.Forexample,thisoptimizationcanbeseeninthegasstationnderGasBuddy,inwhichtheuserviewsamapofgaspricesbeforeselectingone,creatinglongperiodsofdelay.Rule(c)preservesthespeedoftheexecutioninallothersituations.Despitethesimplicityoftheserules,wewereabletousethemsuccessfullytotime-warpmanyapps.VideodemosofRERANfast-forwardingareavailableonYouTube[1].Wepresenttheresultsoffast-forwardinginTableV.Foreachapp,incolumn2wepresenttheoriginalrun-time,incolumn3wepresenttherun-timewhenfast-forwarding,whilecolumn4showstherun-timereductionasapercentage.Notethat,ingeneral,appscanbespedupanywherefrom4%to68%.Certainapps,however(Quickofce,NPRNews,HomeSwitcher),couldnotbefast-forwardedduetoreasonsthatwewillexplainnext.UsesofFast-forwarding:Fast-forwardingcanshortenthetimetoreachacertainpointintheappwithoutrequiringmanualinput.Forexample,whiletestingafeatureaddedtooneoftheapp'sscreens,adevelopercouldusefast-forwardingtogreatlyreducethetimerequiredtogettothatscreen.Fast-forwardingcanalsobeusedincombinationwithRERAN'sabilitytoreproducebugsinordertospeedupdebuggingtime.Byfast-forwardingthereplay,theamountoftimetoreproducethecrash,i.e.,replaythestepstoreproduce,willbereduced,thussavingthedevelopertime.AsshowninTableV,wealsofast-forwardedthe9appsthathadreproduciblebugcrashes.Ineach,weranourtime-warpedreplayandfoundthat5appshadreducedrunningtime.Theremaining3appssawnoreductionandkepttheirpreviousrunningtime.Thisisduetotheappsnothavingdataentryorlongdelays(sowecouldnotapplyTABLEVAPPRUNTIME,INTHEORIGINALEXECUTIONANDREPLAYEDUSINGFAST-FORWARDING.BUGSREPRODUCEDARESHOWNINGRAY. Appname Run-time Reduction Original Fast-forwarded (seconds) (seconds) (%) Facebook1.9 249.71 162.93 34.75 Dictionary 238.49 144.31 39.49 GasBuddy 263.06 84.72 67.79 BBCNews 277.31 120.32 56.61 Craigslist 308.92 239.54 22.46 ESPNScore 314.22 244.95 22.05 Amazon 298.69 109.15 63.46 Movies 286.16 197.09 31.13 GoogleTranslate 308.66 211.63 31.44 Ankidroid 8.66 8.35 3.58 APVPDFviewer 10.93 8.17 25.25 Firefox 64.22 29.55 53.99 Soundcloud 29.34 25.79 12.10 K-9Mail 32.23 24.84 22.93 Facebook1.7.1 30.31 18.69 38.34 Quickofce 3.12 3.12 0.00 NPRNews 9.91 9.91 0.00 HomeSwitcher 7.99 7.99 0.00 TABLEVITHE14OUTOFTOP-100APPSTHATRERANCANNOTREPLAY. Non-replayablereason Appname RequiresAndroidsensorservice BarcodeScanner,TangoVideoCalls (e.g.,camera,microphone) VoiceSearch,VoxerWalkie-Talkie Dynamicorrandomelements Pandora,BoxingGame,FruitNinja (i.e.,nondeterminism) JewelsStar,ShootBubbleDeluxe Solitare,TempleRun,Tetris UnoFree,WordswithFriends rules(a)or(b)),andinsteadtheTDsstayedintherangeofourdo-not-alterrule(rule(c)),whichkepttheoriginalTD.VI.LIMITATIONSAsmentionedinSectionIV-D,RERANcouldreplay86oftheTop100-appsonGooglePlay.However,therewere14appswecouldnotreplay.Theseappsfellintotwomaincategories:appswhichrequiredanAndroidsensorserviceandappsthatcontaindynamicorrandomelements,asshowninTableVI.Wenowdiscussthemainreasonswhytheseappscannotbereplayed.RequiresAndroidsensorservice:Someappsrequiresen-sorinputthatRERANdoesnotrecord.Forexample,wecannotreplaytheBarcodeScannerappproperlywithoutcapturingtheidenticalbarcodeimagethatisfedasinputfromthecamera.Similarily,wecannotreplayVoxerWalkie-Talkiebecausetheapprequirescapturingaudiodatafromthemicrophone.InAndroid,thesetypesofinputcomefromsensorsthatarenotinstrumentedinthesamewayasthetouchscreenandaccelerometer(thatuse/dev/input/event*).Instead,duetoprivacyandsecurityissues,thesesensorsarenotopenlyaccessibleforcapturingandareprotectedbysystempermissions,e.g.,thedevice'scamera,microphone,andGPSlocation.Currently,wedonotcapturesuchsensors,astappingintosuchsourceswouldrequireanon-trivialextensiontooursystem,ataskweleavetofuturework. GUITAR[27]isaGUItestingframeworkforJavaandWindowsapplications.GUITARgenerateseventsequence-basedtestcasesforGUIapplications.Theirtechniquecangeneratetestcasesautomaticallyusingastructuraleventgenerationgraph.WhileGUITARprimarilytargetsJavadesk-topapplications,ithasrecentlybeenportedtoAndroidbyextendingAndroidSDK'sMonkeyrunnertooltoallowuserstocreatetheirowntestcaseswithapoint-and-clickinterfacethatcapturespressevents.However,GUITARdoesnotsupporttouchscreengestures,e.g.,swipeandzoom,orotherinputde-vices,e.g.,accelerometerandcompass.Inthepast,navigatingthroughaprogrambypointingandclickingwassufcientanduseful—outsideofthemobileworld,theprimaryinputdevicescapturedhavebeenmousemovementandkeyboardkeystrokes.However,assmartphonesbecomemoreadvanced,offeringgreaterfeaturesandinteractivitythroughaddeddevicesensorsandtheiruses,wearguethatinordertofaithfullyreplayuserinteractionallthesesensorsmustbeaccountedfor,notonlyasubsetofonedevice,i.e.,touchscreenpresses.C.DeterministicReplayAsubstantialbodyofworkhasfocusedondeterministicreplaybycapturingandreplayingeventsatthehardware[28],operatingsystem[29],orvirtualmachine[30]levels.Theseapproacheslogeventsthatmightintroducenon-determinism(I/O,threadscheduling,memoryaccesses,etc.)anddelivertheeventsintherightorderduringreplaytoensurethatthereplayedexecutionis(quasi)identicaltotheoriginalrun.Loggingoverheadvariesdependingonthenatureofthebenchmark,andaddingrecordandreplaycapabilitiestoanexistingsystemmightbequiteintrusive.Weexploreadifferentpointinthedesignspace:wedonotaimtoachievedeterministicreplay,butinsteadfocusonaneffectiveapproachandtoolthatusesstandardsoftware,hardware,andisminimallyintrusive,yetneverthelesscanreplay86outoftheTop-100popularapps.VIII.CONCLUSIONSWehavepresentedRERAN,anapproachtorecord-and-replayfortheAndroidplatform.Ourresearchwasmoti-vatedbythenoveltyandpopularityoftouchscreen-basedplatformsandapps,theuniquechallengesassociatedwithreplayingtheseapps,andthebroadapplicabilityofrecord-and-replaytechniqueswhentacklingresearchandpracticaltasksonAndroid.Bydirectlycapturingthelow-leveleventstreamonthephoneandreplayingitwithprecisetiming,RERANcaneasilyreproducecomplexGUIgesturesaswellasothersensorinputs.Theresultisanoninvasiveyetveryeffectiverecord-and-replayapproachthatworksforthevastmajorityofpopular,real-worldappsinGooglePlay'sTop-100.Moreover,wehavedemonstratedthattheapproachcanbeappliedsuccessfullyforrepeatability,bugreproducibility,andexecutiontime-warping.ACKNOWLEDGMENTSWethankShashankKothapalliforhisassistanceincollect-ingusertraces.ThisworkwassupportedinpartbyNationalScienceFoundationawardsCNS-1064646,CNS-1064844,andCNS-1143627,andbyaGoogleResearchAward.REFERENCES[1]“RERAN:RecordandReplayforAndroidVideoDemo,”August2012,http://www.youtube.com/user/RERAN2012.[2]SourceForge,“AndroidGUITAR,”August2012,http://sourceforge.net/apps/mediawiki/guitar/index.php?title=Android GUITAR.[3]TimothyWall,“AbbotframeworkforautomatedtestingofJavaGUIcomponentsandprograms,”August2012,http://abbot.sourceforge.net.[4]Hewlet-PackardCompany,“HPFunctionalTesting,”August2012.[5]IBM,“RationalRobot,”August2012,www.ibm.com/software/awdtools/tester/robot/.[6]D.Amaltano,A.R.Fasolino,andP.Tramontana,“Aguicrawling-basedtechniqueforandroidmobileapplicationtesting,”inICSTW'11,pp.252–261.[7]Nodobo,“NodoboCapture:MobileDataRecordingforAnalysingUserInteractionsinContext,”2011.[8]AndroidDevelopers,“SensorEvent,”August2012,http://developer.android.com/reference/android/hardware/SensorEvent.html#values.[9]GooglePlayAndroidapps,“AndroidTerminalEmulator,”August2012,https://play.google.com/store/apps/details?id=jackpal.androidterm.[10]X.Wei,L.Gomez,I.Neamtiu,andM.Faloutsos,“Proledroid:multi-layerprolingofandroidapplications,”inMobiCom'12,pp.137–148.[11]M.Jovic,A.Adamoli,D.Zaparanuks,andM.Hauswirth,“Automatingperformancetestingofinteractivejavaapplications,”inAST'10,pp.8–15.[12]J.FlinnandZ.M.Mao,“Candeterministicreplaybeanenablingtoolformobilecomputing?”inHotMobile'11,pp.84–89.[13]J.Mickens,J.Elson,andJ.Howell,“Mugshot:deterministiccaptureandreplayforjavascriptapplications,”inNSDI'10,pp.159–174.[14]DanielHerdingandChristianSpannagel,“Jacareto,”August2012,http://sourceforge.net/apps/mediawiki/jacareto/.[15]MatthewPekar,“Pounder-JavaGUITestingUtility,”August2012,http://pounder.sourceforge.net/.[16]DakshinamurthyKarra,“Marathon,”August2012,http://www.marathontesting.com/.[17]P.A.BrooksandA.M.Memon,“Automatedguitestingguidedbyusageproles,”inASE'07,pp.333–342.[18]A.C.R.Paiva,J.a.C.P.Faria,N.Tillmann,andR.A.M.Vidal,“Amodel-to-implementationmappingtoolforautomatedmodel-basedguitesting,”inProceedingsofthe7thinternationalconferenceonFormalMethodsandSoftwareEngineering,pp.450–464.[19]J.Steven,P.Chandra,B.Fleck,andA.Podgurski,“jrapture:Acap-ture/replaytoolforobservation-basedtesting,”inISSTA'00,pp.158–167.[20]L.B.KaraandT.F.Stahovich,“Animage-based,trainablesymbolrecognizerforhand-drawnsketches,”inComputers&Graphics,vol.29,no.4,pp.501-517,2005.[21]AndroidDevelopers,“Layouts,”August2012,http://developer.android.com/guide/topics/ui/declaring-layout.html.[22]S.H.Khandkar,S.M.Sohan,J.Sillito,andF.Maurer,“ToolSupportforTestingComplexMulti-TouchGestures,”inACMInternationalConferenceonInteractiveTabletopsandSurfaces,pp.59–68.[23]S.H.KhandkarandF.Maurer,“ADomainSpecicLanguagetoDeneGesturesforMulti-TouchApplications,”inProceedingsofthe10thWorkshoponDomain-SpecicModeling,pp.2:1–2:6.[24]AndroidDevelopers,“UI/ApplicationExerciserMonkey,”August2012,http://developer.android.com/tools/help/monkey.html.[25]——,“MonkeyRunner,”August2012,http://developer.android.com/guide/developing/tools/monkeyrunner concepts.html.[26]GoogleCode,“Robotium,”August2012,http://code.google.com/p/robotium/.[27]AtifMemon,“GUITAR,”August2012,guitar.sourceforge.net/.[28]S.Narayanasamy,G.Pokam,andB.Calder,“Bugnet:Continuouslyrecordingprogramexecutionfordeterministicreplaydebugging,”inISCA'05,pp.284–295.[29]S.M.Srinivasan,S.Kandula,C.R.Andrews,andY.Zhou,“Flashback:alightweightextensionforrollbackanddeterministicreplayforsoftwaredebugging,”inUSENIXAnnualTechnicalConference,2004,pp.29–44.[30]G.W.Dunlap,S.T.King,S.Cinar,M.A.Basrai,andP.M.Chen,“Revirt:enablingintrusionanalysisthroughvirtual-machineloggingandreplay,”inOSDI'02,pp.211–224.

Related Contents


Next Show more