A large part of software testing is about working with other teams and people. This is evident more so in the User Acceptance Testing (UAT) phase than any other phase. QA engineers involved in UAT are become the negotiators. On the one hand we’re working with a development team that have it in their heads that they are going to deliver X. On the other hand we have the customer who wants us to deliver Y. Our job is to make sure that both parties meet in the middle. We’re the customers advocate to the development team. Equally we’re the developers advocate to the customer. A developer may say that a particular feature is risky or technically not possible. Quite often it’s the tester that has to put this case forward to the customer.
Personally as a tester I found UAT more interesting, more demanding and more exciting than all the other stages. Everything comes together during this phase. Managing this dictates that you become a peace maker and negotiator between the two sides. A UAT test fails and the customer tells you that the feature doesn’t do what they need it to. You talk to the development team and they say it has to work that way when you consider other aspects of the application. Your is to understand all of the technical arguments supporting both sides. More than this your role is to understand the people on both sides so that you can bring them together with the right solution or even possibly a compromise on both sides.
If you’re involved with UAT then it’s not only these technical and contractual issues that present a challenge. Surrounding this are a unique set of software testing process issues that always crop up. Usually you’re out of your normal testing environment. You are forced to work outside of your usual process and sometimes even without your usual tool set. For example 3 challenges that consistently present themselves during this phase are…
- how to track defects effectively
- how to record requirement changes
- how and where do the test cases get written
Yes we know these are areas that most software testing teams have solved a million times over. The trouble is when you’re on a customers site as part of a User Acceptance Testing program. You don’t usually have access to your defect tracking tool of choice. The client forces you to go back to the dark ages and start tracking defects with Excel. A stream of emails are used to explain some subtle changes to a requirement and the original requirements document doesn’t get updated. The client doesn’t have access to your test management tool so you have to write the test cases in word and then record results in Excel again.
You may have the perfect process when working in your own environment. However, the moment you get pulled into UAT you’re forced to compromise and start reinventing your process. You need a process that can work for the customer in the customers environment. Following is an example of how we can address some of these software testing issues with a test management tool called ALMComplete. A lot of other tools out there have similar features so we’re trying to focus on the principals here rather than the tool itself.
In particular this software testing video looks at:
- Logging Defects – keeping everything in sync and visible.
- Tracking Changes to Requirements – maintaining traceability and the approval process.
- Writing the Test Cases – tracing approvals from your client.
UAT presents a unique set of challenges to the QA team. Don’t approach it thinking your usual processes and tools will deliver everything you need. Your customers requirements (both practical and process) will mean you have to bend towards meeting their needs. Typically your clients processes and practices will be completely different and probably far less mature than yours. If you can help guide them with some gentle persuasion you’ll reap many benefits from keeping close to your usual process and utilising existing tools you have. UAT is not just an extension of your usual software testing process. Quite often it demands a different approach altogether. However, if you have a clear picture of how you want to run your UAT from the start you can make sure this part of your software testing runs smoothly with your tools and your process.
