SlideShare une entreprise Scribd logo
1  sur  61
Télécharger pour lire hors ligne
Journey to 1000 Tests a Day
      Bruce McLeod




Tuesday, 15 November 11
DISCLAIMER


      The views and content presented in this presentation
      are my own and do not represent the views of any of my
      employers, past or present.


      All content is copyright 2011 Bruce McLeod


      Creative commons attribution for images is given at the end
      of this presentation



Tuesday, 15 November 11
Tuesday, 15 November 11
Every journey has a first step
                               My introduction to Test Automation




Tuesday, 15 November 11
Record and playback




Tuesday, 15 November 11
Huge gains compared to
     manual execution
           • Win32 desktop application

           • 5 different clients (95, 98 Beta, NT4, NT 351 and Citrix)

           • 5 days work for 3 people could be done in 4 hours

           • 97% efficiency improvement




Tuesday, 15 November 11
But there were problems

           • Tests were not maintainable

           • Spent days in maintenance and development

           • They were brittle and fragile

           • And when I left for my next job ...




Tuesday, 15 November 11
Tuesday, 15 November 11
Tuesday, 15 November 11
Kindergarten
                          The early manual coding years




Tuesday, 15 November 11
Manual coding begins
Tuesday, 15 November 11
A 2001 test automation recipe


     Ingredients
             1 eager client
             1 test application
             14 test automators




Tuesday, 15 November 11
A 2001 test automation recipe


     Method
           Step 1 : Write an automation “framework”
           Step 2 : Create a gui map
           Step 3 : Write a test
           Step 4 : Repeat step 4 another 200 times




Tuesday, 15 November 11
Lessons learnt


     • A Successful project
     • 200 tests automated in 6 months

     •   Team was a real dev. team with all the same issues
     •   Versioning
     •   Merging and branching
     •   Coding standards
     •   Individual differences in style and design




Tuesday, 15 November 11
Tuesday, 15 November 11
Childhood
                          The innocent years of keyword testing




Tuesday, 15 November 11
What if we remove the need to
                   code?




Tuesday, 15 November 11
Spreadsheets !!!
Tuesday, 15 November 11
Keyword driven testing


                   Object            Action                  Data
            Textfield (domain)       Enter text            <domain>
          Textfield (username)       Enter text           <username>

          Textfield (password)       Enter text           <password>
               Button (login)         Click              One left click

          l Object - Action - data syntax

          l Automation libraries with excel front end


Tuesday, 15 November 11
Keyword driven testing
           • Advantages
           • Reduction in coding effort
           • “Anyone” can write tests!!

           •   Challenges
           •   “Anyone” can write tests!!
           •   Each implementation is custom
           •   Maintenance effort moves from code into ...



Tuesday, 15 November 11
… Lots of Spreadsheets !!!
Tuesday, 15 November 11
Tuesday, 15 November 11
Adolescence
                          Embracing open source




Tuesday, 15 November 11
Manual coding returns
Tuesday, 15 November 11
Until …




Tuesday, 15 November 11
Tuesday, 15 November 11
Unexpected benefits


     •   We could now use 1st generation developer tools
     •   Visual Studio 2005
     •   Version control
     •   C# and .net instead of VBA




Tuesday, 15 November 11
Unexpected benefits


     • Testers were now true peers to developers
     • Same tools
     • Same development language
     • Same recruitment process
     • Object oriented design




Tuesday, 15 November 11
Tuesday, 15 November 11
A discovery & epiphany!
                          The “braidy tester” blog posts




Tuesday, 15 November 11
The “sparkle” stack
          • Used to test Microsoft Expression
          • Key principles
          • Test cases written in customer view
          • Verification and data separated from tests
          • Application internals re-created in test code




Tuesday, 15 November 11
Tuesday, 15 November 11
How can I execute 1000 tests a day ?




Tuesday, 15 November 11
Design goals


     •   Maintainability
     •   Robustness
     •   Performance
     •   Maintainability
     •   Rapid test development




Tuesday, 15 November 11
Maintainability




Tuesday, 15 November 11
Devs change stuff
     It’s their job !




Tuesday, 15 November 11
Each action should occur once
     and once only




Tuesday, 15 November 11
Each control should be mapped once
     and once only




Tuesday, 15 November 11
Abstract the engine
     You shouldn’t know what’s “under the bonnet”




Tuesday, 15 November 11
Robustness




Tuesday, 15 November 11
Tests should fail, not your tools.




Tuesday, 15 November 11
Embrace regex




Tuesday, 15 November 11
Leverage your vendor, and the
       community




Tuesday, 15 November 11
Performance




Tuesday, 15 November 11
CPU should be your bottleneck




Tuesday, 15 November 11
Never wait !
                    Wait, don’t sleep




Tuesday, 15 November 11
Scale-out




Tuesday, 15 November 11
Rapid test development




Tuesday, 15 November 11
K.I.S.S




Tuesday, 15 November 11
Cheat !
           • Leverage an IDE
              • Refactoring
           • Use code generation
           • Write less code
           • Use design patterns




Tuesday, 15 November 11
What about the future?




Tuesday, 15 November 11
Tuesday, 15 November 11
Open source frameworks will
     consolidate
     Driven by adoption of webdriver




Tuesday, 15 November 11
More focus on mobile automation
     iOS, Android, Windows Phone




Tuesday, 15 November 11
Behaviour driven development
     Will become mainstream




Tuesday, 15 November 11
Given I am a logged in user
  When I have a valid credit card
  And I have 1 click purchasing enabled
  Then I should see the message “your purchase was successful”
  And I should be re-directed to the home page.




Tuesday, 15 November 11
Tuesday, 15 November 11
Tuesday, 15 November 11
Automation is development.
     Hire, plan, develop and execute with that in mind.




Tuesday, 15 November 11
Tuesday, 15 November 11
Image attribution
     • Creative commons attribution credit is required for the
         following users on flickr
             • seattlemunicipalarchives
             • mathias-erhart
             • jaffathecake
             • 28096801
             • loty
             • brilliantmichael



Tuesday, 15 November 11

Contenu connexe

Tendances

Python to go
Python to goPython to go
Python to goWeng Wei
 
Migrate PHP E-Commerce Site to Go
Migrate PHP E-Commerce Site to GoMigrate PHP E-Commerce Site to Go
Migrate PHP E-Commerce Site to GoWeng Wei
 
SQL Server Days 2014 - How to (not) torment your fellow SSIS developer
SQL Server Days 2014 - How to (not) torment your fellow SSIS developerSQL Server Days 2014 - How to (not) torment your fellow SSIS developer
SQL Server Days 2014 - How to (not) torment your fellow SSIS developerKoenVerbeeck
 
A tale of 3 databases
A tale of 3 databasesA tale of 3 databases
A tale of 3 databasesChris Skardon
 
Основы функционального JS
Основы функционального JSОсновы функционального JS
Основы функционального JSАнна Луць
 

Tendances (7)

Web development post io2016
Web development post io2016Web development post io2016
Web development post io2016
 
Python to go
Python to goPython to go
Python to go
 
ReactJS Code Impact
ReactJS Code ImpactReactJS Code Impact
ReactJS Code Impact
 
Migrate PHP E-Commerce Site to Go
Migrate PHP E-Commerce Site to GoMigrate PHP E-Commerce Site to Go
Migrate PHP E-Commerce Site to Go
 
SQL Server Days 2014 - How to (not) torment your fellow SSIS developer
SQL Server Days 2014 - How to (not) torment your fellow SSIS developerSQL Server Days 2014 - How to (not) torment your fellow SSIS developer
SQL Server Days 2014 - How to (not) torment your fellow SSIS developer
 
A tale of 3 databases
A tale of 3 databasesA tale of 3 databases
A tale of 3 databases
 
Основы функционального JS
Основы функционального JSОсновы функционального JS
Основы функционального JS
 

Similaire à Journey to 1000 tests a day

Test Driven Sysadmin
Test Driven SysadminTest Driven Sysadmin
Test Driven Sysadminjohanku
 
Technical Debt
Technical DebtTechnical Debt
Technical DebtKmanthei
 
Phingified ci and deployment strategies ipc 2012
Phingified ci and deployment strategies ipc 2012Phingified ci and deployment strategies ipc 2012
Phingified ci and deployment strategies ipc 2012TEQneers GmbH & Co. KG
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling PinterestC4Media
 
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Amazon Web Services
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFNiklas Heidloff
 
MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012jackdanger
 
Releasing To Production Every Week
Releasing To Production Every WeekReleasing To Production Every Week
Releasing To Production Every Weekexortech
 
Is this how you hate unit testing?
Is this how you hate unit testing?Is this how you hate unit testing?
Is this how you hate unit testing?Steven Mak
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Niels Frydenholm
 
Baking-In Transparency
Baking-In TransparencyBaking-In Transparency
Baking-In TransparencyMatt Simmons
 
那些 Functional Programming 教我的事
那些 Functional Programming 教我的事那些 Functional Programming 教我的事
那些 Functional Programming 教我的事Wen-Tien Chang
 
Mozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMatt Brandt
 
MySQL Sandbox - A toolkit for productive laziness
MySQL Sandbox - A toolkit for productive lazinessMySQL Sandbox - A toolkit for productive laziness
MySQL Sandbox - A toolkit for productive lazinessGiuseppe Maxia
 
Introduction to unit testing
Introduction to unit testingIntroduction to unit testing
Introduction to unit testingGil Zilberfeld
 
Keeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg ShacklesKeeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg ShacklesXamarin
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?LB Denker
 
Node.js Patterns and Opinions
Node.js Patterns and OpinionsNode.js Patterns and Opinions
Node.js Patterns and OpinionsIsaacSchlueter
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android ApplicationsLeif Janzik
 

Similaire à Journey to 1000 tests a day (20)

Test Driven Sysadmin
Test Driven SysadminTest Driven Sysadmin
Test Driven Sysadmin
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Phingified ci and deployment strategies ipc 2012
Phingified ci and deployment strategies ipc 2012Phingified ci and deployment strategies ipc 2012
Phingified ci and deployment strategies ipc 2012
 
Scaling Pinterest
Scaling PinterestScaling Pinterest
Scaling Pinterest
 
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
Re:Inventing your Innovation Cycle by Scaling Out with Spot Instances (CPN207...
 
jp06_bossola
jp06_bossolajp06_bossola
jp06_bossola
 
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTFIBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
IBM Collaboration Solutions Community Meeting 11/11 - OpenNTF
 
MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012MonoRails - GoGaRuCo 2012
MonoRails - GoGaRuCo 2012
 
Releasing To Production Every Week
Releasing To Production Every WeekReleasing To Production Every Week
Releasing To Production Every Week
 
Is this how you hate unit testing?
Is this how you hate unit testing?Is this how you hate unit testing?
Is this how you hate unit testing?
 
Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...Getting your mobile test automation process in place - using Cucumber and Cal...
Getting your mobile test automation process in place - using Cucumber and Cal...
 
Baking-In Transparency
Baking-In TransparencyBaking-In Transparency
Baking-In Transparency
 
那些 Functional Programming 教我的事
那些 Functional Programming 教我的事那些 Functional Programming 教我的事
那些 Functional Programming 教我的事
 
Mozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMOMozilla: Continuous Deploment on SUMO
Mozilla: Continuous Deploment on SUMO
 
MySQL Sandbox - A toolkit for productive laziness
MySQL Sandbox - A toolkit for productive lazinessMySQL Sandbox - A toolkit for productive laziness
MySQL Sandbox - A toolkit for productive laziness
 
Introduction to unit testing
Introduction to unit testingIntroduction to unit testing
Introduction to unit testing
 
Keeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg ShacklesKeeping your users happy with testable apps - Greg Shackles
Keeping your users happy with testable apps - Greg Shackles
 
Are Your Tests Really Helping You?
Are Your Tests Really Helping You?Are Your Tests Really Helping You?
Are Your Tests Really Helping You?
 
Node.js Patterns and Opinions
Node.js Patterns and OpinionsNode.js Patterns and Opinions
Node.js Patterns and Opinions
 
Building High Quality Android Applications
Building High Quality Android ApplicationsBuilding High Quality Android Applications
Building High Quality Android Applications
 

Dernier

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Scriptwesley chun
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonAnna Loughnan Colquhoun
 
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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024The Digital Insurer
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 

Dernier (20)

Automating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps ScriptAutomating Google Workspace (GWS) & more with Apps Script
Automating Google Workspace (GWS) & more with Apps Script
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
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
 
Data Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt RobisonData Cloud, More than a CDP by Matt Robison
Data Cloud, More than a CDP by Matt Robison
 
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...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024Tata AIG General Insurance Company - Insurer Innovation Award 2024
Tata AIG General Insurance Company - Insurer Innovation Award 2024
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
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
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 
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
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 

Journey to 1000 tests a day