Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
MOET    https://github.com/eing/moet       Mobile End-to-End Testing       Mobile Exploratory Testing                Eing ...
Mobileautomationtechnologies1•  Two categories      •  Instrumented technique      •  Non-instrumented technique•  What is...
Advantagesofbothtechniques1Non$instrumentation-                    Instrumentation-•  Deviceplatformagnostic1            •...
WhichtechniqueshouldIuse?1  Non-instrumentation                     Instrumentation                      External3        ...
Mobileautomationtools1 Mobile3-       Non$                 Instrumentation-  OS-     instrumentation- Android1 eggPlant,Si...
MOET1                                 Test•  Think design                  Login(“user1”,”passwd1”)  o  Interfaces  o  Cre...
AnatomyofMOET1             Mobile3Application3Interface-              Device3Independent3Tests-                     Runtim...
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 instru...
AndroidWallofPain110.  There’s more to test execution   o  Command with report file generation :       adb shell am instru...
iOSWallofPain18.  iOS simulator…the singleton pattern  o    Multiple instances of simulator  o    Headless execution7.  Wh...
iOSWallofPain18.  iOS simulator…the singleton pattern  o    Multiple instances of simulator  o    Headless execution7.  Wh...
iOSWallofPain18.  iOS simulator…the singleton pattern  o    Headless execution  o    Multiple instances of simulator7.  Wh...
iOSWallofPain15.  Where’s the IDE plugin ?  o    Code formatting  o    API completion  o    Breakpoints, debugger  o    “j...
Allmobileplatforms14.  Problem ? Search ?  o  Blogs, stackoverflow, developer groups for devices, etc.  o  Mobile testing ...
Allmobileplatforms13.  How about a mobile test report ?  o  Mobile test report standard e.g. mobile-test-report.xml      •...
Allmobileplatforms13.  How about a mobile test report?  o  Mobile test report standard e.g. mobile-test-report.xml      • ...
Allmobileplatforms11.  Yet another proprietary language?  o  Open sourced test harness & language for      •  Instrumented...
Nextsteps1Eclipse mobile       Test        Test        Test       Continuoustesting plugin   development   execution   rep...
Upcoming SlideShare
Loading in …5
×

MOET: Mobile End-to-End Testing

2,386 views

Published on

  • Be the first to comment

MOET: Mobile End-to-End Testing

  1. 1. MOET https://github.com/eing/moet Mobile End-to-End Testing Mobile Exploratory Testing Eing Ong Intuit, Inc. @eingong|eing.ong@intuit.com1 1
  2. 2. 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
  3. 3. 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
  4. 4. WhichtechniqueshouldIuse?1 Non-instrumentation Instrumentation External3 interaction- Hardware3 Text$based3 interaction- features- Image3based3 features- 4
  5. 5. 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
  6. 6. 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
  7. 7. AnatomyofMOET1 Mobile3Application3Interface- Device3Independent3Tests- Runtime binding Simulator/Device libraries Android3application3 iPhone3application3 implementation- implementation- Android3MonkeyRunner3 iPhone3Sikuli3Library- Library- 7
  8. 8. Top Ten Wish List a.k.a. Mobile test automation Wall of Pain8 8
  9. 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 9
  10. 10. 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
  11. 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 11
  12. 12. 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
  13. 13. 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
  14. 14. 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
  15. 15. 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
  16. 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.  Wireless? o  OTA app installation o  Testing via wifi and carrier networks o  Selenium grid-like test infrastructure 16
  17. 17. 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
  18. 18. Allmobileplatforms11.  Yet another proprietary language? o  Open sourced test harness & language for •  Instrumented tests •  Non-instrumented tests •  Hybrid apps tests 18
  19. 19. 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

×