The Role of Quality Assurance in an Agile Environment


  The Agile Manifesto seems to go against the traditional role of Quality Assurance (QA). The Agile Manifesto (from states

We are uncovering better ways of developing software by doing it and helping others to do it. Through this work we have come to value

  •     Individuals and interactions over processes and tools
  •     Working software over comprehensive documentation
  •     Customer collaboration over contract negotiation
  •     Responding to change over following a plan

That is, while there is value in the items on the right, we value the items on the left more.

However with traditional QA

  •     There is a QA phase that is defined within the overall project plan
  •     There is a QA process
  •     Specifications (documentation) are required
  •     Test case and test plans are documented

  So we have to ask, is there a role for QA in an Agile environment? The answer is yes, however the role is somewhat different. In an Agile environment, QA engineers should be involved from the start of a sprint. They can

  •     Help to determine if stories and their acceptance criteria are well defined and if they satisfy customer requirements
  •     Ensure that unit tests are written
  •     Provide developers with high level test cases for the stories before code is written
  •     Perform exploratory testing on early builds
  •     Organize usability testing
  •     Demonstrate the stories during Sprint Review

  All of these things are important for the quality of the product. By having QA involved from the start of a sprint there is no need to have neither a defined QA phase nor a formal QA process . By having QA work with the developers early on, there isn't a need for formal specifications (although some documentation is still useful). Of course QA engineers will still execute tests to verify implementation of a story as well as regression and performance testing.
    So there is definitely a need for Quality Assurance in an Agile environment, it's just that the role is different than what it is in a traditional environment.

  As a QA Engineer, when you first switched to Agile, what did you think? How has your role changed after transitioning to an Agile environment?



Comment List