SlideShare a Scribd company logo
MOET
    https://github.com/eing/moet
       Mobile End-to-End Testing
       Mobile Exploratory Testing

                Eing Ong
               Intuit, Inc.
         @eingong|eing.ong@intuit.com




1
                                        1
Mobile  automation  technologies	

•  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
Advantages  of  both  techniques	

Non-­‐‑instrumentation	
                    Instrumentation	

•  Device  platform  agnostic	
             •    Elements  can  be  accessed	
•  Test  code  reuse	
                      •    Debugging  ease	
•  Test  language  &  test  harness         •    Test  verification  ease	
   autonomy	
                               •    Reduce  tools  dependencies	
•  Support  for	
                           •    Support  for	
    Multi-­‐‑applications  testing	
              Installing  application	
    Custom  composite  UI  elements	
             Launching  application	
    Database/server  API  assertions	
            Cleanup  (kill  application)	
    Use  of  external  libraries	
                Test  execution  on  device	
      (e.g.  hardware/image  libraries)	
         Code  coverage	



                                                                                   3
Which  technique  should  I  use  ?	

  Non-instrumentation                          Instrumentation

                       External  
                      interaction	
           Hardware                   Text-­‐‑based  
          interaction	
                features	

                   Image  based  
                     features	




                                                                 4
Mobile  automation  tools	

  Mobile  	
       Non-­‐‑                  Instrumentation	
   OS	
      instrumentation	
  Android	
 eggPlant,  Sikuli,  MOET,   Robotium,  Calabash,  
            MonkeyRunner	
              MonkeyTalk	

    iOS	
    eggPlant,  Sikuli,  MOET	
 UIAutomation,  KIF,  
                                        iCuke,  Frank,  UISpec,  
                                        Zucchini,  Bwoken,  
                                        Calabash,  MonkeyTalk,  
                                        Applecart,  iOS-­‐‑driver	



                                                                      5
MOET	
                                 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
Anatomy  of    MOET	

             Mobile  Application  Interface	


              Device  Independent  Tests	
                     Runtime binding
  Simulator/Device libraries
     Android  application       iPhone  application  
       implementation	
           implementation	
    Android  MonkeyRunner  
                               iPhone  Sikuli  Library	
            Library	



                                                           7
Top Ten Wish List
            a.k.a.
    Mobile test automation
         Wall of Pain




8
                             8
Android  Wall  of  Pain	

10.  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
Android  Wall  of  Pain	

10.  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
iOS  Wall  of  Pain	

8.  iOS simulator…the singleton pattern
  o    Multiple instances of simulator
  o    Headless execution

7.  What test harness ?
  o  Test grouping, test assertions, base test class
  o  Results needs to be displayable in browser

6.  How about a CI plugin
  o  Test execution
  o  Code coverage


                                                       11
iOS  Wall  of  Pain	
8.  iOS simulator…the singleton pattern
  o    Multiple instances of simulator
  o    Headless execution

7.  What test harness ?
  o  Test grouping, test assertions, base test class
  o  Results needs to be displayable in browser

6.  How about a CI plugin
  o  Test execution
  o  Code coverage



                                                       12
iOS  Wall  of  Pain	
8.  iOS simulator…the singleton pattern
  o    Headless execution
  o    Multiple instances of simulator

7.  What test harness ?
  o  Test grouping, test assertions, base test class
  o  Results needs to be displayable in browser

6.  How about a CI plugin
  o  Test execution
  o  Test results
  o  Code coverage


                                                       13
iOS  Wall  of  Pain	

5.  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
All  mobile  platforms	

4.  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
All  mobile  platforms	

3.  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 detection

2.  Wireless?
  o  OTA app installation
  o  Testing via wifi and carrier networks
  o  Selenium grid-like test infrastructure



                                                               16
All  mobile  platforms	

3.  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 detection

2.  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
All  mobile  platforms	

1.  Yet another proprietary language?
  o  Open sourced test harness & language for
      •  Instrumented tests
      •  Non-instrumented tests
      •  Hybrid apps tests




                                                18
Next  steps	

Eclipse mobile       Test         Test        Test        Continuous
testing plugin   development    execution   reporting     integration


                 Mobile  Application  Interface	
                    Device  Independent  Tests	
                          Runtime binding
   Simulator/Device libraries
         Non-­‐‑instrumented       Instrumented  application  
     application  implementation	
      implementation	
       Monkey-­‐‑
                         Sikuli	
    ?Android?	
        ?iOS?  	
       Runner	


                                                                        19

More Related Content

What's hot

Android Testing: An Overview
Android Testing: An OverviewAndroid Testing: An Overview
Android Testing: An Overview
SmartLogic
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
Diego Torres Milano
 
Android testing
Android testingAndroid testing
Android testing
JinaTm
 
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Stowarzyszenie Jakości Systemów Informatycznych (SJSI)
 
Robotium Tutorial
Robotium TutorialRobotium Tutorial
Robotium Tutorial
Mobile March
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
Bitbar
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
Bitbar
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
SSGMCE SHEGAON
 
Robotium at Android Only 2010-09-29
Robotium at Android Only 2010-09-29Robotium at Android Only 2010-09-29
Robotium at Android Only 2010-09-29
Hugo Josefson
 
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Intuit Inc.
 
Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]
Kuba Břečka
 
SeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by ExperitestSeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by Experitest
Experitest
 
MDroid+: A Mutation Testing Framework for Android
MDroid+: A Mutation Testing Framework for AndroidMDroid+: A Mutation Testing Framework for Android
MDroid+: A Mutation Testing Framework for Android
Kevin Moran
 
Experitest & Tech Mahindra Co-Webinar
 Experitest & Tech Mahindra Co-Webinar Experitest & Tech Mahindra Co-Webinar
Experitest & Tech Mahindra Co-Webinar
Experitest
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest
 
Preparing for Release to the App Store
Preparing for Release to the App StorePreparing for Release to the App Store
Preparing for Release to the App Store
Geoffrey Goetz
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
Bitbar
 
Unit Testing Android Applications
Unit Testing Android ApplicationsUnit Testing Android Applications
Unit Testing Android Applications
Rody Middelkoop
 
Android and Intel Inside
Android and Intel InsideAndroid and Intel Inside
Android and Intel Inside
Intel Developer Zone Community
 
SaaS Digital Assurance Lab
SaaS Digital Assurance LabSaaS Digital Assurance Lab
SaaS Digital Assurance Lab
Experitest
 

What's hot (20)

Android Testing: An Overview
Android Testing: An OverviewAndroid Testing: An Overview
Android Testing: An Overview
 
Testing on Android
Testing on AndroidTesting on Android
Testing on Android
 
Android testing
Android testingAndroid testing
Android testing
 
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
Przyszłość ma na imię Mobile – testowanie i automatyzacja testów aplikacji mo...
 
Robotium Tutorial
Robotium TutorialRobotium Tutorial
Robotium Tutorial
 
Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?Different Android Test Automation Frameworks - What Works You the Best?
Different Android Test Automation Frameworks - What Works You the Best?
 
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
LDNSE: Testdroid for Mobile App and Web Testing (London Selenium Meetup)
 
Android automation tools
Android automation toolsAndroid automation tools
Android automation tools
 
Robotium at Android Only 2010-09-29
Robotium at Android Only 2010-09-29Robotium at Android Only 2010-09-29
Robotium at Android Only 2010-09-29
 
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...Velocity Conference: Increasing Speed To Market In Mobile Development Through...
Velocity Conference: Increasing Speed To Market In Mobile Development Through...
 
Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]Dark Side of iOS [SmartDevCon 2013]
Dark Side of iOS [SmartDevCon 2013]
 
SeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by ExperitestSeeTestAutomation - Mobile Test Automation Tool by Experitest
SeeTestAutomation - Mobile Test Automation Tool by Experitest
 
MDroid+: A Mutation Testing Framework for Android
MDroid+: A Mutation Testing Framework for AndroidMDroid+: A Mutation Testing Framework for Android
MDroid+: A Mutation Testing Framework for Android
 
Experitest & Tech Mahindra Co-Webinar
 Experitest & Tech Mahindra Co-Webinar Experitest & Tech Mahindra Co-Webinar
Experitest & Tech Mahindra Co-Webinar
 
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous IntegrationExperitest-Infosys Co-Webinar on Mobile Continuous Integration
Experitest-Infosys Co-Webinar on Mobile Continuous Integration
 
Preparing for Release to the App Store
Preparing for Release to the App StorePreparing for Release to the App Store
Preparing for Release to the App Store
 
Best Practices in Mobile Game Testing
Best Practices in Mobile Game TestingBest Practices in Mobile Game Testing
Best Practices in Mobile Game Testing
 
Unit Testing Android Applications
Unit Testing Android ApplicationsUnit Testing Android Applications
Unit Testing Android Applications
 
Android and Intel Inside
Android and Intel InsideAndroid and Intel Inside
Android and Intel Inside
 
SaaS Digital Assurance Lab
SaaS Digital Assurance LabSaaS Digital Assurance Lab
SaaS Digital Assurance Lab
 

Similar to 2012 mobile testingsummit-moet

[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
Srijan Technologies
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
danielputerman
 
Learning's from mobile testing
Learning's from mobile testingLearning's from mobile testing
Learning's from mobile testing
Vikrant Chauhan
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitTina Su
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile Development
Tina Su
 
Monkey talk
Monkey talkMonkey talk
Monkey talkISsoft
 
Learn mobile app testing in simple way
Learn mobile app testing in simple way Learn mobile app testing in simple way
Learn mobile app testing in simple way
Mobile Pundits
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
Dipesh Bhatewara
 
Mobile testingartifacts
Mobile testingartifactsMobile testingartifacts
Mobile testingartifactsPragya Rastogi
 
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdfA Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
flufftailshop
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testingbdipesh
 
XCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodeXCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with Xcode
pCloudy
 
Appium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanAppium Overview - by Daniel Puterman
Appium Overview - by Daniel Puterman
Applitools
 
Droid con slides 2013 mobileci-v1.0
Droid con slides 2013  mobileci-v1.0Droid con slides 2013  mobileci-v1.0
Droid con slides 2013 mobileci-v1.0
Anjan Dash
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
Shivaraj R
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
Sun Technlogies
 
Ranorex Studio - Introduction, Features & Limitations - Mobile Test Automati...
Ranorex Studio - Introduction, Features & Limitations -  Mobile Test Automati...Ranorex Studio - Introduction, Features & Limitations -  Mobile Test Automati...
Ranorex Studio - Introduction, Features & Limitations - Mobile Test Automati...
eVideoTuition
 
How to Master Mobile Automation in QA
How to Master Mobile Automation in QAHow to Master Mobile Automation in QA
How to Master Mobile Automation in QA
Oxagile
 
Introduction to UI Automation Framework
Introduction to UI Automation FrameworkIntroduction to UI Automation Framework
Introduction to UI Automation Framework
Priya Rajagopal
 

Similar to 2012 mobile testingsummit-moet (20)

[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
[Srijan Wednesday Webinar] Mastering Mobile Test Automation with Appium
 
Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)Appium overview (Selenium Israel #2, Feb. 2014)
Appium overview (Selenium Israel #2, Feb. 2014)
 
Learning's from mobile testing
Learning's from mobile testingLearning's from mobile testing
Learning's from mobile testing
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Velocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuitVelocity2013 mobile ci_intuit
Velocity2013 mobile ci_intuit
 
Speed to Market in Mobile Development
Speed to Market in Mobile DevelopmentSpeed to Market in Mobile Development
Speed to Market in Mobile Development
 
Monkey talk
Monkey talkMonkey talk
Monkey talk
 
Learn mobile app testing in simple way
Learn mobile app testing in simple way Learn mobile app testing in simple way
Learn mobile app testing in simple way
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
 
Mobile testingartifacts
Mobile testingartifactsMobile testingartifacts
Mobile testingartifacts
 
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdfA Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
A Comprehensive Guide to Efficiently Writing and Implementing iOS Unit Tests.pdf
 
Mobile applications and automation testing
Mobile applications and automation testingMobile applications and automation testing
Mobile applications and automation testing
 
XCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with XcodeXCUITest for iOS App Testing and how to test with Xcode
XCUITest for iOS App Testing and how to test with Xcode
 
Appium Overview - by Daniel Puterman
Appium Overview - by Daniel PutermanAppium Overview - by Daniel Puterman
Appium Overview - by Daniel Puterman
 
Droid con slides 2013 mobileci-v1.0
Droid con slides 2013  mobileci-v1.0Droid con slides 2013  mobileci-v1.0
Droid con slides 2013 mobileci-v1.0
 
Mobile Application Testing
Mobile Application Testing Mobile Application Testing
Mobile Application Testing
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Ranorex Studio - Introduction, Features & Limitations - Mobile Test Automati...
Ranorex Studio - Introduction, Features & Limitations -  Mobile Test Automati...Ranorex Studio - Introduction, Features & Limitations -  Mobile Test Automati...
Ranorex Studio - Introduction, Features & Limitations - Mobile Test Automati...
 
How to Master Mobile Automation in QA
How to Master Mobile Automation in QAHow to Master Mobile Automation in QA
How to Master Mobile Automation in QA
 
Introduction to UI Automation Framework
Introduction to UI Automation FrameworkIntroduction to UI Automation Framework
Introduction to UI Automation Framework
 

2012 mobile testingsummit-moet

  • 1. MOET https://github.com/eing/moet Mobile End-to-End Testing Mobile Exploratory Testing Eing Ong Intuit, Inc. @eingong|eing.ong@intuit.com 1 1
  • 2. Mobile  automation  technologies •  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. Advantages  of  both  techniques Non-­‐‑instrumentation Instrumentation •  Device  platform  agnostic •  Elements  can  be  accessed •  Test  code  reuse •  Debugging  ease •  Test  language  &  test  harness   •  Test  verification  ease autonomy •  Reduce  tools  dependencies •  Support  for •  Support  for Multi-­‐‑applications  testing Installing  application Custom  composite  UI  elements Launching  application Database/server  API  assertions Cleanup  (kill  application) Use  of  external  libraries Test  execution  on  device  (e.g.  hardware/image  libraries) Code  coverage 3
  • 4. Which  technique  should  I  use  ? Non-instrumentation Instrumentation External   interaction Hardware   Text-­‐‑based   interaction features Image  based   features 4
  • 5. Mobile  automation  tools Mobile   Non-­‐‑ Instrumentation OS instrumentation Android eggPlant,  Sikuli,  MOET,   Robotium,  Calabash,   MonkeyRunner MonkeyTalk iOS eggPlant,  Sikuli,  MOET UIAutomation,  KIF,   iCuke,  Frank,  UISpec,   Zucchini,  Bwoken,   Calabash,  MonkeyTalk,   Applecart,  iOS-­‐‑driver 5
  • 6. MOET 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. Anatomy  of    MOET Mobile  Application  Interface Device  Independent  Tests Runtime binding Simulator/Device libraries Android  application   iPhone  application   implementation implementation Android  MonkeyRunner   iPhone  Sikuli  Library Library 7
  • 8. Top Ten Wish List a.k.a. Mobile test automation Wall of Pain 8 8
  • 9. Android  Wall  of  Pain 10.  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. Android  Wall  of  Pain 10.  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. iOS  Wall  of  Pain 8.  iOS simulator…the singleton pattern o  Multiple instances of simulator o  Headless execution 7.  What test harness ? o  Test grouping, test assertions, base test class o  Results needs to be displayable in browser 6.  How about a CI plugin o  Test execution o  Code coverage 11
  • 12. iOS  Wall  of  Pain 8.  iOS simulator…the singleton pattern o  Multiple instances of simulator o  Headless execution 7.  What test harness ? o  Test grouping, test assertions, base test class o  Results needs to be displayable in browser 6.  How about a CI plugin o  Test execution o  Code coverage 12
  • 13. iOS  Wall  of  Pain 8.  iOS simulator…the singleton pattern o  Headless execution o  Multiple instances of simulator 7.  What test harness ? o  Test grouping, test assertions, base test class o  Results needs to be displayable in browser 6.  How about a CI plugin o  Test execution o  Test results o  Code coverage 13
  • 14. iOS  Wall  of  Pain 5.  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. All  mobile  platforms 4.  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. All  mobile  platforms 3.  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 detection 2.  Wireless? o  OTA app installation o  Testing via wifi and carrier networks o  Selenium grid-like test infrastructure 16
  • 17. All  mobile  platforms 3.  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 detection 2.  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. All  mobile  platforms 1.  Yet another proprietary language? o  Open sourced test harness & language for •  Instrumented tests •  Non-instrumented tests •  Hybrid apps tests 18
  • 19. Next  steps Eclipse mobile Test Test Test Continuous testing plugin development execution reporting integration Mobile  Application  Interface Device  Independent  Tests Runtime binding Simulator/Device libraries Non-­‐‑instrumented   Instrumented  application   application  implementation implementation Monkey-­‐‑ Sikuli ?Android? ?iOS?   Runner 19