SlideShare ist ein Scribd-Unternehmen logo
1 von 80
Test your JavaScript
   Mike Williams, Rob Mitchell
   at Web Directions South ’09
For the love of God,


Test your JavaScript
                                       (automatically)
              ... or suffer the consequences.
Browser
Browser   Web/Application server
Browser   Web/Application server
           Framework
                            Lib


                            Lib
Browser   Web/Application server
           Framework
                            Lib
              Your
              code          Lib
Browser   Web/Application server
           Framework
                            Lib
                                   External
              Your                 systems
              code          Lib
Browser           Web/Application server
                   Framework
                                    Lib
                                           External
                       Your                systems
                       code         Lib




          circa 2000
Browser           Web/Application server
                    Framework
                                     Lib
                                            External
JS                      Your                systems
                        code         Lib




           circa 2000
                 2004
Browser                 Web/Application server
                          Framework
           Lib                             Lib
Your                                              External
 JS                           Your                systems
code
           Lib                code         Lib




                 circa 2000
                       2008
                       2004
Browser              Web/Application server
                         Framework
             Lib                          Lib
  Your                                           External
                            Your                 systems
  code
             Lib            code          Lib




                   Mature test automation
Not so much         tools and practices
Why test?
Why test?
Variety
Variety
The problem with success



                                      ↑
                                   risk of
                                (undetected)
                                    #fail




      time, features, users →
The problem with success



                                      ↑
                                   risk of
                                (undetected)
                                    #fail




      time, features, users →
The problem with success



                                      ↑
                                   risk of
                                (undetected)
                                    #fail




      time, features, users →
Where to start?
what will cause the most
  damage, if it breaks?
what’s most likely to be
        broken?
Manual regression testing
Manual regression testing
Manual regression testing



    $
Manual regression testing



    $           ⌛
Cost of testing
Cost of testing




quarter    month   fortnight   week      few days   day
                   Release frequency →
Cost of testing
                                manual tests



    ↑
 Testing
Cost, Delay




        quarter    month   fortnight   week      few days   day
                           Release frequency →
Fear
Fear

Disincentive to
Fear

Disincentive to

 ‣ add features
Fear

Disincentive to

 ‣ add features
 ‣ refactor
Fear

Disincentive to

 ‣ add features
 ‣ refactor
 ‣ release!
Automation
Cost of testing
Cost of testing

    ↑
 Testing
Cost, Delay




        quarter    month   fortnight   week      few days   day
                           Release frequency →
Cost of testing
                              manual tests
                              automated tests

    ↑
 Testing
Cost, Delay




        quarter    month   fortnight   week      few days   day
                           Release frequency →
Confidence
Test strategy
Browser         Web/Application server
                  Framework
           Lib                     Lib
Your                                      External
                     Your                 systems
code
           Lib       code          Lib
Browser                Web/Application server
                         Framework
           Lib                            Lib
Your                                             External
 JS                         Your                 systems
code
           Lib              code          Lib




                 “End-to-end” test
Browser                      Web/Application server
                              Framework
          Lib                                  Lib
                                                      External
                                                      systems
          Lib                                  Lib




                Unit tests
Component tests
                      (assorted)


 Browser                 Web/Application server
                           Framework
           Lib                             Lib
Your                                              External
 JS                           Your                systems
code
           Lib                code         Lib
End-to-end tests
End-to-end tests
End-to-end tests
Big
End-to-end tests
  Big
Powerful
End-to-end tests
   Big
 Powerful
Convincing
End-to-end tests
   Big
 Powerful
Convincing
    ...
End-to-end tests
   Big
 Powerful
Convincing
    ...
  Slow
End-to-end tests
   Big
 Powerful
Convincing
    ...
  Slow
 In-exact
End-to-end tests
      Big
    Powerful
   Convincing
       ...
     Slow
    In-exact
High-maintenance
Unit tests
Unit tests
Unit tests
Small
Unit tests
Small
Quick
Unit tests
 Small
Quick
Focused
Unit tests
 Small
 Quick
Focused
Resilient
Unit tests
 Small
 Quick
Focused
Resilient
   ...
Unit tests
 Small
 Quick
Focused
Resilient
   ...
Limited
Speed
            Annoyingly slow




Very fast




Unit test    End-to-End test
Speed
                        Annoyingly slow




    ↑
Execution
  Time      Very fast




            Unit test    End-to-End test
Balance
many fast tests             a few slow tests
Favour FAST tests over SLOW tests
The Healthy Test Pyramid
                    manual    few



          end-to-end         some
            (automated)             slow
    the stuff in
     between
      (automated)
                                           fast!

“unit”
(automated)                  most
Tools
Browser         Web/Application server
Emulator
                  Framework
       Lib                        Lib
Your                                     External
                    Your                 systems
code
       Lib          code          Lib




             Test scripts
Browser         Web/Application server
                  Framework
           Lib                     Lib
Your                                      External
 JS                  Your                 systems
code
           Lib       code          Lib




Browser
 Driver

                     Test scripts
Browser


           Lib
Your
 JS
code
           Lib

 Unit-test
framework

Test scripts
Browser
 Emulator

            Lib
Your
 JS
code
            Lib

 Unit-test
framework

Test scripts
pls can we haz demo!
Testability
Testability

• Coherent modules
Testability

• Coherent modules
• Coherent tests
Testability

• Coherent modules
• Coherent tests
• Unobtrusive JavaScript
Testability

• Coherent modules
• Coherent tests
• Unobtrusive JavaScript
• Write the tests first!
Write the tests first!


Testability      Good Design
Build integration

• Very tool-specific

• Trickiness:
   • Stopping and starting servers
   • Stopping and starting browsers
TestSwarm


   TestSwarm
     server




  Test scripts
What now?
JavaScript test frameworks     Browser Drivers
 -   Screw.Unit                 -  Selenium-RC
 -   QUnit                      -  Watir
 -   JSSpec                     -  WebDriver
 -   YUI Test
 -   unittest.js               Browser Emulators
 -   JsUnit                     -  HtmlUnit
 -   and lots more ...

     http://delicious.com/mdub/javascript+testing

Weitere ähnliche Inhalte

Ähnlich wie Test Your JavaScript

Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Amazon Web Services
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code ReviewRichard Huang
 
SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantMitchell Hashimoto
 
Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)Brian Brazil
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Amazon Web Services
 
Team Development and Release Management
Team Development and Release ManagementTeam Development and Release Management
Team Development and Release ManagementSalesforce Partners
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentAxel Fontaine
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivationjistr
 
Web APIs: The future of software
Web APIs: The future of softwareWeb APIs: The future of software
Web APIs: The future of softwareReuven Lerner
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1tactqa
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1tactqa
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsAmazon Web Services
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelAmazon Web Services
 
2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficiently2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficientlyBruno Capuano
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesC4Media
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseScott Sutherland
 

Ähnlich wie Test Your JavaScript (20)

Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
Building CI/CD Pipelines for Serverless Applications - SRV302 - re:Invent 2017
 
Semi Automatic Code Review
Semi Automatic Code ReviewSemi Automatic Code Review
Semi Automatic Code Review
 
SF DevOps: Introducing Vagrant
SF DevOps: Introducing VagrantSF DevOps: Introducing Vagrant
SF DevOps: Introducing Vagrant
 
DevOps on AWS
DevOps on AWSDevOps on AWS
DevOps on AWS
 
Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)Prometheus lightning talk (Devops Dublin March 2015)
Prometheus lightning talk (Devops Dublin March 2015)
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
Workshop: AWS DevOps Essentials: An Introductory Workshop on CI/CD Best Pract...
 
Improve Android System Component Performance
Improve Android System Component PerformanceImprove Android System Component Performance
Improve Android System Component Performance
 
Team Development and Release Management
Team Development and Release ManagementTeam Development and Release Management
Team Development and Release Management
 
Jfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App DeploymentJfokus 2015 - Immutable Server generation: the new App Deployment
Jfokus 2015 - Immutable Server generation: the new App Deployment
 
Ruby and Rails short motivation
Ruby and Rails short motivationRuby and Rails short motivation
Ruby and Rails short motivation
 
Web APIs: The future of software
Web APIs: The future of softwareWeb APIs: The future of software
Web APIs: The future of software
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
 
Microsoft power point automation-opensourcetestingtools_matrix-1
Microsoft power point   automation-opensourcetestingtools_matrix-1Microsoft power point   automation-opensourcetestingtools_matrix-1
Microsoft power point automation-opensourcetestingtools_matrix-1
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer ToolsDevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
DevOps on AWS: Deep Dive on Continuous Delivery and the AWS Developer Tools
 
CI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day IsraelCI/CD pipelines on AWS - Builders Day Israel
CI/CD pipelines on AWS - Builders Day Israel
 
2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficiently2017 03 25 Microsoft Hacks, How to code efficiently
2017 03 25 Microsoft Hacks, How to code efficiently
 
Immutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine ImagesImmutable Infrastructure: Rise of the Machine Images
Immutable Infrastructure: Rise of the Machine Images
 
Thick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash CourseThick Application Penetration Testing: Crash Course
Thick Application Penetration Testing: Crash Course
 

Kürzlich hochgeladen

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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?XfilesPro
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
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
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticscarlostorres15106
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsMaria Levchenko
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 

Kürzlich hochgeladen (20)

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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?How to Remove Document Management Hurdles with X-Docs?
How to Remove Document Management Hurdles with X-Docs?
 
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
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
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
 
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmaticsKotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
Kotlin Multiplatform & Compose Multiplatform - Starter kit for pragmatics
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
Handwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed textsHandwritten Text Recognition for manuscripts and early printed texts
Handwritten Text Recognition for manuscripts and early printed texts
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Pigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping ElbowsPigging Solutions Piggable Sweeping Elbows
Pigging Solutions Piggable Sweeping Elbows
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 

Test Your JavaScript

Hinweis der Redaktion

  1. We’re talking about web-APPS, not just web-sites.
  2. We’re talking about web-APPS, not just web-sites.
  3. We’re talking about web-APPS, not just web-sites.
  4. We’re talking about web-APPS, not just web-sites.
  5. We’re talking about web-APPS, not just web-sites.
  6. We’re talking about web-APPS, not just web-sites.
  7. We’re talking about web-APPS, not just web-sites.
  8. We’re talking about web-APPS, not just web-sites.
  9. We’re talking about web-APPS, not just web-sites.
  10. We’re talking about web-APPS, not just web-sites.
  11. We’re talking about web-APPS, not just web-sites.
  12. We’re talking about web-APPS, not just web-sites.
  13. We’re talking about web-APPS, not just web-sites.
  14. We’re talking about web-APPS, not just web-sites.
  15. We’re talking about web-APPS, not just web-sites.
  16. We’re talking about web-APPS, not just web-sites.
  17. So, at what levels can we test?
  18. stuff breaks Broken stuff makes you look bad So ... you fix it!
  19. but then you add more features
  20. the more stuff you have, the more likely it is to be broken WITHOUT YOU KNOWING
  21. the more stuff you have, the more likely it is to be broken WITHOUT YOU KNOWING
  22. where should you focus your testing efforts?
  23. sure, focus on business value, BUT
  24. think about what might be broken ... the new stuff, ‘cos you changed it the old stuff, ‘cos you’re not looking at it ie. EVERYTHING
  25. so, you get MORE testers
  26. but manual regression testing costs money, and takes lot of time
  27. but manual regression testing costs money, and takes lot of time
  28. manual testing
  29. manual testing
  30. manual testing
  31. manual testing
  32. manual testing
  33. manual testing
  34. manual testing
  35. manual testing
  36. manual testing
  37. automated testing provides the confidence needed to keep moving forward
  38. So, at what levels can we test?
  39. test the whole thing, end-to-end
  40. At the other extreme: test small components
  41. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  42. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  43. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  44. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  45. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  46. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  47. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  48. Big because they require a lot of work to create Powerful because they exercise many components of the system at once Convincing because they prove that the components hang together Slow because they exercise all the infrastructure In-exact because it can be hard to find the cause of a failure High-maintenance because many things may require the test to be modified
  49. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  50. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  51. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  52. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  53. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  54. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  55. Plentiful because they’re cheap Quick because they’re low-overhead Focused because they point the finger directly at the cause of failure Resilient because they’re isolated from unrelated parts of the system Limited because, individually, they don’t test very much
  56. JavaScript unit tests run really FAST!
  57. Talk about why
  58. Cross-browser, cross-version testing Mainly for libraries - you probably don’t need it