I am new to Scrum and have been using to plan a new project.
After quite a bit of research I am still not understanding how testing fits into the lifecycle.
I understand that I could take an extreme programming approach and do the testing as part of the development in an iterative way.
Alternatively, what is the norm? Do you generally release the development from one sprint into a test sprint?
or is testing done at the back end of a sprint? or is it handed off to a testing team as soon as the story is fulfilled?
I am probably missing something fundamental in my knowledge here. Would appreciate any feedback.
The result of a Sprint is a potentially shippable increment.
The increment is coded/tested/documented inside the Sprint.
A Sprint is not a mini-waterfall, with testing task at the end "if we have enough time"...
Even the PO doesn't actually ask for a release, the increment has to be "done" and not just "tested"
Traditionally, testing is done in order to discover errors. In agile and lean ways of working however, errors are recognized to be a form of "waste". The focus of testing therefore shifts away from the discovery of defects and towards their actual prevention. That's why a "test first" approach is favored using TDD and BDD. A level of assurance can be provided by these tests, and it may contribute to the Definition of Done for the Sprint Increment.
perhaps another helpful perspective is that the development team does all the work to create a potentially releasable Increment of “Done” product at the end of each Sprint and accountability belongs to the Development Team as a whole.
Therefore, the Development Team has to know what "Done" means and it has to test the created Increment-to-be against this Definition of "Done".
So, in the Definition of "Done" there should be some quality requirements included.
Perhaps also useful: "Individual Development Team members may have specialized skills and areas of focus" (Scrum Guide)
--> It is possible for the Development Team to assign some Development Team members as testers as long as the whole team still feels responsible for ALL tasks, testing included.