Testing Levels

There are four main areas of focus that are used during your team's testing effort:
  1. Task–The task level is primarily focused at the individual who creates the code and the unit tests that are created to validate that code. Other ways to improve code quality at the task level include code reviews and pair programming.
  2. Story–The story level is primarily focused at ensuring that the story is solves the problem. This includes looking at each of the tasks that comprise the story, both individually and as a whole. For example, a tester writes the acceptance tests that verify and validate a specific piece of functionality; integration testing is then used to ensure that all of the individual pieces work together as intended.
  3. Sprint–The sprint level is primarily focused at what the team has committed to deliver at the end of the sprint. Have all of the things been done that are supposed to be done? Are the team goals for defect tracking being met? Are the number of automated tests growing? Are you making sure that what you built today hasn't broken what you built yesterday? Are the results of the effort shippable?
  4. Release–The release level is primarily focused at what multiple teams will commit to deliver at the end of a release. Have you done all of the integration testing for all of the features that all teams have built and delivered? Have you tested the scalability and performance of the application as a whole? Have you tested any data migration that needs to occur for this release?

Understanding how these fit together is useful, but remember that the biggest challenge to overcome towards the goal of having zero defects is the knowledge of your team and cultural issues within your teams.