Some best practices to handle User Acceptance Testing effectively in Scrum
UAT (User Acceptance Testing) is an important aspect of software development life cycle. It is a kind of toll gate where actual users test the application. Also certify that whether application is good to go to production. It is very critical in terms of providing quality product to the customers.
Few important questions about User Acceptance Testing :-
1. Should UAT be inside the sprint?
2. Should User Acceptance Testing be part of DoD?
3. How to handle User Acceptance Testing along with current sprint stories?
4. How stories planned if UAT is happening outside the sprint?
5. How to handle changes which comes post UAT? or how to handle UAT defects?
I will try to answer these questions one by one based on my experience.
Whether User Acceptance Testing should be done inside the sprint?
Team expected to deliver shippable product each sprint(as per Scrum Guide). Practically it does not happen. Team deliver to production may be monthly or quarterly. UAT usually done by some external team of users. Team may not have UAT tester as part of the team.
There are dependencies on external team. It is not possible for team to complete UAT testing within sprint time box. Team need to discuss with stake holders and have UAT outside the sprint scope or DoD.
Whether User Acceptance Testing should be part of DoD?
If dedicated UAT tester available with team, it is ok to have UAT as part of DoD. Team can have scope for sprint, usually that is not the case. Having it outside of DoD is the only option else team would not be able to meet DoD and it would cause spill over of stories.
How to handle User Acceptance Testing along with current sprint stories?
If UAT tester is available within the team and team is planning to have UAT as part of DoD, therefore you should have UAT as part of the story as tasks. Tasks should have estimation. UAT tester should own the story/tasks. Tester can mark the UAT story done if all the sub tasks are done.
How to plan stories when UAT is happening outside the sprint?
How to handle changes which comes post UAT? or how to handle UAT defects?
UAT done by external team, therefore team have no any control on that. There should be an agreement between team and stake holders on how to handle UAT.
The best approach would be to have DoD defined clearly. DoD should not include UAT as part of completion criteria. Stories can marked done without UAT. Stories demoed to PO and stakeholders in sprint review.
Team can have support stories for UAT if it is happening anytime after the sprint. These stories can have estimate with story point. Team can plan these stories in current sprint. Team can track whatever bugs are coming or whatever support UAT testing team would require with these stories.
Hope this will help you in handling UAT(User Acceptance Testing) in better way for Agile projects.