MOET: Mobile End-to-End Testing
Upcoming SlideShare
Loading in...5
×
 

MOET: Mobile End-to-End Testing

on

  • 1,885 views

 

Statistics

Views

Total Views
1,885
Views on SlideShare
1,880
Embed Views
5

Actions

Likes
0
Downloads
19
Comments
0

1 Embed 5

https://twitter.com 5

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution-NonCommercial LicenseCC Attribution-NonCommercial License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

MOET: Mobile End-to-End Testing MOET: Mobile End-to-End Testing Presentation Transcript

  • MOET https://github.com/eing/moet Mobile End-to-End Testing Mobile Exploratory Testing Eing Ong Intuit, Inc. @eingong|eing.ong@intuit.com1 1
  • Mobileautomationtechnologies1•  Two categories •  Instrumented technique •  Non-instrumented technique•  What is instrumentation? •  Tests are compiled with the app •  Tests are installed & launched with the app •  Source code is required and may need to be modified •  Only one app can be executed at a time •  White box approach 2
  • Advantagesofbothtechniques1Non$instrumentation- Instrumentation-•  Deviceplatformagnostic1 •  Elementscanbeaccessed1•  Testcodereuse1 •  Debuggingease1•  Testlanguage&testharness •  Testverificationease1 autonomy1 •  Reducetoolsdependencies1•  Supportfor1 •  Supportfor1 Multi>applicationstesting1 Installingapplication1 CustomcompositeUIelements1 Launchingapplication1 Database/serverAPIassertions1 Cleanup(killapplication)1 Useofexternallibraries1 Testexecutionondevice1 (e.g.hardware/imagelibraries)1 Codecoverage1 3
  • WhichtechniqueshouldIuse?1 Non-instrumentation Instrumentation External3 interaction- Hardware3 Text$based3 interaction- features- Image3based3 features- 4
  • Mobileautomationtools1 Mobile3- Non$ Instrumentation- OS- instrumentation- Android1 eggPlant,Sikuli,MOET, Robotium,Calabash, MonkeyRunner1 MonkeyTalk1 iOS1 eggPlant,Sikuli,MOET1 UIAutomation,KIF, iCuke,Frank,UISpec, Zucchini,Bwoken, Calabash,MonkeyTalk, Applecart,iOS>driver1 5
  • MOET1 Test•  Think design Login(“user1”,”passwd1”) o  Interfaces o  Creational pattern iPhone implementation touch(100,100)•  Think reuse enter(username) touch(100,200) o  Device independent tests enter(password)•  Think One touch(150, 300) o  IDE o  Test harness and language iPhone Sikuli library void enter() void touch(x,y) 6
  • AnatomyofMOET1 Mobile3Application3Interface- Device3Independent3Tests- Runtime binding Simulator/Device libraries Android3application3 iPhone3application3 implementation- implementation- Android3MonkeyRunner3 iPhone3Sikuli3Library- Library- 7
  • Top Ten Wish List a.k.a. Mobile test automation Wall of Pain8 8
  • AndroidWallofPain110.  There’s more to test execution o  Command with report file generation : adb shell am instrument -w -e reportFile junit-report.xml com.intuit.test/com.zutubi.android.junitreport.JUnitReportTestRunner o  Date-time fix if using device snapshots : adb shell date -s `date +"%Y%m%d.%H%M%S”`9.  Where are the test results ? o  Pulling results from device : adb pull /data/data/com.intuit.test/files/junit-report.xml junit- report.xml 9
  • AndroidWallofPain110.  There’s more to test execution o  Command with report file generation : adb shell am instrument -w -e reportFile junit-report.xml com.intuit.test/com.zutubi.android.junitreport.JUnitReportTestRunner o  Date-time fix if using device snapshots : adb shell date -s `date +"%Y%m%d.%H%M%S”`9.  Where are the test results ? o  Pulling results from device : adb pull /data/data/com.intuit.test/files/junit-report.xml junit- report.xml 10
  • iOSWallofPain18.  iOS simulator…the singleton pattern o  Multiple instances of simulator o  Headless execution7.  What test harness ? o  Test grouping, test assertions, base test class o  Results needs to be displayable in browser6.  How about a CI plugin o  Test execution o  Code coverage 11
  • iOSWallofPain18.  iOS simulator…the singleton pattern o  Multiple instances of simulator o  Headless execution7.  What test harness ? o  Test grouping, test assertions, base test class o  Results needs to be displayable in browser6.  How about a CI plugin o  Test execution o  Code coverage 12
  • iOSWallofPain18.  iOS simulator…the singleton pattern o  Headless execution o  Multiple instances of simulator7.  What test harness ? o  Test grouping, test assertions, base test class o  Results needs to be displayable in browser6.  How about a CI plugin o  Test execution o  Test results o  Code coverage 13
  • iOSWallofPain15.  Where’s the IDE plugin ? o  Code formatting o  API completion o  Breakpoints, debugger o  “javadoc” help o  One click test execution of test method/testsuite 14
  • Allmobileplatforms14.  Problem ? Search ? o  Blogs, stackoverflow, developer groups for devices, etc. o  Mobile testing one-stop tips & tricks (not questions) o  Community driven effort Tip – Remove authorization prompt Administrative rights Update /etc/authorization <key>system.privilege.taskport</key> <dict> <key>allow-root</key> <!-- previous value <false/> --> <true/> Tip – Clean cache, preferences, SQLite ~/Library/Application Support/iPhone Simulator/{SDK}/Applications/<uuid> Library: Preferences, Caches Documents: sqlite3 <app>.sqlitedb 15
  • Allmobileplatforms13.  How about a mobile test report ? o  Mobile test report standard e.g. mobile-test-report.xml •  Screenshots and video recording of failed tests •  Device logs •  Device detection2.  Wireless? o  OTA app installation o  Testing via wifi and carrier networks o  Selenium grid-like test infrastructure 16
  • Allmobileplatforms13.  How about a mobile test report? o  Mobile test report standard e.g. mobile-test-report.xml •  Screenshots and video recording of failed tests •  Device logs •  Device detection2.  Mobile testing is anything but mobile o  OTA app installation and execution o  Testing via wifi and carrier networks o  Test tool independent component o  Selenium grid-like test infrastructure 17
  • Allmobileplatforms11.  Yet another proprietary language? o  Open sourced test harness & language for •  Instrumented tests •  Non-instrumented tests •  Hybrid apps tests 18
  • Nextsteps1Eclipse mobile Test Test Test Continuoustesting plugin development execution reporting integration Mobile3Application3Interface- Device3Independent3Tests- Runtime binding Simulator/Device libraries Non$instrumented3 Instrumented3application3 application3implementation- implementation- Monkey$ Sikuli- ?Android?- ?iOS?3- Runner- 19