In the software, website, and application development world, nearly every topic can seem complicated and confusing. Thankfully, there is one notable exception: User acceptance testing (UAT) is fairly straightforward. Below, we will explain the who, what, where, why, and when of UAT in 2020.
But first, what is it?
User acceptance testing is commonly the last phase of testing to complete before that website, software, or application is released to a client or into the market.
The goal of UAT is to make sure the software, website or application can handle all required tasks in real-world scenarios, according to user specifications. This type of UAT process is often called beta testing (see more below). The reason this final phase of testing is completed is to be sure that, once released, the software, website or application is free of any defects that would impede users from completing tasks in their day-to-day business operations.
There are several different types of product tests that qualify as user acceptance testing. Alpha testing, beta testing, black box testing, contract acceptance testing, operational acceptance testing, and regulation acceptance testing.
Alpha testing is completed inside the development environment before the website or software is seen by external testers. In this phase of testing, an internal team will review the functionality and workflow of the software. The team then records any found issues and provides additional feedback to the development team.
Beta testing is completed by groups of end-users or subject matter experts (SME). They will begin using the software or application the way it was designed to function and record any issues they find. They would again provide feedback to developers, so improvements can be made.
In black box testing, the software is reviewed with the testers unable to see internal coding structures. During this process, the end-users will complete specific functions with only the knowledge of what the application is supposed to do. Typically, there is little to no guidance about how these functions should be completed.
During contract acceptance testing (CAT), the software or application in development is tested against specific predetermined and well-defined criteria. These specifications are defined during the discovery process, added to the contract, and maybe a part of legal requirements for payment.
Operational acceptance testing (OAT) places a heavy focus on validating the workflows, security, and the operational readiness of the website, mobile app, or software. OAT will validate the website or app performs without error in its standard operating environment (SOE).
Regulation acceptance testing (RAT) reviews if the software or application meets all governmental, legal, and safety standards within the applicable industry.
Testing should not start until the website, software or application being created is close to completion. UAT starts after unit, integration and system testing has been completed finding no major issues and the codebase is fully developed.
So who is testing and how?
Whenever possible, the most important group to include in UAT should be the end-users of the software, website or application, which may also be called the subject-matter experts (SME). They are the individuals that will be using and interacting with the product on a daily basis. As the most impacted audience once the product rolled out, this daily usage will allow them to find problems that the internal team may not.
Other personas who could participate in UAT could include:
When identifying users, It is important to consider that tests should not focus on minor or cosmetic issues, like color schemes, spelling errors or software glitches. These issues must be identified and fixed by developers during earlier testing phases, such as unit testing or integration testing.
Once you identify your UAT team, it’s time to plan and conduct your test:
As with everything, planning is the key to successful UAT. A well-structured user acceptance testing plan will limit the number of re-tests needed to complete your project and drive down the associated costs of fixing mistakes. Creating a user acceptance testing checklist will help guide your team through each stage of the process. Some of the questions you should ask as part of your UAT checklist are:
This checklist can provide a strong quality assurance test of your testing plan. After your checklist is complete, let's move on.
Your tests should be designed around communications received from your end-users or client that started during the discovery phase of your project. Execute tests against these predetermined scenarios that represent how your end-users would interact with the website or software as part of their daily activities. Plan to keep tests broad in nature to allow for the testers to navigate freely to complete tasks.
Stay away from click-by-click test steps, as these do not allow for any variance during the completion of activities and is not a realistic test of end usage. Once your testing is created, you need to make sure you have templates to record test results and internal procedures in place to effectively log the feedback you will receive once testing starts.
Now, let's move on to testing:
After your test cases have been accepted, the UAT team can begin completing each task and any additional related test that may need to be completed. Typically, testing happens in a group setting like a conference room (or in a shared virtual environment). All users, the project manager, quality assurance specialists and build team representatives will work closely together over a few days complete designed tasks and work through all the acceptance test cases.
After testing is completed, the SME/end users provide feedback to the build team. Feedback typically contains both positive comments and reports of defects, bugs or recommendations to streamline or increase functionalities. The team manager needs to document the end-users findings and begin to triage the bug fixes and requests.
Once performance feedback has been documented, the build team reviews feedback from either an internal Quality Assurance Specialist or the end-users. The team then triages that feedback and prioritizes it based on its severity level. Triage often includes the client to confirm which feedback, based on different criteria, may need clarification, should be acted on, or should not be acted on and what items should receive the highest priority.
Remember to keep UAT feedback and remediation cycles concise. This will be important as feedback trickles in, which can lead to fragmented remediation and add cost to the project via duplicated work. It’s best to allow a set period of time for the client to provide their UAT feedback, then triage that feedback once it’s all in, and remediate thereafter. The overlap in these steps should be minimal, if any at all.
Ensuring clear and concise UAT cycles is important to the health of the project. Triage plays a critical role in that process and helps to manage expectations and ensure that feedback is addressed. Moreover, it adds value and increases functionality to the overall build. Once the software, website or application is working properly and meets the specifications of your client, it is time to have the project reviewed and signed off by the client.
It's now time to meet with your client:
Before moving into production or going "live", you want to make sure there are no critical defects left open and that the software, website or application meets all contractual and business requirements. You are now ready to meet with all client stakeholders to demonstrate completeness against all contracted requirements. Often, there may be legal requirements for acceptance of the system that ties into payment.
There will be many forms of testing that occur in the full lifecycle and development for software, websites or applications. Including user acceptance testing as one of the tools in the development of projects will reduce the probability of unexpected issues. The full quality assurance process goes hand-in-hand with reducing the amount of required maintenance, driving down overall cost and increasing client satisfaction.
There are a number of tools available on the market used for user acceptance testing. One Of the most popular is:
Selenium is an open-source portable framework for testing web applications. Selenium provides a playback tool for authoring functional tests without the need to learn a test scripting language
Please take some time to check out Selenium and let us know if you like the tool. If you prefer another tool, let us know!