How to Run User Acceptance Testing using Azure DevOps?
Before a software product goes-live, during or at the end of the implementation phase, we tend to ask our users to perform a testing to check if the functionality meets the requirements and capture their feedback on bugs, issues or new change requests. This will make sure that the shipped features have the right quality and will be well-received by the userbase. Engineering teams follow various practices on how to conduct a UAT (User Acceptance Testing) end-to-end and in this article I would like to share with you our best practices which is indeed a continuous evolution till date and onwards.
Here is a quick checklist when planning a UAT:
- Which user roles are involved and who will do the testing?
- Which scenarios will be tested and what test cases will be executed for each scenario?
- What tool(s) will be used by the users to access, execute and provide feedback for the test cases and by developers to access that user feedback and take necessary actions?
- How will the overall test progress be monitored?
The primary focus of this article is the 3rd question on the tooling aspects but I will also briefly touch to the other points to show the steps end-to-end. The preparation of good quality scenarios & test cases is otherwise its own art-of-work and I will plan to cover that in one of the future articles.
I have seen and as well personally used many different tools to define and share the test cases such as online worksheets or SharePoint lists which work pretty fine to an extent; nevertheless it may take time to do the customization for the first setup (unless there are reusable templates) and more importantly, developers generally have their backlog somewhere else which will be disconnected from the user/tester backlog.
We are using Azure DevOps for the end-to-end product development where we maintain the backlog of all type of work-items (user stories, tasks, bugs …) and wanted to instead try to bring the users/testers to this experience vs having to maintain yet another repository for the testing assets. This approach enabled a connected experience across the testing team members and more productivity the way we perform UATs.
Next, I would like to walk you through step-by-step how to use Azure DevOps Test Suite for planning and running a UAT. In my scenarios, I will be using a fictional product “Dips Machine”. This is a magical device you can add the ingredients and it prepares you a variety of delicious dips to enjoy with your family & friends.
1. Create Product Backlog
Let’s add some new features to our “Dips Machine” product.
2. Create Test Plan
You need to select the test plan from the left menu on Azure DevOps and create a new one. (This feature is only available for the “basic + test plan” access level users. More information)
3. Create Test Suites
Each test plan may have 1-to-many test suites. A test suite can be created in 3 ways: static, requirement based and query based. In our plans, we choose requirement based approach since such suites can be directly linked to user stories in the backlog which gives us a natural representation of our requirements in the test plan.
4. Create Test Cases
Now, you can add your test cases for each test suite. While writing the test cases, we generally take a direct reference to the acceptance criteria of the backlog items.
You can as well add attachments to each test step to give more instructions on how you want the users to take the actions. We generally attach the mock-ups or screenshots of the product screens to help users.
5. Assign Test Cases
Once you define your test cases, next you need to assign them to testers in the team. In Azure DevOps taxonomy, test cases become test points when they are ready to be executed.
If you want to assign multiple testers for each test point of the test suite, you can choose “Assign testers to run all tests” option and invite the testers.
6. Execute Test Points
Now the testers can see the test points assigned to them and can simply run them, go through each step, pass/fail them and raise bugs to the development team. Test points can be run using the desktop app or directly on the web browser. We choose the latter option as it requires no additional setup at testers’ desktops.
When creating a bug, the cool thing is that, the repro steps will be auto-generated into the description which helps the developers to troubleshoot the issue. Moreover, since the test suite was created as a “requirement-based suite”, this bug will be also automatically parented to the related backlog item (user story) and will appear in the sprint backlog.
7. Triaging Bugs
You can create a query to list the bugs created by your testers, triage them within the testing team and assign to developers.
8. Monitor the UAT progress
You can generate charts to visualize your overall testing progress. If you want to monitor the progress for all the test suites, you need to create the chart at the root level as highlighted below.
I hope you enjoyed the article and it helped you to get a basic understanding of how Azure DevOps Test Plans can be used to end-to-end manage your user acceptance testing and enable a connected experience between testers and the developers. In my next articles, I plan to also talk about some advanced features of Azure Dev Ops Test Plans.