Agile Testing




Patrik Wikström
Agenda



 What is Agile?


 Agile Testing
   • Techniques
   • Agile values in practice
   • Skills
Agile development



  Short iterations of working software
  Provide business value continuously


  Extreme Programming,...
The software process steps


  Traditional development




  Agile development
Main variables of software development

                         Locked




               Scope              Time        ...
The cost of defects




Cost of defect                           Cost of defect




                                  Time...
Agile testing


  Work with the customer to define acceptance test
  Provide continuous feedback
    • To the customer
   ...
Test levels



     Unit test          Unit test
     Integration test
     System test
     Acceptance test    Acceptance...
Unit testing



  Developer feedback
  TDD – Test Driven Development
    • Design technique
  Run at each check-in
  xUnit...
Acceptance testing (1)



  Customer feedback
  Test the functionality in the current iteration
  Run often
  Should be au...
Acceptance testing (2)



  Tools: Open-source, build your own, or commercial
   • FitNesse – Table-based acceptance test ...
What’s in an iteration?


                                         Iteration 1

                               Story 1    ...
Exploratory testing


  Exploratory testing is simultaneous learning, test design,
  and test execution.


  What’s the be...
Non-functional testing


  Security, performance, usability
  Performed by
   • Specialist
   • Team
  Performed in
   • E...
Pair testing


  With testers
    • Distribute knowledge between testers
  With developers
    • Testers learn about the t...
Agile Values in practice


  Individuals and interactions over process and tools
    • Work as one team, do not act as the...
Controversy / Confusion



  All acceptance tests must be automated
  All manual tests must be fully scripted with expecte...
Skills



  “Traditional” testing skills
  Automation / development
  Exploratory testing
  Communication and collaboratio...
Benefits of being an agile tester



  Work together as one team towards a common goal


  Less risk of squeezed test peri...
Thank you for listening!




                  Any questions?


            patrik.wikstrom@testway.se
References

  Beck, K. (1999) Extreme Programming Explained: Embrace
  Change. Addison-Wesley.
  Cockburn, A. (2004) Cryst...
Upcoming SlideShare
Loading in …5
×

Agile Testing

3,341 views

Published on

1 Comment
3 Likes
Statistics
Notes
  • Tank you...for the best...guidence
       Reply 
    Are you sure you want to  Yes  No
    Your message goes here
No Downloads
Views
Total views
3,341
On SlideShare
0
From Embeds
0
Number of Embeds
719
Actions
Shares
0
Downloads
171
Comments
1
Likes
3
Embeds 0
No embeds

No notes for slide

Agile Testing

  1. 1. Agile Testing Patrik Wikström
  2. 2. Agenda What is Agile? Agile Testing • Techniques • Agile values in practice • Skills
  3. 3. Agile development Short iterations of working software Provide business value continuously Extreme Programming, Scrum, Lean Software Development…
  4. 4. The software process steps Traditional development Agile development
  5. 5. Main variables of software development Locked Scope Time Cost Time Cost Scope Traditional Agile development development
  6. 6. The cost of defects Cost of defect Cost of defect Time Time Testing Testing Traditional Agile development development
  7. 7. Agile testing Work with the customer to define acceptance test Provide continuous feedback • To the customer • To the programmers Exploratory testing Automated testing Programmers do unit testing
  8. 8. Test levels Unit test Unit test Integration test System test Acceptance test Acceptance test Traditional Agile development development
  9. 9. Unit testing Developer feedback TDD – Test Driven Development • Design technique Run at each check-in xUnit Continuous integration
  10. 10. Acceptance testing (1) Customer feedback Test the functionality in the current iteration Run often Should be automated Can be done test-first (ATDD)
  11. 11. Acceptance testing (2) Tools: Open-source, build your own, or commercial • FitNesse – Table-based acceptance test framework using Wiki • WATIR – ”Web Application Testing in Ruby” – next seminar Automation • Below the GUI • Collaborate with developers on testability
  12. 12. What’s in an iteration? Iteration 1 Story 1 Story 2 Acceptance Acceptance test 1.1 AT 1.2 AT 1.3 test 2 … Unit test 1.1.1 UT 1.1.2 UT 1.1.3 UT 1.2 UT 1.3 Unit test 2 Code 1.1.1 C 1.1.2 C 1.1.3 C 1.2 C 1.3 Code 2 Story 3 ...
  13. 13. Exploratory testing Exploratory testing is simultaneous learning, test design, and test execution. What’s the best test I can perform, right now? James Bach Tutorial: Exploratory Testing Explained Malmö, March 9
  14. 14. Non-functional testing Security, performance, usability Performed by • Specialist • Team Performed in • Every iteration • Last iteration
  15. 15. Pair testing With testers • Distribute knowledge between testers With developers • Testers learn about the technology used and about automation • Developers learn about testing With customers • Testers learn about the domain • Customers learn about testing
  16. 16. Agile Values in practice Individuals and interactions over process and tools • Work as one team, do not act as the quality police • Face-to-face communication Working software over comprehensive documentation • Lightweight test reporting – “dashboard” • Automated unit and acceptance tests Customer collaboration over contract negotiation Responding to change over following a plan • Just-in-time test planning • No BDUF of automation framework • Refactor automated tests
  17. 17. Controversy / Confusion All acceptance tests must be automated All manual tests must be fully scripted with expected outcomes Programmer-centric view (No testers are needed?) Terminology
  18. 18. Skills “Traditional” testing skills Automation / development Exploratory testing Communication and collaboration • With developers in their language • With customers in their language
  19. 19. Benefits of being an agile tester Work together as one team towards a common goal Less risk of squeezed test period Test all the time, not just at the end
  20. 20. Thank you for listening! Any questions? patrik.wikstrom@testway.se
  21. 21. References Beck, K. (1999) Extreme Programming Explained: Embrace Change. Addison-Wesley. Cockburn, A. (2004) Crystal Clear: A Human-Powered Methodology for Small Teams. Addison-Wesley. Crispin, L., & House, T. (2002) Testing Extreme Programming. Addison-Wesley. Hendrickson, E. (2004) Agility for Testers. Pacific Northwest Software Quality Conference 2004. Kohl, J. (2004) Pair Testing. Better Software, Jan 2004. Pettichord, B. (2004) Agile Testing Challenges. Pacific Northwest Software Quality Conference 2004. Poppendieck, M. & Poppendieck, T. (2003) Lean Software Development. Addison-Wesley. Schwaber, K. & Beedle, M. (2001) Agile Software Development with SCRUM. Prentice Hall.

×