SlideShare a Scribd company logo
1 of 46
Download to read offline
Inverting
The Testing Pyramid
          Naresh Jain
     naresh@agilefaqs.com
           @nashjain
      http://nareshjain.com




     Copyright © 2013, AgileFAQs. All Rights Reserved.
Plan
                                  Back in the Stone-age

                              Design
Happiness/Excitement




                                       Distribute

                                                     Work in
                                                     Isolation


                                                                     Integrate


                                       Time/Money/Opportunity Cost
Last Minute Integration Surprises




         Copyright © 2013, AgileFAQs. All Rights Reserved.
BAD things were visible too Late...
Birth of CI
CI Helped Us Learn That...
  Integrating Early, Integrating Often

Collaboration                  Feedback                                    Quality




         Delivery Time                                           Wastage
                 Copyright © 2013, AgileFAQs. All Rights Reserved.
Key Questions

                    Business Facing


Are we building the right product?


Are we building the product right?

     Technology/Implementation Facing



       Copyright © 2013, AgileFAQs. All Rights Reserved.
Brian Marick’s Test Categorization
                       Before/While Coding                                             Post Coding


                                                Business Facing
Supports Programming




                                                                                                     Critique product
                                 Technology/Implementation Facing

                                   Copyright © 2013, AgileFAQs. All Rights Reserved.
It Helps to Think of Tests this way...

                                             Business Facing

                     Acceptance Testing                       Exploratory Testing
Drives Development




                                                                                        Critique product
                     Low-fi prototypes                        UI and Usability Testing

                                                                 Performance Testing
                        Unit Testing
                                                                     System Tests
                              Technology/Implementation Facing



                                Copyright © 2013, AgileFAQs. All Rights Reserved.
Test Driven Development

                                                                        Add a Test

                                                         Pass
                                                                       Run the Test

                                                                               Fail
TDD Rhythm - Test, Code, Refactor                                      Make a little
                                                                         change

                                                                                       Fail
                                                                       Run the Test
                                                                               Pass
                                                                         Refactor




                   Copyright © 2013, AgileFAQs. All Rights Reserved.
Lean-Start-up Community
     Tried something quite disruptive...
Continuous Deployment




      Copyright © 2013, AgileFAQs. All Rights Reserved.
But...
Software Testing Ice-cream Cone

                     Manual Checking




                        End-to-End
                         GUI Tests                             10-20%



                         Integration
                                                       5-10%
                            Tests


                             Unit
                             Tests        1-5%


         Copyright © 2013, AgileFAQs. All Rights Reserved.
Commercial Break!
Copyright © 2013, AgileFAQs. All Rights Reserved.
Tech Talks!
Inverting the Testing Pyramid
  Typical testing strategies lead to an inverted testing pyramid...




                               Manual Checking




                                  End-to-End
                                   GUI Tests                               80-90%



                                  Integration
                                                                   5-15%
                                     Tests


                                       Unit
                                       Tests       1-5%
               Copyright © 2013, AgileFAQs. All Rights Reserved.
Inverting the Testing Pyramid
                            GUI 1%
                            Tests                          Performance
                                                               Tests
                      End to End                    4%          Security
                      Flow Tests                                 Tests
                   One Layer Below GUI


               Workflow Tests                               6%


            Integration Test                                    9%


     Biz Logic Acceptance Tests                                      10%


                   Unit Tests                                              70%

         This is the need of the hours...
       Copyright © 2013, AgileFAQs. All Rights Reserved.
Number of End-to-End Tests
  T1                          T2                               T3



                                                                        DB




                                                                    Classes
                                                                    Method Calls

   8                            9                              11

       70 Complex, Fragile End-to-End Tests
                        vs.
        61 Unit tests + 8 End-to-End Tests
           Copyright © 2013, AgileFAQs. All Rights Reserved.
Best ROI for Testing
                                                      Impact                          Effort


         End to End   10%   90%
Layers




               API
                                  65%                         35%



           Modules                70%                                          30%



               Unit                                                 90%                             10%

                      0            25                                  50                      75         100



                                                                 Value
                                        Copyright © 2013, AgileFAQs. All Rights Reserved.
Types of Tests in the Testing Pyramid
               GUI
               Tests                                                             GUI 1%
                                                                                 Tests           Performance
            Acceptance                                                                               Tests
               Tests                                                    End to End          4%        Security
                                                                        Flow Tests                     Tests
                                                                      One Layer Below GUI

             Unit Tests                                           Workflow Tests                  6%


Small Agile Projects with Single Team                          Integration Test                       9%


                                                    Biz Logic Acceptance Tests                             10%


                                                                      Unit Tests                                 70%

                                                 Large Scale Agile Projects with Global Teams
                             Copyright © 2013, AgileFAQs. All Rights Reserved.
Types of Tests for Large Agile Project
   Type            Tool                Who                        When                              Level                         Objective
              xUnit, Mockito/                                                                                         Each class functions correctly in isolation. The
                                                         During the Iteration, while
Unit Tests    Moq, Jasmine,       Developers             coding                             Class                     UI components (including JS) can also be unit
                                                                                                                      tested in isolation.
              HSqlDB, Jumble

Biz Logic  Cucumber (some TechBAs +                      Acceptance Criteria are         Work-steam specific
                                                                                                                      From a business logic point of view, the
                                                                                                                      functionality is implemented correctly. Works
                                                         defined before Iteration starts.
Acceptance may need Lisa) Developers +                   Acceptance Tests are written    business functionality       in isolation with other work-streams/modules.
                                                                                                                      Also good point to do some basic
Tests      JMeter/LoadRunner Testers (QA)                during Iteration, before coding (At component level)         performance testing.

                                                         Contracts are defined before        Between dependencies
Integration                       Developers +                                                                        2 Components can communicate with each
                                                         Iteration, tests are               (work-streams,            other correctly. Best suited for negative path
              xUnit + Lisa        Testers (QA) +
Test                              TechBAs
                                                         implemented during the
                                                         Iteration
                                                                                            upstream/down-stream      testing. Should not test any functional aspects
                                                                                                                      of the application.
                                                                                            systems, 3rd Party)

                              SMEs + TechBAs + UX                                  Across a few work-                 Inside a business operation, a particular step
Workflow                                            When a theme is picked                                             (business workflow) works correctly from the
              Cucumber + Lisa + Developers + Arch (functional group of Iterations) streams (Issuance/
Tests                         + Testers (QA + UAT)                                 Acceptance)
                                                                                                                      business point of view. Upstream/Downstream
                                                                                                                      dependencies stubbed.

                                                      When an Internal Milestone is
                                SMEs + TechBAs + UX decided, the E2E flow tests are                                    Ensure a specific type of business operation
End to End    Cucumber                                defined & authored. As & when End to end Trade flow,              can go thru all the steps successfully.
                                + Developers + Arch + the complete workflow is
Flow Tests    JMeter/LoadRunner
                                Testers (QA + UAT)    implemented these tests are
                                                                                    one layer below the UI            Very important to do detailed performance
                                                                                                                      testing at this stage.
                                                      enabled.

                                                         Usually its takes 3-4 Iterations
               Selenium/Sahi/                            to complete one whole
                                  TechBAs + UX +                                            End to end Trade flow Ensure all the basicthrough all the steps
                                                                                                                                      types of business
GUI Tests      Watir/White/                              workflow including the UI.                               operations can go
                  SWTBot          Testers (QA)           After that the UI tests will be    with GUI             successfully via a UI.
                                                         authored and executed.

                                            Copyright © 2013, AgileFAQs. All Rights Reserved.
“Testing” Touch Points during Project Lifecycle
                                                          Work-                                                                     Internal
 Product          Release             1st Release                          Iteration                           Iteration
                                      Themes             Stream                               Iteration                            Milestone          Release
 Discovery        Planning                                                 Planning                             Review
                                                         Planning                                                                   Release




➡Collaborate to                    ➡Ensure themes                   ➡Validate Acceptance                ➡Show demo (parts)                     ➡Sanity Testing in
create the story map               are coherent                     criteria at story level             ➡Confirm that the biz                   Live environment
➡Help SMEs to                      ➡Create theme                    ➡Estimate Tasks                     requirements are met                   ➡Participate in
define Acceptance                   level epics                                                          with stakeholders                      Release retros
Criteria at each level             ➡Author End-to-                                                      ➡Participate in
in story map                       end flow tests                                                        Iteration retrospectives



              ➡Define goals &                   ➡Author Work-flow tests                ➡Collaborate with Dev              ➡Sanity Testing in ER cycles
              readiness criteria               ➡Collaborate on identifying           & Biz to write Automated           ➡Confirm user goals are
              for each Release.                dependency and                        Acceptance Test                    met with operations team
                                               documenting them                      ➡Exploratory Testing               ➡Participate in Internal
                                               ➡Create stream level epics            ➡Buddy testing                     Release retrospective
                                               ➡Create Integration Test              ➡UI automation of
                                                                                     previous Iteration tasks
                                                                                     ➡Performance &
                                                                                     Security Tests

               ➡ The Continuous Integration and Build Pipeline process will execute all tests as part
                 of the regression pack and report various quality parameters to all stakeholders.
               ➡ On going Governance & Test Data management
                                                    Copyright © 2013, AgileFAQs. All Rights Reserved.
Inverting the Pyramid
        How to…?
1
Acceptance Test/Behavior Driven Development
Acceptance Test Driven Development
                                               Iteration

                                           Automated
             Acceptance                  Acceptance Tests
              Criteria



User Story           Automated
                      Unit Test
                                                                                Automated UI
                                                                                    Tests


                                                                                               P
                                                                                               E
                                           Automated                                           R
                                                                                               F
                                         Acceptance Tests
                                                                                               O
                                                                                               R
                                                                                               M
                                                                                Acceptance     E
                                             Exploratory                         Criteria      N   T
                                               Testing                                         C   E
                                                                                               E   S
                                                                                                   T
                            Copyright © 2013, AgileFAQs. All Rights Reserved.                      S
2
Acceptance Criteria Driven Discovery
Acceptance Criteria Driven Product Discovery
                                                                         Personas
Elevator            Business   Pragmatic                 User                            A
  Pitch              Goals     Personas                  Goals                           c
       Chartering                                                                        c
                                                                        Day in Life
                                                                                         e
                                                      Scenarios &                        p
                                                                         of each
                                                       Narratives
                                                                         Persona         t
                                                                                         a
   Participants                                                                          n
Product Manager/Owners          Story Mapping
                                                                       Activity Map      c
          SMEs
Operation/Support Reps                                                                   e
        Tech BAs                UI Sketch
                                                      Interaction
                                                                         Task Map
User Experience Designer                                Design                           C
    App Developers                                                                       r
       Architects                          Planning                                      i
   Testers (QA+UAT)            Reiterating
                                                      Grouping by       Prioritization   t
                                                       Themes                            e
    Project Managers
                                                                                         r
                                                       User Story Authoring
                                                                                         i
                                                      Acceptance           User
                                                       Criteria           Stories        a
Story	
  mapping	
  at	
  SEP




       Photo	
  courtesy	
  of	
  So@ware	
  Engineering	
  Professionals,	
  Indianapolis	
  IN
Src:	
  Jeff	
  Pa+on,	
  www.AgileProductDesign.com
Organize	
  &	
  Visualize	
  your	
  Product’s	
  Release	
  Roadmap




Src:	
  Jeff	
  Pa+on,	
  www.AgileProductDesign.com
3
Continuous Integration Pipeline
Typical Continuous Integration Process
                                     Reports




                                                                       Checkstyle




                                             Test               Test




            Copyright © 2013, AgileFAQs. All Rights Reserved.
Dev Box                        Continuous Integration Build Pipeline
                           Update
 Local                                         Version                                                   Checkout
Dev Build                 Checkin
                                               Control
  ~5 Min
                  Team CI Server                 ou
                                                    t                                         Checkout
                                                                                                                                         Project/Task




                                                           Checkout
                                                k
                                              ec                                                                Each build will update
                                                                                                                                         Management




                                                                              Ch
                      Smoke              Ch                                                                         Task statues




                                                                                 eck
                       Build
                                                                                                                                             Tool




                                                                                    out
                          ~10 Min
                                               Team CI Server
  Retrieve                                      Functional
  Artifacts                                       Build
                                                        ~30 Min
                            Retrieve                                                         Dev Env
                            Artifacts
                                                                                             Cross
                                               ts



               Publish
                                              ifac




              Artifacts                                                                      Stream
                                           Art




                 (jars)                                                                       Build
                                          d




                                                                                               ~60 Min
                                                                                 ts
                                      she




                                                                              ac                                SIT Env
                                                                          ti f                cts
                                                                                           ifa
                                       ubli




                                                                A     r                   t
                                                                                      r                        Theme
                                                             ed                 nt
                                                                                   A
                                     eP




                                                     b   lish              nd
                                                                             e                                  Build
                                 riev




                                                  Pu         ep
                                                                e
                                               ve
                                                                                                                ~60 Min
                                                          eD                                          acts
                                              e                                                 Artif
                              Ret




                                          tri          ot        hed
                                                                                                                              QA Env
                                      Re          om        ublis
                                                 r       eP                                                                 Product
                                              h/P Retriev
              Dependency                ub
                                           lis
                                                                           ed Artifacts                                      Build
              Management
                                       P                  Retrieve Publish                                                     ~60 Min
                                                                                                                                         UAT Env
                                                                                                                                          UAT
                                                                                                                                          Build
                                                                                                                                          ~30 Min
                                                                                                                                                    Staging Env
                                                                                                                               SCM                   Staging
                 Each build will broadcast build
                 stats and other reports to all                                                                                                       Build
                                                                                                                                                      ~30 Min
                 relevant stakeholders at each                                                                                                                    Prod Env
                 stage of the build pipeline
                                                                                                                                                                   Live
                                                                            Copyright © 2013, AgileFAQs. All Rights Reserved.
                                                                                                                                                                   Build
                                                                                                                                                                    ~30 Min
Local                                                              Cross
                                     Smoke                     Func                                       Theme                    Prod                  UAT                 Staging               Live
                 Dev                                                                Stream
                                      Build                    Build                                       Build                   Build                 Build                Build               Build
                 Build                                                               Build

                                 Ensure the                                                            Ensure each          Ensure each
                                                                               Ensure each story
                                 developer has          Ensure each story’s                            implemented,         implemented end-to-                           Ensure the product
                                                                               integrates with other                                                  Ensure
                                 checked in all files,   business logic is                              complete trade       end feature works as                          as as a whole can
             Ensure basic sanity                                               streams and business                                                   Operations can
                                 the code compiles,     implemented                                    workflow works        expected including                            work with other    Deploy the product
             before the                                                        logic continues to                                                     execute an end to
Objective    developer checks
                                 all unit tests work    correctly and
                                                                               work as expected.
                                                                                                       as expected.         various performance
                                                                                                                                                      end workflow and
                                                                                                                                                                          systems in the     to the live
                                 and basic code         satisfies the                                   Interact with as     and security related                          enterprise. Make environment.
             in code.                                                          Promote new                                                            it meets their
                                 quality related        doneness criteria at                           many sub-systems     SLAs are met. Also test                       Go/No-Go
                                                                               produced jars to                                                       goals.
                                 stats are reported     the story level                                & interfaces as      out the migration                             decision.
                                                                               dependent teams.
                                 to the devs.                                                          possible.            scripts

                                                                               Integrate promoted
                                                    Clean environment,         code with other         Clean                Migrate existing system   Migrate existing
             Retains the                                                                                                                                                  Migrate existing
                                Compiles, Unit test setup database, team       modules, runs cross-    environment,         to the latest version,    system to the
                                                                                                                                                                          system to the latest
             environment. Only
                                and static/dynamic specific biz                 team workflow &          setup dependent      setup dependent           latest version,
                                                                                                                                                                          version, test the    Migrate existing
             compiles and tests                     acceptance tests.          integration tests in    systems, execute     systems, execute          setup dependent
    Job      locally changed
                                code analysis on an
                                                    Stubs/Mocks out            an incremental env.     theme-level          product-level             systems, let the
                                                                                                                                                                          system with other system to the latest
                                incremental                                                                                                                               systems during the version and party!
             code                                   other functional           Stubs/Mocks other       acceptance tests.    acceptance and UI         Operations team
                                environment                                                                                                                               Enterprise Release
             (incremental).                         modules or sub-            sub-systems.            As few stubs/        tests. Almost no stubs/   use the system
                                                                                                                                                                          cycle.
                                                    systems.                   Promote jars to         mocks as possible.   mocks.                    thoroughly.
                                                                               dependent stream.
Duration     ~ 5 mins.            ~ 10 mins.                 ~ 30 mins              ~ 60 mins              ~ 60 mins              ~ 60 mins              ~ 30 mins            ~ 30 mins           ~ 30 mins

 Stake-       Developer writing    Developers of a
                                                        Team members of a
                                                        given team + Teach
                                                                                  All functionally
                                                                                 affected Teams +      All teams + SMEs        All teams + SMEs
                                                                                                                                                       SCM + SMEs +
                                                                                                                                                                           Enterprise Wide       World-wide
holders           the code           given team
                                                                BA                      SMEs
                                                                                                                                                      Operations Team

                                                                                                         On successful                                                                         On Successful
 Trigger/ Before checking in
          code. At least
                                  Every checkin. At
                                  least every 30
                                                          On successful          On successful
                                                        Smoke build. At least Functional build. At       Cross-Stream
                                                                                                                             On successful Theme
                                                                                                                              build. At least once     Each Iteration
                                                                                                                                                                           Each Enterprise      Staging Build
Frequency every 30 mins.          mins.                   every 2 hours       least twice each day       build. At least
                                                                                                         once each day
                                                                                                                                  each week
                                                                                                                                                                            Release Cycle    (Manually triggered
                                                                                                                                                                                                  for now)
             On developer’s                                                                                                                                                     Stating
  Where      workstation
                                   Team CI Server         Team CI Server        Dev Environment        SIT Environment         QA Environment         UAT Environment
                                                                                                                                                                             Environment
                                                                                                                                                                                               Production Env

                                                        Team produced Jars/                             Fully functional    Configured & packaged Configured &            Configured &
                                   Team produced                                 Integrated jars
             Code+Tests                                    Wars. Static+                                   app with             app (war) with      packaged app     packaged app (war)
 Artifacts   +Config
                                   Jars, static code
                                                          Dynamic Code
                                                                                   pushed to
                                                                                                        workflow level        migration scripts &      (war) with       with migration
                                                                                                                                                                                                     $$
                                   analysis reports                             dependent teams
                                                          Analysis reports                                  reports          traceability reports. migration scripts       scripts


 ➡ DevOps Roles (currently missing) & Test Data strategy is very important to get this working.
 ➡ Overall governance model will also be required to make sure build failures are addressed immediately.
                                                                 Copyright © 2013, AgileFAQs. All Rights Reserved.
Example Build Pipeline View




     Copyright © 2013, AgileFAQs. All Rights Reserved.
Automate 100%
Testing VS. Checking
Testing is explorative, probing and learning oriented.
Checking is confirmative (verification and validation of what we already
know). The outcome of a check is simply a pass or fail result; the outcome
doesn’t require human interpretation. Hence checking should be the first
target for automation.
                       James Bach points out that checking does require some element of testing; to create
                       a check requires an act of test design, and to act upon the result of a check requires
                       test result interpretation and learning. But its important to distinguish between the
                       two because when people refer to Testing they really mean Checking.


Why is this distinction important?
            Michael Bolton explains it really well: “A development strategy that emphasizes checking at the
            expense of testing is one in which we’ll emphasize confirmation of existing knowledge over
            discovery of new knowledge. That might be okay. A few checks might constitute sufficient testing
            for some purpose; no testing and no checking at all might even be sufficient for some purposes.
            But the more we emphasize checking over testing, and the less testing we do generally, the more
            we leave ourselves vulnerable to the Black Swan.”

                             Copyright © 2013, AgileFAQs. All Rights Reserved.
Questions?

Thank you
     Naresh Jain
naresh@agilefaqs.com


 Copyright © 2013, AgileFAQs. All Rights Reserved.

More Related Content

What's hot

Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeIndicThreads
 
QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]Jim Spillson
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with CypressYong Shean Chong
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven DevelopmentJohn Blum
 
Getting Started With Cypress
Getting Started With CypressGetting Started With Cypress
Getting Started With CypressKnoldus Inc.
 
Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentationBelatrix Software
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategytharindakasun
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan HameedHassan Muhammad
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentClaudia Ring
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidNaresh Jain
 
Cypress report
Cypress reportCypress report
Cypress reportAdarsh
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypressTomasz Bak
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best PracticesBrian Mann
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testingTharinda Liyanage
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in PracticeSteven Mak
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API TestingBruno Pedro
 

What's hot (20)

Agile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil KaradeAgile testing principles and practices - Anil Karade
Agile testing principles and practices - Anil Karade
 
QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]QA Best Practices in Digital Marketing [whitepaper]
QA Best Practices in Digital Marketing [whitepaper]
 
Automated testing with Cypress
Automated testing with CypressAutomated testing with Cypress
Automated testing with Cypress
 
Cypress Automation
Cypress  AutomationCypress  Automation
Cypress Automation
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Getting Started With Cypress
Getting Started With CypressGetting Started With Cypress
Getting Started With Cypress
 
Performance testing presentation
Performance testing presentationPerformance testing presentation
Performance testing presentation
 
"DevOps > CI+CD "
"DevOps > CI+CD ""DevOps > CI+CD "
"DevOps > CI+CD "
 
Agile Testing Strategy
Agile Testing StrategyAgile Testing Strategy
Agile Testing Strategy
 
Cypress e2e automation testing - day1 intor by: Hassan Hameed
Cypress e2e automation testing -  day1 intor by: Hassan HameedCypress e2e automation testing -  day1 intor by: Hassan Hameed
Cypress e2e automation testing - day1 intor by: Hassan Hameed
 
Shift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deploymentShift left - find defects earlier through automated test and deployment
Shift left - find defects earlier through automated test and deployment
 
Shift left-testing
Shift left-testingShift left-testing
Shift left-testing
 
Selenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing PyramidSelenium DeTox for Achieving the Right Testing Pyramid
Selenium DeTox for Achieving the Right Testing Pyramid
 
Cypress report
Cypress reportCypress report
Cypress report
 
e2e testing with cypress
e2e testing with cypresse2e testing with cypress
e2e testing with cypress
 
Cypress - Best Practices
Cypress - Best PracticesCypress - Best Practices
Cypress - Best Practices
 
Introduction to performance testing
Introduction to performance testingIntroduction to performance testing
Introduction to performance testing
 
Cypress
CypressCypress
Cypress
 
ATDD in Practice
ATDD in PracticeATDD in Practice
ATDD in Practice
 
How to Automate API Testing
How to Automate API TestingHow to Automate API Testing
How to Automate API Testing
 

Similar to Inverting The Testing Pyramid

Agile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clientsAgile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clientsYuval Yeret
 
Gabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsGabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsFrancesco Fullone
 
QA is dead long live the new QA - Agile Dev and QA Conference Israel
QA is dead long live the new QA - Agile Dev and QA Conference IsraelQA is dead long live the new QA - Agile Dev and QA Conference Israel
QA is dead long live the new QA - Agile Dev and QA Conference IsraelYuval Yeret
 
Effective Strategies for Distributed Testing
Effective Strategies for Distributed TestingEffective Strategies for Distributed Testing
Effective Strategies for Distributed TestingAnand Bagmar
 
The DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It RightThe DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It RightInflectra
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testingguestc8adce
 
Model-Based Testing to Help You Enhance Your Agile Testing Process
Model-Based Testing to Help You Enhance Your Agile Testing ProcessModel-Based Testing to Help You Enhance Your Agile Testing Process
Model-Based Testing to Help You Enhance Your Agile Testing ProcessFrederic Oehl
 
Automate your way to agility
Automate your way to agilityAutomate your way to agility
Automate your way to agilityYuval Yeret
 
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
 
Chapter 1 ASE Slides ppt
Chapter 1 ASE Slides pptChapter 1 ASE Slides ppt
Chapter 1 ASE Slides pptMr SMAK
 
Performance Testing on Agile Development Teams
Performance Testing on Agile Development TeamsPerformance Testing on Agile Development Teams
Performance Testing on Agile Development TeamsScott Barber
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingAnand Bagmar
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriverMikalai Alimenkou
 
Avatars of Test Driven Development (TDD)
Avatars of Test Driven Development (TDD)Avatars of Test Driven Development (TDD)
Avatars of Test Driven Development (TDD)Naresh Jain
 

Similar to Inverting The Testing Pyramid (20)

Agile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clientsAgile testing for agile sparks kanban clients
Agile testing for agile sparks kanban clients
 
Gabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web ApplicationsGabriele Lana: Testing Web Applications
Gabriele Lana: Testing Web Applications
 
QA is dead long live the new QA - Agile Dev and QA Conference Israel
QA is dead long live the new QA - Agile Dev and QA Conference IsraelQA is dead long live the new QA - Agile Dev and QA Conference Israel
QA is dead long live the new QA - Agile Dev and QA Conference Israel
 
Effective Strategies for Distributed Testing
Effective Strategies for Distributed TestingEffective Strategies for Distributed Testing
Effective Strategies for Distributed Testing
 
The DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It RightThe DevOps Dance - Shift Left, Shift Right - Get It Right
The DevOps Dance - Shift Left, Shift Right - Get It Right
 
QA Service Sheet
QA Service SheetQA Service Sheet
QA Service Sheet
 
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer TestingPivotal Labs Open View Presentation Quality Assurance And Developer Testing
Pivotal Labs Open View Presentation Quality Assurance And Developer Testing
 
Model-Based Testing to Help You Enhance Your Agile Testing Process
Model-Based Testing to Help You Enhance Your Agile Testing ProcessModel-Based Testing to Help You Enhance Your Agile Testing Process
Model-Based Testing to Help You Enhance Your Agile Testing Process
 
Automate your way to agility
Automate your way to agilityAutomate your way to agility
Automate your way to agility
 
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
 
Chapter 1 ASE Slides ppt
Chapter 1 ASE Slides pptChapter 1 ASE Slides ppt
Chapter 1 ASE Slides ppt
 
Answer powerpoint template
Answer powerpoint templateAnswer powerpoint template
Answer powerpoint template
 
Perf Intro Ppt
Perf Intro PptPerf Intro Ppt
Perf Intro Ppt
 
Performance Testing on Agile Development Teams
Performance Testing on Agile Development TeamsPerformance Testing on Agile Development Teams
Performance Testing on Agile Development Teams
 
Testing & Quality Assurance
Testing & Quality AssuranceTesting & Quality Assurance
Testing & Quality Assurance
 
Enabling CD in Enterprises with Testing
Enabling CD in Enterprises with TestingEnabling CD in Enterprises with Testing
Enabling CD in Enterprises with Testing
 
Service pemanas air solahart hp 081313462267
Service pemanas air solahart hp 081313462267Service pemanas air solahart hp 081313462267
Service pemanas air solahart hp 081313462267
 
Testing in agile
Testing in agileTesting in agile
Testing in agile
 
TDD in functional testing with WebDriver
TDD in functional testing with WebDriverTDD in functional testing with WebDriver
TDD in functional testing with WebDriver
 
Avatars of Test Driven Development (TDD)
Avatars of Test Driven Development (TDD)Avatars of Test Driven Development (TDD)
Avatars of Test Driven Development (TDD)
 

More from Naresh Jain

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignNaresh Jain
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteNaresh Jain
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational ResilienceNaresh Jain
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming CodeNaresh Jain
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference SummaryNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 ConferenceNaresh Jain
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingNaresh Jain
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniNaresh Jain
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniNaresh Jain
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarNaresh Jain
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppNaresh Jain
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdNaresh Jain
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Naresh Jain
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNaresh Jain
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016Naresh Jain
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 ConferenceNaresh Jain
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTNaresh Jain
 

More from Naresh Jain (20)

Problem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary DesignProblem Solving Techniques For Evolutionary Design
Problem Solving Techniques For Evolutionary Design
 
Agile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome NoteAgile India 2019 Conference Welcome Note
Agile India 2019 Conference Welcome Note
 
Organizational Resilience
Organizational ResilienceOrganizational Resilience
Organizational Resilience
 
Improving the Quality of Incoming Code
Improving the Quality of Incoming CodeImproving the Quality of Incoming Code
Improving the Quality of Incoming Code
 
Agile India 2018 Conference Summary
Agile India 2018 Conference SummaryAgile India 2018 Conference Summary
Agile India 2018 Conference Summary
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Agile India 2018 Conference
Agile India 2018 ConferenceAgile India 2018 Conference
Agile India 2018 Conference
 
Pilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert VirdingPilgrim's Progress to the Promised Land by Robert Virding
Pilgrim's Progress to the Promised Land by Robert Virding
 
Concurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco CesariniConcurrent languages are Functional by Francesco Cesarini
Concurrent languages are Functional by Francesco Cesarini
 
Erlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco CesariniErlang from behing the trenches by Francesco Cesarini
Erlang from behing the trenches by Francesco Cesarini
 
Anatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur DatarAnatomy of an eCommerce Search Engine by Mayur Datar
Anatomy of an eCommerce Search Engine by Mayur Datar
 
Setting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile AppSetting up Continuous Delivery Culture for a Large Scale Mobile App
Setting up Continuous Delivery Culture for a Large Scale Mobile App
 
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to ProdTowards FutureOps: Stable, Repeatable environments from Dev to Prod
Towards FutureOps: Stable, Repeatable environments from Dev to Prod
 
Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas Value Driven Development by Dave Thomas
Value Driven Development by Dave Thomas
 
No Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKennaNo Silver Bullets in Functional Programming by Brian McKenna
No Silver Bullets in Functional Programming by Brian McKenna
 
Functional Programming Conference 2016
Functional Programming Conference 2016Functional Programming Conference 2016
Functional Programming Conference 2016
 
Agile India 2017 Conference
Agile India 2017 ConferenceAgile India 2017 Conference
Agile India 2017 Conference
 
The Eclipse Way
The Eclipse WayThe Eclipse Way
The Eclipse Way
 
Unleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDTUnleashing the Power of Automated Refactoring with JDT
Unleashing the Power of Automated Refactoring with JDT
 

Recently uploaded

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Wonjun Hwang
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentationphoebematthew05
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDGMarianaLemus7
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 

Recently uploaded (20)

"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
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
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
Bun (KitWorks Team Study 노별마루 발표 2024.4.22)
 
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
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
costume and set research powerpoint presentation
costume and set research powerpoint presentationcostume and set research powerpoint presentation
costume and set research powerpoint presentation
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
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...
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
APIForce Zurich 5 April Automation LPDG
APIForce Zurich 5 April  Automation LPDGAPIForce Zurich 5 April  Automation LPDG
APIForce Zurich 5 April Automation LPDG
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 

Inverting The Testing Pyramid

  • 1. Inverting The Testing Pyramid Naresh Jain naresh@agilefaqs.com @nashjain http://nareshjain.com Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 2. Plan Back in the Stone-age Design Happiness/Excitement Distribute Work in Isolation Integrate Time/Money/Opportunity Cost
  • 3. Last Minute Integration Surprises Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 4. BAD things were visible too Late...
  • 6.
  • 7. CI Helped Us Learn That... Integrating Early, Integrating Often Collaboration Feedback Quality Delivery Time Wastage Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 8. Key Questions Business Facing Are we building the right product? Are we building the product right? Technology/Implementation Facing Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 9. Brian Marick’s Test Categorization Before/While Coding Post Coding Business Facing Supports Programming Critique product Technology/Implementation Facing Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 10. It Helps to Think of Tests this way... Business Facing Acceptance Testing Exploratory Testing Drives Development Critique product Low-fi prototypes UI and Usability Testing Performance Testing Unit Testing System Tests Technology/Implementation Facing Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 11. Test Driven Development Add a Test Pass Run the Test Fail TDD Rhythm - Test, Code, Refactor Make a little change Fail Run the Test Pass Refactor Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 12. Lean-Start-up Community Tried something quite disruptive...
  • 13.
  • 14. Continuous Deployment Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 15.
  • 17. Software Testing Ice-cream Cone Manual Checking End-to-End GUI Tests 10-20% Integration 5-10% Tests Unit Tests 1-5% Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 19. Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 21.
  • 22.
  • 23. Inverting the Testing Pyramid Typical testing strategies lead to an inverted testing pyramid... Manual Checking End-to-End GUI Tests 80-90% Integration 5-15% Tests Unit Tests 1-5% Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 24. Inverting the Testing Pyramid GUI 1% Tests Performance Tests End to End 4% Security Flow Tests Tests One Layer Below GUI Workflow Tests 6% Integration Test 9% Biz Logic Acceptance Tests 10% Unit Tests 70% This is the need of the hours... Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 25.
  • 26. Number of End-to-End Tests T1 T2 T3 DB Classes Method Calls 8 9 11 70 Complex, Fragile End-to-End Tests vs. 61 Unit tests + 8 End-to-End Tests Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 27. Best ROI for Testing Impact Effort End to End 10% 90% Layers API 65% 35% Modules 70% 30% Unit 90% 10% 0 25 50 75 100 Value Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 28. Types of Tests in the Testing Pyramid GUI Tests GUI 1% Tests Performance Acceptance Tests Tests End to End 4% Security Flow Tests Tests One Layer Below GUI Unit Tests Workflow Tests 6% Small Agile Projects with Single Team Integration Test 9% Biz Logic Acceptance Tests 10% Unit Tests 70% Large Scale Agile Projects with Global Teams Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 29. Types of Tests for Large Agile Project Type Tool Who When Level Objective xUnit, Mockito/ Each class functions correctly in isolation. The During the Iteration, while Unit Tests Moq, Jasmine, Developers coding Class UI components (including JS) can also be unit tested in isolation. HSqlDB, Jumble Biz Logic Cucumber (some TechBAs + Acceptance Criteria are Work-steam specific From a business logic point of view, the functionality is implemented correctly. Works defined before Iteration starts. Acceptance may need Lisa) Developers + Acceptance Tests are written business functionality in isolation with other work-streams/modules. Also good point to do some basic Tests JMeter/LoadRunner Testers (QA) during Iteration, before coding (At component level) performance testing. Contracts are defined before Between dependencies Integration Developers + 2 Components can communicate with each Iteration, tests are (work-streams, other correctly. Best suited for negative path xUnit + Lisa Testers (QA) + Test TechBAs implemented during the Iteration upstream/down-stream testing. Should not test any functional aspects of the application. systems, 3rd Party) SMEs + TechBAs + UX Across a few work- Inside a business operation, a particular step Workflow When a theme is picked (business workflow) works correctly from the Cucumber + Lisa + Developers + Arch (functional group of Iterations) streams (Issuance/ Tests + Testers (QA + UAT) Acceptance) business point of view. Upstream/Downstream dependencies stubbed. When an Internal Milestone is SMEs + TechBAs + UX decided, the E2E flow tests are Ensure a specific type of business operation End to End Cucumber defined & authored. As & when End to end Trade flow, can go thru all the steps successfully. + Developers + Arch + the complete workflow is Flow Tests JMeter/LoadRunner Testers (QA + UAT) implemented these tests are one layer below the UI Very important to do detailed performance testing at this stage. enabled. Usually its takes 3-4 Iterations Selenium/Sahi/ to complete one whole TechBAs + UX + End to end Trade flow Ensure all the basicthrough all the steps types of business GUI Tests Watir/White/ workflow including the UI. operations can go SWTBot Testers (QA) After that the UI tests will be with GUI successfully via a UI. authored and executed. Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 30. “Testing” Touch Points during Project Lifecycle Work- Internal Product Release 1st Release Iteration Iteration Themes Stream Iteration Milestone Release Discovery Planning Planning Review Planning Release ➡Collaborate to ➡Ensure themes ➡Validate Acceptance ➡Show demo (parts) ➡Sanity Testing in create the story map are coherent criteria at story level ➡Confirm that the biz Live environment ➡Help SMEs to ➡Create theme ➡Estimate Tasks requirements are met ➡Participate in define Acceptance level epics with stakeholders Release retros Criteria at each level ➡Author End-to- ➡Participate in in story map end flow tests Iteration retrospectives ➡Define goals & ➡Author Work-flow tests ➡Collaborate with Dev ➡Sanity Testing in ER cycles readiness criteria ➡Collaborate on identifying & Biz to write Automated ➡Confirm user goals are for each Release. dependency and Acceptance Test met with operations team documenting them ➡Exploratory Testing ➡Participate in Internal ➡Create stream level epics ➡Buddy testing Release retrospective ➡Create Integration Test ➡UI automation of previous Iteration tasks ➡Performance & Security Tests ➡ The Continuous Integration and Build Pipeline process will execute all tests as part of the regression pack and report various quality parameters to all stakeholders. ➡ On going Governance & Test Data management Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 31. Inverting the Pyramid How to…?
  • 33. Acceptance Test Driven Development Iteration Automated Acceptance Acceptance Tests Criteria User Story Automated Unit Test Automated UI Tests P E Automated R F Acceptance Tests O R M Acceptance E Exploratory Criteria N T Testing C E E S T Copyright © 2013, AgileFAQs. All Rights Reserved. S
  • 35. Acceptance Criteria Driven Product Discovery Personas Elevator Business Pragmatic User A Pitch Goals Personas Goals c Chartering c Day in Life e Scenarios & p of each Narratives Persona t a Participants n Product Manager/Owners Story Mapping Activity Map c SMEs Operation/Support Reps e Tech BAs UI Sketch Interaction Task Map User Experience Designer Design C App Developers r Architects Planning i Testers (QA+UAT) Reiterating Grouping by Prioritization t Themes e Project Managers r User Story Authoring i Acceptance User Criteria Stories a
  • 36. Story  mapping  at  SEP Photo  courtesy  of  So@ware  Engineering  Professionals,  Indianapolis  IN Src:  Jeff  Pa+on,  www.AgileProductDesign.com
  • 37. Organize  &  Visualize  your  Product’s  Release  Roadmap Src:  Jeff  Pa+on,  www.AgileProductDesign.com
  • 39. Typical Continuous Integration Process Reports Checkstyle Test Test Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 40. Dev Box Continuous Integration Build Pipeline Update Local Version Checkout Dev Build Checkin Control ~5 Min Team CI Server ou t Checkout Project/Task Checkout k ec Each build will update Management Ch Smoke Ch Task statues eck Build Tool out ~10 Min Team CI Server Retrieve Functional Artifacts Build ~30 Min Retrieve Dev Env Artifacts Cross ts Publish ifac Artifacts Stream Art (jars) Build d ~60 Min ts she ac SIT Env ti f cts ifa ubli A r t r Theme ed nt A eP b lish nd e Build riev Pu ep e ve ~60 Min eD acts e Artif Ret tri ot hed QA Env Re om ublis r eP Product h/P Retriev Dependency ub lis ed Artifacts Build Management P Retrieve Publish ~60 Min UAT Env UAT Build ~30 Min Staging Env SCM Staging Each build will broadcast build stats and other reports to all Build ~30 Min relevant stakeholders at each Prod Env stage of the build pipeline Live Copyright © 2013, AgileFAQs. All Rights Reserved. Build ~30 Min
  • 41. Local Cross Smoke Func Theme Prod UAT Staging Live Dev Stream Build Build Build Build Build Build Build Build Build Ensure the Ensure each Ensure each Ensure each story developer has Ensure each story’s implemented, implemented end-to- Ensure the product integrates with other Ensure checked in all files, business logic is complete trade end feature works as as as a whole can Ensure basic sanity streams and business Operations can the code compiles, implemented workflow works expected including work with other Deploy the product before the logic continues to execute an end to Objective developer checks all unit tests work correctly and work as expected. as expected. various performance end workflow and systems in the to the live and basic code satisfies the Interact with as and security related enterprise. Make environment. in code. Promote new it meets their quality related doneness criteria at many sub-systems SLAs are met. Also test Go/No-Go produced jars to goals. stats are reported the story level & interfaces as out the migration decision. dependent teams. to the devs. possible. scripts Integrate promoted Clean environment, code with other Clean Migrate existing system Migrate existing Retains the Migrate existing Compiles, Unit test setup database, team modules, runs cross- environment, to the latest version, system to the system to the latest environment. Only and static/dynamic specific biz team workflow & setup dependent setup dependent latest version, version, test the Migrate existing compiles and tests acceptance tests. integration tests in systems, execute systems, execute setup dependent Job locally changed code analysis on an Stubs/Mocks out an incremental env. theme-level product-level systems, let the system with other system to the latest incremental systems during the version and party! code other functional Stubs/Mocks other acceptance tests. acceptance and UI Operations team environment Enterprise Release (incremental). modules or sub- sub-systems. As few stubs/ tests. Almost no stubs/ use the system cycle. systems. Promote jars to mocks as possible. mocks. thoroughly. dependent stream. Duration ~ 5 mins. ~ 10 mins. ~ 30 mins ~ 60 mins ~ 60 mins ~ 60 mins ~ 30 mins ~ 30 mins ~ 30 mins Stake- Developer writing Developers of a Team members of a given team + Teach All functionally affected Teams + All teams + SMEs All teams + SMEs SCM + SMEs + Enterprise Wide World-wide holders the code given team BA SMEs Operations Team On successful On Successful Trigger/ Before checking in code. At least Every checkin. At least every 30 On successful On successful Smoke build. At least Functional build. At Cross-Stream On successful Theme build. At least once Each Iteration Each Enterprise Staging Build Frequency every 30 mins. mins. every 2 hours least twice each day build. At least once each day each week Release Cycle (Manually triggered for now) On developer’s Stating Where workstation Team CI Server Team CI Server Dev Environment SIT Environment QA Environment UAT Environment Environment Production Env Team produced Jars/ Fully functional Configured & packaged Configured & Configured & Team produced Integrated jars Code+Tests Wars. Static+ app with app (war) with packaged app packaged app (war) Artifacts +Config Jars, static code Dynamic Code pushed to workflow level migration scripts & (war) with with migration $$ analysis reports dependent teams Analysis reports reports traceability reports. migration scripts scripts ➡ DevOps Roles (currently missing) & Test Data strategy is very important to get this working. ➡ Overall governance model will also be required to make sure build failures are addressed immediately. Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 42. Example Build Pipeline View Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 43.
  • 45. Testing VS. Checking Testing is explorative, probing and learning oriented. Checking is confirmative (verification and validation of what we already know). The outcome of a check is simply a pass or fail result; the outcome doesn’t require human interpretation. Hence checking should be the first target for automation. James Bach points out that checking does require some element of testing; to create a check requires an act of test design, and to act upon the result of a check requires test result interpretation and learning. But its important to distinguish between the two because when people refer to Testing they really mean Checking. Why is this distinction important? Michael Bolton explains it really well: “A development strategy that emphasizes checking at the expense of testing is one in which we’ll emphasize confirmation of existing knowledge over discovery of new knowledge. That might be okay. A few checks might constitute sufficient testing for some purpose; no testing and no checking at all might even be sufficient for some purposes. But the more we emphasize checking over testing, and the less testing we do generally, the more we leave ourselves vulnerable to the Black Swan.” Copyright © 2013, AgileFAQs. All Rights Reserved.
  • 46. Questions? Thank you Naresh Jain naresh@agilefaqs.com Copyright © 2013, AgileFAQs. All Rights Reserved.