SlideShare a Scribd company logo
1 of 43
Download to read offline
The Restless Are
                          Getting Native
                       Lessons Learnt While Automating an iOS App

                                     Dante Briones
                                  Principal Consultant
                                        Cochiva




Friday, March 23, 12
What makes a good
                        automation tool?


Friday, March 23, 12
I want tests that:
                       •   are robust

                       •   are easy to maintain

                       •   clearly express intent

                       •   are written in a real programming language

                       •   run in any environment

                       •   run on simulator or real device



Friday, March 23, 12
These are important,
                              but...


Friday, March 23, 12
What’s the point of
                          automated tests?

                       • To catch regression bugs
                       • To do so faster and more reliably than a
                         human




Friday, March 23, 12
Developer



                             Commit
                                          Source
                                           Repo




                                      Build & Deploy




                                                                    Uses   User
                                                       Production




Friday, March 23, 12
Developer                               Feedback          Tester



                             Commit
                                          Source
                                           Repo




                                        Build & Deploy

                                                                                 Tests
                                      Build & Deploy


                                                             Test
                                                         Environment


                                                                          Uses     User
                                                         Production




Friday, March 23, 12
Developer                                 Feedback          Tester


                                                           Feedback
                             Commit
                                          Source
                                           Repo


                                          Build & Deploy
                                                           Continuous
                                                            Integration
                                        Build & Deploy     Environment

                                                                                   Tests
                                      Build & Deploy


                                                               Test
                                                           Environment


                                                                            Uses     User
                                                           Production




Friday, March 23, 12
Developer                                  Feedback          Tester


                                                             Feedback
                               Commit
                                            Source
                       Tests                 Repo


                          Feedback
                                            Build & Deploy
                                                             Continuous
                        Local Test                            Integration
                       Environment        Build & Deploy     Environment

                                                                                     Tests
                                        Build & Deploy


                                                                 Test
                                                             Environment


                                                                              Uses     User
                                                             Production




Friday, March 23, 12
What’s the biggest win
                        of automated tests?

                          FASTER
                        FEEDBACK
Friday, March 23, 12
Test Environment


                           Deploy                                    Run

                                                     Feedback


                                                                     Tests


                       Development Team                         Automation Team




Friday, March 23, 12
Friday, March 23, 12
Test Environment



                                Feedback

                       Deploy
                                        Run



                                Tests

                         Development /
                        Automation Team




Friday, March 23, 12
Something to consider

                       "If a test fails in Jenkins,
                       and no one is there who cares about it,
                       should it still break the build?"



Friday, March 23, 12
</digression>



Friday, March 23, 12
iOS Automation: Tools
                       •   NativeDriver http://nativedriver.googlecode.com/

                       •   KIF https://github.com/square/KIF

                       •   Frank http://www.testingwithfrank.com/

                       •   MonkeyTalk http://www.gorillalogic.com/

                       •   LessPainful https://www.lesspainful.com/

                       •   iCuke https://github.com/unboxed/icuke

                       •   UISpec http://uispec.googlecode.com/


Friday, March 23, 12
iOS Automation:
                              Architecture
                                   Request / Response
                                                                     HTTP
                                                                     Server
                                           Synthesized Events
                       Test Code                                   Application
                                                State
                                                Query




                                                                Device / Simulator




Friday, March 23, 12
iOS Automation:
                         Architecture

                               Test Code




                              Application




                           Device / Simulator


Friday, March 23, 12
Why NativeDriver?



                       Familiar API

Friday, March 23, 12
Why NativeDriver?



                             Java

Friday, March 23, 12
Why NativeDriver?



                         Android

Friday, March 23, 12
Why NativeDriver?


                         “Hybrid”
                           Apps
Friday, March 23, 12
iOS Automation
                                   Toolchain
                                          WebDriver Protocol
                                                                             HTTP
                                                                             Server
                                                  Synthesized Events
                       Test Code (Java)                                Application (Obj-C)
                                                       State
                                                       Query




                                                                       Device / Simulator




Friday, March 23, 12
NativeDriver
                       Test Support Code




Friday, March 23, 12
NativeDriver
                        Test Code




Friday, March 23, 12
Toolchain: The ugly bits

                       • How do I build from the command line?
                       • How do I launch the simulator from the
                         command line?
                       • How do I shut down the simulator cleanly?


Friday, March 23, 12
Toolchain: The ugly bits
                       • How do I browse native widgets currently
                         onscreen?
                       • How do I browse widgets in a UIWebView?
                       • How do I solve intermittent test failures?
                       • What do I do if NativeDriver doesn’t
                         support an element I need to interact with?


Friday, March 23, 12
Challenges



Friday, March 23, 12
Cultural Differences




                       Football    Football
Friday, March 23, 12
Web Test Automation


                       • Selenium, Watir, Capybara, HTMLUnit, etc.
                       • Test automation is commonplace


Friday, March 23, 12
iOS Test Automation




                        Real Developers
                        Don’t Write Tests
Friday, March 23, 12
Challenges:
                       Language Choice


Friday, March 23, 12
Recommendations



Friday, March 23, 12
Recommendation:
                       Show Value Early


Friday, March 23, 12
Recommendation:
                       Surprise and Delight


Friday, March 23, 12
Friday, March 23, 12
Friday, March 23, 12
Recommendation:
                       Smooth Rough Edges


Friday, March 23, 12
Recommendation:
                       Know Your Limits


Friday, March 23, 12
The Future of
                       NativeDriver


Friday, March 23, 12
Friday, March 23, 12
The Future of Mobile
                             Testing...

                        ...is in your hands!


Friday, March 23, 12
Thank you!
                          Dante Briones
                       dante@cochiva.com
                         @dantebriones



Friday, March 23, 12

More Related Content

What's hot

Characterizing and Predicting Which Bugs Get Reopened
Characterizing and Predicting Which Bugs Get ReopenedCharacterizing and Predicting Which Bugs Get Reopened
Characterizing and Predicting Which Bugs Get ReopenedThomas Zimmermann
 
Refactoring AOMs For AgilePT2010
Refactoring AOMs For AgilePT2010Refactoring AOMs For AgilePT2010
Refactoring AOMs For AgilePT2010Joseph Yoder
 
5 sins of all hands ppt
5 sins of all hands ppt5 sins of all hands ppt
5 sins of all hands pptSpike Gu
 
1 qm keynote-kamala_p
1 qm keynote-kamala_p1 qm keynote-kamala_p
1 qm keynote-kamala_pIBM
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010Tim Mahy
 
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012TEST Huddle
 
The Speed to Cool - Valuing Testing & Quality in Agile Teams
The Speed to Cool - Valuing Testing & Quality in Agile TeamsThe Speed to Cool - Valuing Testing & Quality in Agile Teams
The Speed to Cool - Valuing Testing & Quality in Agile TeamsCraig Smith
 
Thezenofscrum1 090221154550-phpapp01
Thezenofscrum1 090221154550-phpapp01Thezenofscrum1 090221154550-phpapp01
Thezenofscrum1 090221154550-phpapp01Dani Llamazares
 
Performance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded softwarePerformance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded softwareMr. Chanuwan
 

What's hot (11)

Lean agile pt
Lean  agile ptLean  agile pt
Lean agile pt
 
Characterizing and Predicting Which Bugs Get Reopened
Characterizing and Predicting Which Bugs Get ReopenedCharacterizing and Predicting Which Bugs Get Reopened
Characterizing and Predicting Which Bugs Get Reopened
 
Venture
VentureVenture
Venture
 
Refactoring AOMs For AgilePT2010
Refactoring AOMs For AgilePT2010Refactoring AOMs For AgilePT2010
Refactoring AOMs For AgilePT2010
 
5 sins of all hands ppt
5 sins of all hands ppt5 sins of all hands ppt
5 sins of all hands ppt
 
1 qm keynote-kamala_p
1 qm keynote-kamala_p1 qm keynote-kamala_p
1 qm keynote-kamala_p
 
2012 student track - vs2010
2012   student track - vs20102012   student track - vs2010
2012 student track - vs2010
 
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
Peter Zimmerer - Evolve Design For Testability To The Next Level - EuroSTAR 2012
 
The Speed to Cool - Valuing Testing & Quality in Agile Teams
The Speed to Cool - Valuing Testing & Quality in Agile TeamsThe Speed to Cool - Valuing Testing & Quality in Agile Teams
The Speed to Cool - Valuing Testing & Quality in Agile Teams
 
Thezenofscrum1 090221154550-phpapp01
Thezenofscrum1 090221154550-phpapp01Thezenofscrum1 090221154550-phpapp01
Thezenofscrum1 090221154550-phpapp01
 
Performance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded softwarePerformance testing based on time complexity analysis for embedded software
Performance testing based on time complexity analysis for embedded software
 

Viewers also liked

ALT - Relief Forestry
ALT -  Relief ForestryALT -  Relief Forestry
ALT - Relief Forestryguesta02c9b3
 
Tokyo Financial Information Summit 2010
Tokyo Financial Information Summit 2010Tokyo Financial Information Summit 2010
Tokyo Financial Information Summit 2010referencedata
 
S H 6 Overlay Text Handout 1
S H 6  Overlay  Text  Handout 1S H 6  Overlay  Text  Handout 1
S H 6 Overlay Text Handout 1City of Manvel
 
The Restless Are Getting Native: SeleniumConf 2012
The Restless Are Getting Native: SeleniumConf 2012The Restless Are Getting Native: SeleniumConf 2012
The Restless Are Getting Native: SeleniumConf 2012Dante Briones
 
North American Financial Information Summit 2010, New York- May 26
North American Financial Information Summit 2010, New York- May 26North American Financial Information Summit 2010, New York- May 26
North American Financial Information Summit 2010, New York- May 26referencedata
 
Highway Mixed Use District Presentation 20090727
Highway Mixed Use District Presentation   20090727Highway Mixed Use District Presentation   20090727
Highway Mixed Use District Presentation 20090727City of Manvel
 

Viewers also liked (8)

ALT - Relief Forestry
ALT -  Relief ForestryALT -  Relief Forestry
ALT - Relief Forestry
 
Tokyo Financial Information Summit 2010
Tokyo Financial Information Summit 2010Tokyo Financial Information Summit 2010
Tokyo Financial Information Summit 2010
 
Company Of Women
Company Of WomenCompany Of Women
Company Of Women
 
S H 6 Overlay Text Handout 1
S H 6  Overlay  Text  Handout 1S H 6  Overlay  Text  Handout 1
S H 6 Overlay Text Handout 1
 
The Restless Are Getting Native: SeleniumConf 2012
The Restless Are Getting Native: SeleniumConf 2012The Restless Are Getting Native: SeleniumConf 2012
The Restless Are Getting Native: SeleniumConf 2012
 
North American Financial Information Summit 2010, New York- May 26
North American Financial Information Summit 2010, New York- May 26North American Financial Information Summit 2010, New York- May 26
North American Financial Information Summit 2010, New York- May 26
 
Building A New Industry.2009
Building A New Industry.2009Building A New Industry.2009
Building A New Industry.2009
 
Highway Mixed Use District Presentation 20090727
Highway Mixed Use District Presentation   20090727Highway Mixed Use District Presentation   20090727
Highway Mixed Use District Presentation 20090727
 

Similar to San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native

Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSteve Lange
 
Progressive Deployment & NoDeploy
Progressive Deployment & NoDeployProgressive Deployment & NoDeploy
Progressive Deployment & NoDeployYi-Feng Tzeng
 
Alm 4 Azure with screenshots
Alm 4 Azure with screenshotsAlm 4 Azure with screenshots
Alm 4 Azure with screenshotsClemens Reijnen
 
San Jose Selenium Meet-up PushToTest TestMaker Presentation
San Jose Selenium Meet-up PushToTest TestMaker PresentationSan Jose Selenium Meet-up PushToTest TestMaker Presentation
San Jose Selenium Meet-up PushToTest TestMaker PresentationClever Moe
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Netcetera
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveWee Witthawaskul
 
IBM Rational Software Conference 2009: Quality Management Track Keynote
IBM Rational Software Conference 2009: Quality Management Track KeynoteIBM Rational Software Conference 2009: Quality Management Track Keynote
IBM Rational Software Conference 2009: Quality Management Track KeynoteKathy (Kat) Mandelstein
 
SOFTWARE ENGINEERING UNIT 6 Ch 13
SOFTWARE ENGINEERING UNIT 6 Ch 13SOFTWARE ENGINEERING UNIT 6 Ch 13
SOFTWARE ENGINEERING UNIT 6 Ch 13Azhar Shaik
 
Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012Cristiano Caetano
 
Ashwini - Effective use of CI by QA
Ashwini - Effective use of CI by QAAshwini - Effective use of CI by QA
Ashwini - Effective use of CI by QAvodQA
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsEliane Collins
 
Обеспечение качества проектов средствами VSTS 2010
Обеспечение качества проектов средствами VSTS 2010Обеспечение качества проектов средствами VSTS 2010
Обеспечение качества проектов средствами VSTS 2010SQALab
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consultTomas Riha
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to realityClément Escoffier
 
software quality assurance methodology
software quality assurance methodologysoftware quality assurance methodology
software quality assurance methodologyrockden
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionProduct Marketing Services
 
Performance Testing
Performance TestingPerformance Testing
Performance TestingCodelattice
 
Effective Strategies for Distributed Testing
Effective Strategies for Distributed TestingEffective Strategies for Distributed Testing
Effective Strategies for Distributed TestingAnand Bagmar
 

Similar to San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native (20)

Session #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft ApproachSession #1: Development Practices And The Microsoft Approach
Session #1: Development Practices And The Microsoft Approach
 
Alm 4 Azure
Alm 4 AzureAlm 4 Azure
Alm 4 Azure
 
Progressive Deployment & NoDeploy
Progressive Deployment & NoDeployProgressive Deployment & NoDeploy
Progressive Deployment & NoDeploy
 
Alm 4 Azure with screenshots
Alm 4 Azure with screenshotsAlm 4 Azure with screenshots
Alm 4 Azure with screenshots
 
San Jose Selenium Meet-up PushToTest TestMaker Presentation
San Jose Selenium Meet-up PushToTest TestMaker PresentationSan Jose Selenium Meet-up PushToTest TestMaker Presentation
San Jose Selenium Meet-up PushToTest TestMaker Presentation
 
Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)Continuous Delivery (Internet-Briefing 2012-04-03)
Continuous Delivery (Internet-Briefing 2012-04-03)
 
Agile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer PerspectiveAgile Software Development in Practice - A Developer Perspective
Agile Software Development in Practice - A Developer Perspective
 
IBM Rational Software Conference 2009: Quality Management Track Keynote
IBM Rational Software Conference 2009: Quality Management Track KeynoteIBM Rational Software Conference 2009: Quality Management Track Keynote
IBM Rational Software Conference 2009: Quality Management Track Keynote
 
SOFTWARE ENGINEERING UNIT 6 Ch 13
SOFTWARE ENGINEERING UNIT 6 Ch 13SOFTWARE ENGINEERING UNIT 6 Ch 13
SOFTWARE ENGINEERING UNIT 6 Ch 13
 
Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012Testing for continuous delivery with visual studio 2012
Testing for continuous delivery with visual studio 2012
 
Ashwini - Effective use of CI by QA
Ashwini - Effective use of CI by QAAshwini - Effective use of CI by QA
Ashwini - Effective use of CI by QA
 
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall ProjectsICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
ICTSS 2010 - Iterative Software Testing Process for Scrum and Waterfall Projects
 
Обеспечение качества проектов средствами VSTS 2010
Обеспечение качества проектов средствами VSTS 2010Обеспечение качества проектов средствами VSTS 2010
Обеспечение качества проектов средствами VSTS 2010
 
Continuous delivery @åf consult
Continuous delivery @åf consultContinuous delivery @åf consult
Continuous delivery @åf consult
 
Linuxtag 2012 - continuous delivery - dream to reality
Linuxtag 2012  - continuous delivery - dream to realityLinuxtag 2012  - continuous delivery - dream to reality
Linuxtag 2012 - continuous delivery - dream to reality
 
software quality assurance methodology
software quality assurance methodologysoftware quality assurance methodology
software quality assurance methodology
 
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and SubversionBeyond Scrum: Scaling Agile with Continuous Delivery and Subversion
Beyond Scrum: Scaling Agile with Continuous Delivery and Subversion
 
Performance Testing
Performance TestingPerformance Testing
Performance Testing
 
Quality & Reliability in Software Engineering
Quality & Reliability in Software EngineeringQuality & Reliability in Software Engineering
Quality & Reliability in Software Engineering
 
Effective Strategies for Distributed Testing
Effective Strategies for Distributed TestingEffective Strategies for Distributed Testing
Effective Strategies for Distributed Testing
 

Recently uploaded

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 

Recently uploaded (20)

Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
Transcript: #StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 

San Jose Selenium Meetup 22 Mar 2012: The Restless Are Getting Native

  • 1. The Restless Are Getting Native Lessons Learnt While Automating an iOS App Dante Briones Principal Consultant Cochiva Friday, March 23, 12
  • 2. What makes a good automation tool? Friday, March 23, 12
  • 3. I want tests that: • are robust • are easy to maintain • clearly express intent • are written in a real programming language • run in any environment • run on simulator or real device Friday, March 23, 12
  • 4. These are important, but... Friday, March 23, 12
  • 5. What’s the point of automated tests? • To catch regression bugs • To do so faster and more reliably than a human Friday, March 23, 12
  • 6. Developer Commit Source Repo Build & Deploy Uses User Production Friday, March 23, 12
  • 7. Developer Feedback Tester Commit Source Repo Build & Deploy Tests Build & Deploy Test Environment Uses User Production Friday, March 23, 12
  • 8. Developer Feedback Tester Feedback Commit Source Repo Build & Deploy Continuous Integration Build & Deploy Environment Tests Build & Deploy Test Environment Uses User Production Friday, March 23, 12
  • 9. Developer Feedback Tester Feedback Commit Source Tests Repo Feedback Build & Deploy Continuous Local Test Integration Environment Build & Deploy Environment Tests Build & Deploy Test Environment Uses User Production Friday, March 23, 12
  • 10. What’s the biggest win of automated tests? FASTER FEEDBACK Friday, March 23, 12
  • 11. Test Environment Deploy Run Feedback Tests Development Team Automation Team Friday, March 23, 12
  • 13. Test Environment Feedback Deploy Run Tests Development / Automation Team Friday, March 23, 12
  • 14. Something to consider "If a test fails in Jenkins, and no one is there who cares about it, should it still break the build?" Friday, March 23, 12
  • 16. iOS Automation: Tools • NativeDriver http://nativedriver.googlecode.com/ • KIF https://github.com/square/KIF • Frank http://www.testingwithfrank.com/ • MonkeyTalk http://www.gorillalogic.com/ • LessPainful https://www.lesspainful.com/ • iCuke https://github.com/unboxed/icuke • UISpec http://uispec.googlecode.com/ Friday, March 23, 12
  • 17. iOS Automation: Architecture Request / Response HTTP Server Synthesized Events Test Code Application State Query Device / Simulator Friday, March 23, 12
  • 18. iOS Automation: Architecture Test Code Application Device / Simulator Friday, March 23, 12
  • 19. Why NativeDriver? Familiar API Friday, March 23, 12
  • 20. Why NativeDriver? Java Friday, March 23, 12
  • 21. Why NativeDriver? Android Friday, March 23, 12
  • 22. Why NativeDriver? “Hybrid” Apps Friday, March 23, 12
  • 23. iOS Automation Toolchain WebDriver Protocol HTTP Server Synthesized Events Test Code (Java) Application (Obj-C) State Query Device / Simulator Friday, March 23, 12
  • 24. NativeDriver Test Support Code Friday, March 23, 12
  • 25. NativeDriver Test Code Friday, March 23, 12
  • 26. Toolchain: The ugly bits • How do I build from the command line? • How do I launch the simulator from the command line? • How do I shut down the simulator cleanly? Friday, March 23, 12
  • 27. Toolchain: The ugly bits • How do I browse native widgets currently onscreen? • How do I browse widgets in a UIWebView? • How do I solve intermittent test failures? • What do I do if NativeDriver doesn’t support an element I need to interact with? Friday, March 23, 12
  • 29. Cultural Differences Football Football Friday, March 23, 12
  • 30. Web Test Automation • Selenium, Watir, Capybara, HTMLUnit, etc. • Test automation is commonplace Friday, March 23, 12
  • 31. iOS Test Automation Real Developers Don’t Write Tests Friday, March 23, 12
  • 32. Challenges: Language Choice Friday, March 23, 12
  • 34. Recommendation: Show Value Early Friday, March 23, 12
  • 35. Recommendation: Surprise and Delight Friday, March 23, 12
  • 38. Recommendation: Smooth Rough Edges Friday, March 23, 12
  • 39. Recommendation: Know Your Limits Friday, March 23, 12
  • 40. The Future of NativeDriver Friday, March 23, 12
  • 42. The Future of Mobile Testing... ...is in your hands! Friday, March 23, 12
  • 43. Thank you! Dante Briones dante@cochiva.com @dantebriones Friday, March 23, 12