User Acceptance Testing (UAT) is a phase in the software development life cycle where the intended users of a system participate in validating that the solution meets their needs. There are varying perspectives to the definition of UAT. While some see the UAT as a “test of requirements”, others argue that the same deficiencies missed in the framing of requirements will be missed during testing if this philosophy is adopted.
Randall Rice provides a comprehensive objective of UAT:
User Acceptance Testing is conducted to assess if the system can support day-to-day business and user scenarios and to ensure the system is sufficient and correct for business usage.
Why Should Business Analysts Be Involved in UAT?
The Business Analyst Role is central to achieving success in UAT sessions. Here are 6 reasons why:
1. BAs understand the functionality the system is supposed to deliver and as such, have the knowledge needed to validate the system (confirm whether the solution meets business needs or not). The fact that a system has been built to specification does not make it automatically acceptable. UAT helps stakeholders to determine whether the system can be put to use in real-life business scenarios or not.
2. The UAT session is an opportunity for users to see the solution in action and confirm that it meets their needs. Users need to test their own systems to ensure that it works the way they expect it to, to prevent drastic changes after the system has gone live and to increase the chances of project success.
Getting involved in UAT presents an opportunity for the BA to confirm the correctness of previously elicited requirements and improve on future projects.
3. Even though it's recommended that users see prototypes of the proposed system and are kept informed throughout the software development lifecycle, change requests still come up during UAT sessions.
Being part of the UAT session will help the Business Analyst understand the rationale for any proposed change, suggest the most appropriate way to meet the business need and help in selling the idea to the Change Control Board.
4. Though the objective of UAT is not to train users, they would need to understand how the system works to test it effectively. When BAs who have a firsthand knowledge of system functionalities are involved in UAT, they are able to support training efforts prior to UAT and answer users' questions during test sessions.
5. As part of solution validation, the BA may be brought in to support the team in assessing the severity of defects, their impact on the business, which defects must be resolved before go-live and what can be done to mitigate the risks of the defects that cannot be resolved.
6. Business Analysts are involved in determining the set of requirements the solution must meet to be considered acceptable. In an ideal world, users are expected to write their own test scripts but in reality, BAs usually have to support this task or write the test scripts themselves.
Depending on the type of organization, BAs are involved in UAT sessions to varying degrees.
On most of my projects, I organize and manage test sessions, write test cases, execute system tests and prepare the defect reports (I wear the hat of a Tester). Once I'm done with the system tests which are usually more exhaustive and technical than user acceptance tests, I invite the users for UAT sessions.
While BAs attached to organizational units may be less involved in organizing and managing test sessions, they may be nominated to participate in UAT along with users or to represent a user group. Such BAs are also expected to be analytical, independent thinkers and knowledgeable enough about the business to support system users and test the system in place of stakeholders who are unavailable to do so themselves.