SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
Surviving in an Agile
    Environment
    Markus Clermont
Agile Software Development (1)

The Agile Manifesto states:

   Individuals and interactions over processes and tools
   Working software over comprehensive documentation
   Customer collaboration over contract negotiation
   Responding to change over following a plan
Agile Software Development (2)

Some further principles:

   Release early & release often
   Open to changing requirements. Any time.
   Much informal communication between stakeholders
   Frequent refactoring; changes in the architecture and the
   design of the software
   Teams are meant to be self-organizing
      Small "family-size" teams work on subsets of the
      problem.
      Functional decomposition
      Little communication between teams required.
What does that mean for QA

 Once the features are developed, QA is meant to make sure
 it works
 QA often starts only after the product is finished
     Focus on testing
     That makes us really QC, not QA,
     Relying a lot on a well-known, well-defined process,
     Clearly defined interface between "QA" and "dev".

 We tend to take ownership of quality in the traditional
 development.
    That starts too often only when the development is
    already finished.

 There is Agile Development until QA gets involed.
What changes need to be made?

 1. Don't take ownership of quality.
 2. Get involved early.
 3. Review the design, participate in code-reviews.
 4. Give positive re-enforcement and point out problems.
 5. Make sure that your team is an integral part of the dev-team
 6. Make sure your tools are part of their toolbox.
 7. Make sure that the needed skills are in the team.
 8. Don't do the release-process.
 9. Become an integral part in the customer - developer
    interactions.
10. Working software that satisfies the customer is the goal.
Don't Take Ownership of Quality

  Only the developers can create the quality.
  We should make it really easy for them to create quality:
     Be a consultant and suggest creative ways to solve
     problems
     Help choosing the right tools for the problem
         Continuous builds
         UI-Test tools
         Testing frameworks
         Provide customization of these tools.

  Be the advocate for quality towards project-management.
  Test-Automation is a common pitfall.
The Test-Automation Pitfall

  Short release cycles:
     Not enough time for manual testing
     Not enough time to properly automate all the tests.
  Lack of documentation:
     No deep understanding how a certain scenario should
     be tested.
     No way to find out what changed in the system that can
     make my tests brake.
  Teams start to spend more and more times on investigating
  and fixing breakages.
  Credibility of the tests suffer.
So, what to do?

  Start at the bottom of the pyramid:
     Test-Driven Development
     (Frequent refactoring)
     High unit-test coverage,
     Education & Best Practices
  Reduce the number of "big" tests.
     Make the smallest possible tests,
     and a few big end-to-end tests.
  Execute the tests at every change in the code-repository
     Make the person who breaks them fix them
  On the long run,
     Have those who provide a new feature write the
     integration- and end-to-end tests,
     but make it really easy to do so.
Get involved early

  Always look at the testability of new features,
  Early feedback is likely to be taken into account.
  Help to make time plans more realistic
     Less pressure on the developers means better quality.
     Time requirements for testing can be taken into account
Review the Design and the Code

 Design - Quality is an important aspect of the software
 quality:
    Re-usability,
    Maintainability,
    Testability
 Speaking up early can help to prevent these problems.
 And it makes it easier to get more and better tests.

 The same is true for code.
    Two implementations of the same feat
    Test-code is code, too.
    Is the code easy to test,
    are the tests sufficient, good, and adequate?
Give positive re-enforcement

  Doing quality software should be fun.
  Look for reward mechanisms inside your company
  Use them...
     Talk to the manager,
     Spend money on an offsite
     Do a testing-competition, with a cool prize

  Don't forget to point out problems, too.
Team Integration

 Agile development has a lot of informal communication, and
 undefined processes.
 If the QA team is not in the middle of that, it is almost
 impossible to catch up later.
 Allows to recognize testing / quality challenges early on and
 react.
 Giving early feedback becomes easier, too.
 Increases the technical understanding of the product.
      More valuable feedback
      Better solutions to quality problems.
 Gives a wider view on the problems a project is facing.
Tool Integration

  The organizational separation of QA and Dev-Team often
  reflects in separate "Tool-Worlds"
  "Tools" for the developers:
      Programming Language
      IDE
      Libraries and Frameworks
  "Tools" for QA:
      Process description
      Test-Automation Tools, Scripts
      Bug-Tracking

  Transferring ownership is hard if the tools are unknown.
  Try to speak the same language.
Skills

  Not every test-engineer is a software-engineer.
  Difficulties:
      Communication,
      Gaining technical respect,
      Finding the best way to test a product,
          Typically very low-level (unit-tests), and high-level
          (end-to-end) tests.
          No integration tests.
      Finding flaws in the design.
  What can be done?
      Train your test-engineers about software-engineering,
          Programming,
          Design,
          Unit-Tests.
Don't do the release-process

  In the release process quality problems show themselves in
  their most powerful way.
  Whoever is driving the release-process has most interest in
  following the best practices we preach
      If not yet, wait 2 or 3 release cycles.
  On-Call duty is a further incentive :)
  The decision to release will always be a trade-off.
Participate in the customer - developer
interactions.
  In agile development, UAT is often done by the customer (or
  the direct representative)
  The only person who really knows how the product should
  work, is the customer.
  The customer - developer interaction is the single most
  important source for requirements.
  Sitting on the same table with the customer helps to
      clarify requirements when they are posed
      figure out the pain points with the current solution
      understand requirements ourselves for better testing
      thereof.
Working Software is the Goal

  For everything we do, ask:
     How does that contribute to that goal?
     Do we need to do it?
     More often? Less often?
     Can we do it different- better, faster, more effectively?

  The common interest with development is to give the
  customer software that satisfies the needs (see the "release
  trade-off").

  Constructive feedback.
Two case-studies
Questions?




         Thank you for your attention!

Mais conteúdo relacionado

Mais procurados

Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationMuaazZubairi
 
Are Testers Failed Programmers?
Are Testers Failed Programmers?Are Testers Failed Programmers?
Are Testers Failed Programmers?Kualitatem
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Groupsuwalki24.pl
 
How To Become A Good Agile Tester?
How To Become A Good Agile Tester?How To Become A Good Agile Tester?
How To Become A Good Agile Tester?Kualitatem
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XPVashira Ravipanich
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme ProgrammingJoe Drumgoole
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teamsDennis Popov
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test AutomationNaveen Kumar Singh
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process ModelsAhsan Rahim
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAniruddha Chakrabarti
 
XP Explained
XP ExplainedXP Explained
XP Explainedvineet
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-modelAli MasudianPour
 
Test driven development
Test driven developmentTest driven development
Test driven developmentSunil Prasad
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanQA or the Highway
 

Mais procurados (20)

Xp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentationXp(Xtreme Programming) presentation
Xp(Xtreme Programming) presentation
 
XP In 10 slides
XP In 10 slidesXP In 10 slides
XP In 10 slides
 
Are Testers Failed Programmers?
Are Testers Failed Programmers?Are Testers Failed Programmers?
Are Testers Failed Programmers?
 
Agile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User GroupAgile Testing - presentation for Agile User Group
Agile Testing - presentation for Agile User Group
 
How To Become A Good Agile Tester?
How To Become A Good Agile Tester?How To Become A Good Agile Tester?
How To Become A Good Agile Tester?
 
Agile Software Development with XP
Agile Software Development with XPAgile Software Development with XP
Agile Software Development with XP
 
Introduction To Extreme Programming
Introduction To Extreme ProgrammingIntroduction To Extreme Programming
Introduction To Extreme Programming
 
Agile software development
Agile software developmentAgile software development
Agile software development
 
! Testing for agile teams
! Testing for agile teams! Testing for agile teams
! Testing for agile teams
 
Extreme Programming
Extreme ProgrammingExtreme Programming
Extreme Programming
 
What is agile
What is agileWhat is agile
What is agile
 
Agile Testing and Test Automation
Agile Testing and Test AutomationAgile Testing and Test Automation
Agile Testing and Test Automation
 
Agile Development | Agile Process Models
Agile Development | Agile Process ModelsAgile Development | Agile Process Models
Agile Development | Agile Process Models
 
Agile Practices - eXtreme Programming
Agile Practices - eXtreme ProgrammingAgile Practices - eXtreme Programming
Agile Practices - eXtreme Programming
 
Xtreme Programming
Xtreme ProgrammingXtreme Programming
Xtreme Programming
 
XP Explained
XP ExplainedXP Explained
XP Explained
 
Xp exterme-programming-model
Xp exterme-programming-modelXp exterme-programming-model
Xp exterme-programming-model
 
Test driven development
Test driven developmentTest driven development
Test driven development
 
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh EastmanBehavior Driven Development—A Guide to Agile Practices by Josh Eastman
Behavior Driven Development—A Guide to Agile Practices by Josh Eastman
 
Extreme programming
Extreme programmingExtreme programming
Extreme programming
 

Semelhante a Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland

Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology  Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology Zoe Gilbert
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XPSemen Arslan
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gapGuillagui San
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile EngineeringJohn Lewis
 
Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Peter Marshall
 
Software presentation
Software presentationSoftware presentation
Software presentationJennaPrengle
 
The productivity of testing in software development life cycle
The productivity of testing in software development life cycleThe productivity of testing in software development life cycle
The productivity of testing in software development life cycleNora Alriyes
 
The Essentials Of Test Driven Development
The Essentials Of Test Driven Development The Essentials Of Test Driven Development
The Essentials Of Test Driven Development Rock Interview
 
Myths and reality about software testing
Myths and reality about software testingMyths and reality about software testing
Myths and reality about software testingAlisha Henderson
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Developmentadrianmitev
 
Benefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementBenefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementDavid Updike
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015Raghu Karnati
 
Aim (A).pptx
Aim (A).pptxAim (A).pptx
Aim (A).pptx14941
 
Boast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CDBoast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CDZoe Gilbert
 
Best Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project ManagementBest Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project ManagementRobert McGeachy
 
Introduction to Software Review
Introduction to Software ReviewIntroduction to Software Review
Introduction to Software ReviewPhilip Johnson
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfyedej15330
 

Semelhante a Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland (20)

Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology  Agile Testing: Best Practices and Methodology
Agile Testing: Best Practices and Methodology
 
Agile Manifesto & XP
Agile Manifesto & XPAgile Manifesto & XP
Agile Manifesto & XP
 
Bridging the communication gap
Bridging the communication gapBridging the communication gap
Bridging the communication gap
 
Agile Engineering
Agile EngineeringAgile Engineering
Agile Engineering
 
Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"Slides from "Taking an Holistic Approach to Product Quality"
Slides from "Taking an Holistic Approach to Product Quality"
 
Software presentation
Software presentationSoftware presentation
Software presentation
 
The productivity of testing in software development life cycle
The productivity of testing in software development life cycleThe productivity of testing in software development life cycle
The productivity of testing in software development life cycle
 
Agile testing
Agile testingAgile testing
Agile testing
 
The Essentials Of Test Driven Development
The Essentials Of Test Driven Development The Essentials Of Test Driven Development
The Essentials Of Test Driven Development
 
Myths and reality about software testing
Myths and reality about software testingMyths and reality about software testing
Myths and reality about software testing
 
Test-Driven Development
Test-Driven DevelopmentTest-Driven Development
Test-Driven Development
 
Benefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior ManagementBenefits of Agile Software Development for Senior Management
Benefits of Agile Software Development for Senior Management
 
Agile Testing 20021015
Agile Testing 20021015Agile Testing 20021015
Agile Testing 20021015
 
Aim (A).pptx
Aim (A).pptxAim (A).pptx
Aim (A).pptx
 
Boast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CDBoast the Potential of DevOps with CI CD
Boast the Potential of DevOps with CI CD
 
Best Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project ManagementBest Practices When Moving To Agile Project Management
Best Practices When Moving To Agile Project Management
 
Introduction to Software Review
Introduction to Software ReviewIntroduction to Software Review
Introduction to Software Review
 
Stm unit1
Stm unit1Stm unit1
Stm unit1
 
Quality Software Development
Quality Software DevelopmentQuality Software Development
Quality Software Development
 
ch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdfch2-Agile-Software-Development-engineerning.pdf
ch2-Agile-Software-Development-engineerning.pdf
 

Mais de David O'Dowd

Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copyDavid O'Dowd
 
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandJanet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandDavid O'Dowd
 
Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges IrelandDavid O'Dowd
 
Gordon baisley - eircom - Introducing the EDM role with www.softtest.ie
Gordon baisley - eircom - Introducing the EDM role with www.softtest.ieGordon baisley - eircom - Introducing the EDM role with www.softtest.ie
Gordon baisley - eircom - Introducing the EDM role with www.softtest.ieDavid O'Dowd
 
Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...
Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...
Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...David O'Dowd
 
Intune Agile Testing Talk with www.softtest.ie
Intune Agile Testing Talk with www.softtest.ieIntune Agile Testing Talk with www.softtest.ie
Intune Agile Testing Talk with www.softtest.ieDavid O'Dowd
 
Mobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieMobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieDavid O'Dowd
 
HMH Agile Testing Lightning Talk with www.softtest.ie
HMH Agile Testing Lightning Talk with www.softtest.ieHMH Agile Testing Lightning Talk with www.softtest.ie
HMH Agile Testing Lightning Talk with www.softtest.ieDavid O'Dowd
 
Soft Test Ireland - Introduction to Jakarta Jmeter - Philip Bannon
Soft Test Ireland - Introduction to Jakarta Jmeter - Philip BannonSoft Test Ireland - Introduction to Jakarta Jmeter - Philip Bannon
Soft Test Ireland - Introduction to Jakarta Jmeter - Philip BannonDavid O'Dowd
 
www.softtest.ie presents Selenium 2 With David Burn's
www.softtest.ie presents Selenium 2 With David Burn'swww.softtest.ie presents Selenium 2 With David Burn's
www.softtest.ie presents Selenium 2 With David Burn'sDavid O'Dowd
 
Agile Test Management - www.softtest.ie
Agile Test Management - www.softtest.ieAgile Test Management - www.softtest.ie
Agile Test Management - www.softtest.ieDavid O'Dowd
 
Michael Bolton - Two futures of software testing - Sept 2010
Michael Bolton - Two futures of software testing - Sept 2010Michael Bolton - Two futures of software testing - Sept 2010
Michael Bolton - Two futures of software testing - Sept 2010David O'Dowd
 
Whittaker How To Break Software Security - SoftTest Ireland
Whittaker How To Break Software Security - SoftTest IrelandWhittaker How To Break Software Security - SoftTest Ireland
Whittaker How To Break Software Security - SoftTest IrelandDavid O'Dowd
 
David Parnas - Documentation Based Software Testing - SoftTest Ireland
David Parnas - Documentation Based Software Testing - SoftTest IrelandDavid Parnas - Documentation Based Software Testing - SoftTest Ireland
David Parnas - Documentation Based Software Testing - SoftTest IrelandDavid O'Dowd
 
James Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environmentJames Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environmentDavid O'Dowd
 
Neil Tompson - SoftTest Ireland
Neil Tompson - SoftTest IrelandNeil Tompson - SoftTest Ireland
Neil Tompson - SoftTest IrelandDavid O'Dowd
 
Neil Thompson - Thinking tools: from top motors, through software process imp...
Neil Thompson - Thinking tools: from top motors, through software process imp...Neil Thompson - Thinking tools: from top motors, through software process imp...
Neil Thompson - Thinking tools: from top motors, through software process imp...David O'Dowd
 
Tester's are doing it for themselves - Julie Gardiner - SoftTest Ireland
Tester's are doing it for themselves - Julie Gardiner - SoftTest IrelandTester's are doing it for themselves - Julie Gardiner - SoftTest Ireland
Tester's are doing it for themselves - Julie Gardiner - SoftTest IrelandDavid O'Dowd
 
Test Automation: A Roadmap For Sucesss
Test Automation: A Roadmap For SucesssTest Automation: A Roadmap For Sucesss
Test Automation: A Roadmap For SucesssDavid O'Dowd
 
Susan windsor soft test 16th november 2005
Susan windsor soft test   16th november 2005Susan windsor soft test   16th november 2005
Susan windsor soft test 16th november 2005David O'Dowd
 

Mais de David O'Dowd (20)

Ios driver presentation copy
Ios driver presentation copyIos driver presentation copy
Ios driver presentation copy
 
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest IrelandJanet Gregory presents Current Testing Challenges with SoftTest Ireland
Janet Gregory presents Current Testing Challenges with SoftTest Ireland
 
Current Testing Challenges Ireland
Current Testing Challenges IrelandCurrent Testing Challenges Ireland
Current Testing Challenges Ireland
 
Gordon baisley - eircom - Introducing the EDM role with www.softtest.ie
Gordon baisley - eircom - Introducing the EDM role with www.softtest.ieGordon baisley - eircom - Introducing the EDM role with www.softtest.ie
Gordon baisley - eircom - Introducing the EDM role with www.softtest.ie
 
Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...
Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...
Subhendu Mohapatra - BearingPoint - Environments Management talk with www.sof...
 
Intune Agile Testing Talk with www.softtest.ie
Intune Agile Testing Talk with www.softtest.ieIntune Agile Testing Talk with www.softtest.ie
Intune Agile Testing Talk with www.softtest.ie
 
Mobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ieMobile Testing Challenges Lighting Talk with www.softtest.ie
Mobile Testing Challenges Lighting Talk with www.softtest.ie
 
HMH Agile Testing Lightning Talk with www.softtest.ie
HMH Agile Testing Lightning Talk with www.softtest.ieHMH Agile Testing Lightning Talk with www.softtest.ie
HMH Agile Testing Lightning Talk with www.softtest.ie
 
Soft Test Ireland - Introduction to Jakarta Jmeter - Philip Bannon
Soft Test Ireland - Introduction to Jakarta Jmeter - Philip BannonSoft Test Ireland - Introduction to Jakarta Jmeter - Philip Bannon
Soft Test Ireland - Introduction to Jakarta Jmeter - Philip Bannon
 
www.softtest.ie presents Selenium 2 With David Burn's
www.softtest.ie presents Selenium 2 With David Burn'swww.softtest.ie presents Selenium 2 With David Burn's
www.softtest.ie presents Selenium 2 With David Burn's
 
Agile Test Management - www.softtest.ie
Agile Test Management - www.softtest.ieAgile Test Management - www.softtest.ie
Agile Test Management - www.softtest.ie
 
Michael Bolton - Two futures of software testing - Sept 2010
Michael Bolton - Two futures of software testing - Sept 2010Michael Bolton - Two futures of software testing - Sept 2010
Michael Bolton - Two futures of software testing - Sept 2010
 
Whittaker How To Break Software Security - SoftTest Ireland
Whittaker How To Break Software Security - SoftTest IrelandWhittaker How To Break Software Security - SoftTest Ireland
Whittaker How To Break Software Security - SoftTest Ireland
 
David Parnas - Documentation Based Software Testing - SoftTest Ireland
David Parnas - Documentation Based Software Testing - SoftTest IrelandDavid Parnas - Documentation Based Software Testing - SoftTest Ireland
David Parnas - Documentation Based Software Testing - SoftTest Ireland
 
James Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environmentJames Lyndsay - Testing in an agile environment
James Lyndsay - Testing in an agile environment
 
Neil Tompson - SoftTest Ireland
Neil Tompson - SoftTest IrelandNeil Tompson - SoftTest Ireland
Neil Tompson - SoftTest Ireland
 
Neil Thompson - Thinking tools: from top motors, through software process imp...
Neil Thompson - Thinking tools: from top motors, through software process imp...Neil Thompson - Thinking tools: from top motors, through software process imp...
Neil Thompson - Thinking tools: from top motors, through software process imp...
 
Tester's are doing it for themselves - Julie Gardiner - SoftTest Ireland
Tester's are doing it for themselves - Julie Gardiner - SoftTest IrelandTester's are doing it for themselves - Julie Gardiner - SoftTest Ireland
Tester's are doing it for themselves - Julie Gardiner - SoftTest Ireland
 
Test Automation: A Roadmap For Sucesss
Test Automation: A Roadmap For SucesssTest Automation: A Roadmap For Sucesss
Test Automation: A Roadmap For Sucesss
 
Susan windsor soft test 16th november 2005
Susan windsor soft test   16th november 2005Susan windsor soft test   16th november 2005
Susan windsor soft test 16th november 2005
 

Markus Clermont - Surviving in an Agile Environment - Google - SoftTest Ireland

  • 1. Surviving in an Agile Environment Markus Clermont
  • 2. Agile Software Development (1) The Agile Manifesto states: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan
  • 3. Agile Software Development (2) Some further principles: Release early & release often Open to changing requirements. Any time. Much informal communication between stakeholders Frequent refactoring; changes in the architecture and the design of the software Teams are meant to be self-organizing Small "family-size" teams work on subsets of the problem. Functional decomposition Little communication between teams required.
  • 4. What does that mean for QA Once the features are developed, QA is meant to make sure it works QA often starts only after the product is finished Focus on testing That makes us really QC, not QA, Relying a lot on a well-known, well-defined process, Clearly defined interface between "QA" and "dev". We tend to take ownership of quality in the traditional development. That starts too often only when the development is already finished. There is Agile Development until QA gets involed.
  • 5. What changes need to be made? 1. Don't take ownership of quality. 2. Get involved early. 3. Review the design, participate in code-reviews. 4. Give positive re-enforcement and point out problems. 5. Make sure that your team is an integral part of the dev-team 6. Make sure your tools are part of their toolbox. 7. Make sure that the needed skills are in the team. 8. Don't do the release-process. 9. Become an integral part in the customer - developer interactions. 10. Working software that satisfies the customer is the goal.
  • 6. Don't Take Ownership of Quality Only the developers can create the quality. We should make it really easy for them to create quality: Be a consultant and suggest creative ways to solve problems Help choosing the right tools for the problem Continuous builds UI-Test tools Testing frameworks Provide customization of these tools. Be the advocate for quality towards project-management. Test-Automation is a common pitfall.
  • 7. The Test-Automation Pitfall Short release cycles: Not enough time for manual testing Not enough time to properly automate all the tests. Lack of documentation: No deep understanding how a certain scenario should be tested. No way to find out what changed in the system that can make my tests brake. Teams start to spend more and more times on investigating and fixing breakages. Credibility of the tests suffer.
  • 8. So, what to do? Start at the bottom of the pyramid: Test-Driven Development (Frequent refactoring) High unit-test coverage, Education & Best Practices Reduce the number of "big" tests. Make the smallest possible tests, and a few big end-to-end tests. Execute the tests at every change in the code-repository Make the person who breaks them fix them On the long run, Have those who provide a new feature write the integration- and end-to-end tests, but make it really easy to do so.
  • 9. Get involved early Always look at the testability of new features, Early feedback is likely to be taken into account. Help to make time plans more realistic Less pressure on the developers means better quality. Time requirements for testing can be taken into account
  • 10. Review the Design and the Code Design - Quality is an important aspect of the software quality: Re-usability, Maintainability, Testability Speaking up early can help to prevent these problems. And it makes it easier to get more and better tests. The same is true for code. Two implementations of the same feat Test-code is code, too. Is the code easy to test, are the tests sufficient, good, and adequate?
  • 11. Give positive re-enforcement Doing quality software should be fun. Look for reward mechanisms inside your company Use them... Talk to the manager, Spend money on an offsite Do a testing-competition, with a cool prize Don't forget to point out problems, too.
  • 12. Team Integration Agile development has a lot of informal communication, and undefined processes. If the QA team is not in the middle of that, it is almost impossible to catch up later. Allows to recognize testing / quality challenges early on and react. Giving early feedback becomes easier, too. Increases the technical understanding of the product. More valuable feedback Better solutions to quality problems. Gives a wider view on the problems a project is facing.
  • 13. Tool Integration The organizational separation of QA and Dev-Team often reflects in separate "Tool-Worlds" "Tools" for the developers: Programming Language IDE Libraries and Frameworks "Tools" for QA: Process description Test-Automation Tools, Scripts Bug-Tracking Transferring ownership is hard if the tools are unknown. Try to speak the same language.
  • 14. Skills Not every test-engineer is a software-engineer. Difficulties: Communication, Gaining technical respect, Finding the best way to test a product, Typically very low-level (unit-tests), and high-level (end-to-end) tests. No integration tests. Finding flaws in the design. What can be done? Train your test-engineers about software-engineering, Programming, Design, Unit-Tests.
  • 15. Don't do the release-process In the release process quality problems show themselves in their most powerful way. Whoever is driving the release-process has most interest in following the best practices we preach If not yet, wait 2 or 3 release cycles. On-Call duty is a further incentive :) The decision to release will always be a trade-off.
  • 16. Participate in the customer - developer interactions. In agile development, UAT is often done by the customer (or the direct representative) The only person who really knows how the product should work, is the customer. The customer - developer interaction is the single most important source for requirements. Sitting on the same table with the customer helps to clarify requirements when they are posed figure out the pain points with the current solution understand requirements ourselves for better testing thereof.
  • 17. Working Software is the Goal For everything we do, ask: How does that contribute to that goal? Do we need to do it? More often? Less often? Can we do it different- better, faster, more effectively? The common interest with development is to give the customer software that satisfies the needs (see the "release trade-off"). Constructive feedback.
  • 19. Questions? Thank you for your attention!