Party R(ecipient) asks Party D(eliver) to deliver product / project ‘X’. Parties R or D could be separate internal departments, or vendor to customer – it’s not really at the crux of the question as to Who is Responsible for UAT.
Acceptance of ‘X’ is typically done by UAT… User Acceptance Testing. I repeat – ‘User’.
So, who is responsible for:
- overseeing, conducting or running the tests?
- writing the test scripts?
Which party – R or D? It is to do with accountability, sign off, and testing independence.
From my experience, User Acceptance Testing is typically the last check performed by the user before final turn over of care and custody of the system or project from D to R. The test itself may be conducted by Party D or Party R however Party R ultimately has to sign it off.
To simplify, I think it is best that the end users / customers in this scenario (Party R) are responsible for the UAT. Product acceptance is determined best by how well the needs of the customers are met by using the product / project. User’s understand their environment the best so it makes sense for them to complete the UAT and sign off on completion. The delivery team party D should focus on resolving issues while the UAT is in progress and to safeguard the successful delivery of the product / project.
Actual signoff is clearly the responsibility of the user. Everything else needs to be considered in the light of reality, including the capabilities and experience of both parties, and the infrastructure available. Ideally User would create plans and scripts and execute them in a dedicated environment with dedicated test data, and the testing should include business processes as well as technology.
It’s not uncommon for Users not to have the capability to do all that’s necessary, and there’s also a technical role in setting up and maintaining a UAT environment. But, while Developers may be familiar with business processes, they don’t have the experience to pick up the sort of problem which Users identify.
Use cases can be useful as a technique here, but in the real world it’s down to the project manager to decide the allocation of responsibility between Developers and Users, and to ensure that each party understands what they need to do and has the capability to carry out those response.
In summary, quality assurance is the responsibility of the business user and it therefore Party R responsible for executing the UAT. While a project manager (Party D) can help facilitate the time line and sign off process, and should support and be accountable for getting it done with Party R responsible for UAT.