Testing in Agile
                                     Ari Tanninen
                                Agile Dinner Helsinki
                                 December 1st 2009




Wednesday, December 2, 2009
Agenda
                              Introductions
                                Motivation


Wednesday, December 2, 2009
Assumptions

                   • Understanding of software development
                   • Familiarity of agile
                   • Basic testing know-how


Wednesday, December 2, 2009
My Biases

                   • Java developer
                   • Object-orientation
                   • Consulting


Wednesday, December 2, 2009
Everything About
                                   Testing


Wednesday, December 2, 2009
Functional testing...
                   • Black box
                   • White box
                   • Grey box
                   • Regression
                   • Smoke
                   • User
Wednesday, December 2, 2009
Levels of testing...
                   • Unit
                   • Module
                   • Component
                   • Integration
                   • System
                   • System integration
Wednesday, December 2, 2009
More testing!
                   • Performance, scalability, stability, stress
                   • Destructive
                   • Usability
                   • Security
                   • Exploratory
                   • Monkey
Wednesday, December 2, 2009
Wednesday, December 2, 2009
Back to Basics



Wednesday, December 2, 2009
Purposes of Testing

                   • Product validation (the right product?)
                   • Support development (built right?)
                   • User / Technology
                   • System / Code

Wednesday, December 2, 2009
Wednesday, December 2, 2009




                              Source: Brian Marick, Mary Poppendieck, additions by me
                              http://www.exampler.com/old-blog/2003/08/21/#agile-testing-project-1
                              http://stopandfix.blogspot.com/2009/04/all-about-testing.html
Agile Needs from
                                    Testing


Wednesday, December 2, 2009
Waterfall


                  Planning    Analysis   Design   Coding   Testing   Deploying   Done!



                    Risk analysis
                   Test planning
                  Test case design


Wednesday, December 2, 2009
Risk analysis
                                                 Agile
      Test planning             Risk analysis
     Test case design           Test planning
                              Test case design



                  Planning    Analysis    Design   Coding     Testing   Deploying   Done!
                  Planning    Analysis    Design   Coding     Testing   Deploying   Done!
                  Planning    Analysis    Design   Coding     Testing   Deploying   Done!
                  Planning    Analysis    Design   Coding     Testing   Deploying   Done!

                    Risk analysis
                   Test planning
                  Test case design                          Definition of done: tested
Wednesday, December 2, 2009
Potentially shippable
                 functionality at the end
                    of every iteration?


Wednesday, December 2, 2009
Wednesday, December 2, 2009




                              Source: Brian Marick, Mary Poppendieck, additions by me
                              http://www.exampler.com/old-blog/2003/08/21/#agile-testing-project-1
                              http://stopandfix.blogspot.com/2009/04/all-about-testing.html
The Problem

                              Features to be tested




                                                      1   2       3   4

                                                          Iteration


Wednesday, December 2, 2009
Test Automation



Wednesday, December 2, 2009
Automated testing?




                          Automated test case execution!



                              Who designs and automates the test cases?



Wednesday, December 2, 2009
Agile Development
                               Up-front
                                           Design must
                                design
                                             evolve
                              impossible


    Iterative and                                                        Regression      Test
     incremental                                       Refactoring         testing    automation
    development


                              Features                                                  Test-first
                               added,       Changing                                  development
                              changed,      codebase
                              removed


                                                                     Tests, too!

Wednesday, December 2, 2009
The Key to Test
                                    Automation

                       Testing tools?


                                                            Software development



                          http://stopandfix.blogspot.com/2009/03/key-to-test-automation.html


Wednesday, December 2, 2009
Tests are software, too

                   • Evolution
                   • Architecture & design
                   • Iterative & incremental development
                   • Readability (➙DSL)

Wednesday, December 2, 2009
Why test-first?

                   • Efficient, least boring way to regression
                   • Minimalism (“do only what is needed”)
                   • “Done”
                   • Design
                   • Collaboration

Wednesday, December 2, 2009
Unit Test Driven Development

                              Acceptance Test Driven
                                  Development



Wednesday, December 2, 2009
Challenges to Testing

                   • Changing spec, code, and tests
                   • “Potentially shippable” after every iteration
                   • Usability & property testing
                   • Tester’s role

Wednesday, December 2, 2009
Tester’s Role Redefined

                   • Acceptance tests, user view of system
                   • Business value focus, PO liaison
                   • Exploratory testing & the difficult stuff
                   • Thinking, contributing team member
                   • Learn programming, train developers

Wednesday, December 2, 2009
Keys to Agile Testing

                   • Developer testing
                   • Evolving testing tools ➙ programming
                   • Lazy & adaptive mindset
                   • Collaboration

Wednesday, December 2, 2009
Beer.



Wednesday, December 2, 2009

Testing In Agile

  • 1.
    Testing in Agile Ari Tanninen Agile Dinner Helsinki December 1st 2009 Wednesday, December 2, 2009
  • 2.
    Agenda Introductions Motivation Wednesday, December 2, 2009
  • 3.
    Assumptions • Understanding of software development • Familiarity of agile • Basic testing know-how Wednesday, December 2, 2009
  • 4.
    My Biases • Java developer • Object-orientation • Consulting Wednesday, December 2, 2009
  • 5.
    Everything About Testing Wednesday, December 2, 2009
  • 6.
    Functional testing... • Black box • White box • Grey box • Regression • Smoke • User Wednesday, December 2, 2009
  • 7.
    Levels of testing... • Unit • Module • Component • Integration • System • System integration Wednesday, December 2, 2009
  • 8.
    More testing! • Performance, scalability, stability, stress • Destructive • Usability • Security • Exploratory • Monkey Wednesday, December 2, 2009
  • 9.
  • 10.
    Back to Basics Wednesday,December 2, 2009
  • 11.
    Purposes of Testing • Product validation (the right product?) • Support development (built right?) • User / Technology • System / Code Wednesday, December 2, 2009
  • 12.
    Wednesday, December 2,2009 Source: Brian Marick, Mary Poppendieck, additions by me http://www.exampler.com/old-blog/2003/08/21/#agile-testing-project-1 http://stopandfix.blogspot.com/2009/04/all-about-testing.html
  • 13.
    Agile Needs from Testing Wednesday, December 2, 2009
  • 14.
    Waterfall Planning Analysis Design Coding Testing Deploying Done! Risk analysis Test planning Test case design Wednesday, December 2, 2009
  • 15.
    Risk analysis Agile Test planning Risk analysis Test case design Test planning Test case design Planning Analysis Design Coding Testing Deploying Done! Planning Analysis Design Coding Testing Deploying Done! Planning Analysis Design Coding Testing Deploying Done! Planning Analysis Design Coding Testing Deploying Done! Risk analysis Test planning Test case design Definition of done: tested Wednesday, December 2, 2009
  • 16.
    Potentially shippable functionality at the end of every iteration? Wednesday, December 2, 2009
  • 17.
    Wednesday, December 2,2009 Source: Brian Marick, Mary Poppendieck, additions by me http://www.exampler.com/old-blog/2003/08/21/#agile-testing-project-1 http://stopandfix.blogspot.com/2009/04/all-about-testing.html
  • 18.
    The Problem Features to be tested 1 2 3 4 Iteration Wednesday, December 2, 2009
  • 19.
  • 20.
    Automated testing? Automated test case execution! Who designs and automates the test cases? Wednesday, December 2, 2009
  • 21.
    Agile Development Up-front Design must design evolve impossible Iterative and Regression Test incremental Refactoring testing automation development Features Test-first added, Changing development changed, codebase removed Tests, too! Wednesday, December 2, 2009
  • 22.
    The Key toTest Automation Testing tools? Software development http://stopandfix.blogspot.com/2009/03/key-to-test-automation.html Wednesday, December 2, 2009
  • 23.
    Tests are software,too • Evolution • Architecture & design • Iterative & incremental development • Readability (➙DSL) Wednesday, December 2, 2009
  • 24.
    Why test-first? • Efficient, least boring way to regression • Minimalism (“do only what is needed”) • “Done” • Design • Collaboration Wednesday, December 2, 2009
  • 25.
    Unit Test DrivenDevelopment Acceptance Test Driven Development Wednesday, December 2, 2009
  • 26.
    Challenges to Testing • Changing spec, code, and tests • “Potentially shippable” after every iteration • Usability & property testing • Tester’s role Wednesday, December 2, 2009
  • 27.
    Tester’s Role Redefined • Acceptance tests, user view of system • Business value focus, PO liaison • Exploratory testing & the difficult stuff • Thinking, contributing team member • Learn programming, train developers Wednesday, December 2, 2009
  • 28.
    Keys to AgileTesting • Developer testing • Evolving testing tools ➙ programming • Lazy & adaptive mindset • Collaboration Wednesday, December 2, 2009
  • 29.