«  View More Posts

How to Perform User Acceptance Testing

April 5th, 2023 (Updated 04/06/2023) | 9 min. read

By Milan Polacek

In software development, the User Acceptance Testing (UAT) phase is a chance before go-live for business users to test the tool as a whole and ensure it’ll work well in the real world. While the purpose of UAT might be clear, at least at a basic level, the more day-to-day processes behind each step might still elude many of us. To carry out UAT efficiently and in line with your long-term business goals for the platform, having a good understanding of how to perform User Acceptance Testing is critical.   

At Pricefx, with over 10 years’ experience helping businesses like yours scale up their pricing process with cloud-native pricing software, we believe it’s important that our customers are armed with as many resources as possible to succeed in every phase of the pricing project lifecycle and mitigate delays and other inefficiencies later on – and this includes UAT.  

To help here, we’ll break down the phases of User Acceptance Testing, which include end-to-functional testing, code freeze and final regression testing, and final acceptance, and give you a few tips to get the most out of UAT along the way.  

What User Acceptance Testing Looks Like Step by Step  

User Acceptance Testing is the very last step of any software development project and directly follows the development phase, or “feature sprints,” as we call them. Your team should expect to spend about 2 weeks on UAT, provided they dedicate a few hours each day to testing and have prepared well in advance with prioritized test cases and adequate training.  

Now, let’s explore what the steps of UAT look like, including their purpose and the processes driving each of them. 


1. Pre-UAT    

For many of our customers, it can be tough to step directly from the development phase into the UAT phase without a few weeks’ breathing period to get everything in order before final testing. 

Allotting a few weeks for pre-UAT between development and UAT phases enables your team to attend trainings, organize resources, and align on expectations for the coming weeks. Here are a few ways teams can benefit from a pre-UAT “phase”:  

Deployment and System Integration Fixing 

Following the developing phase, there’s always a chance that customers will introduce new requirements to the tool which need to be implemented before UAT, or align their internal tools better with the pricing software; this could look like changing user stories, fixing an issue with system integration, among others.  

Bear in mind that this is not the time to choose your UAT test cases, as this should have already happened in the development phase.  


Teams can also take the 2-week pre-UAT period as an opportunity to catch up on UAT trainings and any other relevant Pricefx trainings so they are well prepared to navigate the tool with minimal instructions (as is expected for testers in the UAT phase).  

Getting Organized  

It’s worth taking the time here to round up your UAT group and set clear expectations ahead of testing, as this will help mitigate any misunderstandings or inconsistencies around the UAT process later on. This could involve walking through the test management tool navigation, going over how bug reporting should look like, or deciding how to mark test cases as “passed” and what the process would look like in case a test case doesn’t pass muster.  


2. End-to-End Functional Testing  

End-to-end functional testing is the first and most definitive phase of User Acceptance Testing, as it carries out the primary goal of UAT: ensure that all the test cases which are most valuable to your company are working as they should in your own environment (i.e., using your data).  

Functional testing involves going through the entire workflow of each test case to guarantee a smooth user experience once the software goes live and into the hands of its business users. While this is a step-by-step process, the instructions for each test case should not be highly detailed, as it’s assumed testers have received UAT training and know their way around the platform.  

To offer an example of what testing looks like end-to-end, consider a standard quote creation test case. Testers would mimic a user’s journey throughout the entire quote creation process, starting from user login, to choosing the right customer and product, to quote generation, all the way to management approval. Instead of simply checking one functionality involved in that test case (e.g., if the “submit” button is working in your quoting module) and marking it as complete, your testers would go through the entire workflow.  

Another key function of this phase is to test more complex variations of your key test cases. To offer quoting again as an example, in the development phase, a tester might generate a simple quote using one customer and product. In the UAT phase, they would then try to generate bigger quotes with more parameters.  

When selecting test cases for testing in the development phase, keep in mind that testers will need enough time to test each case from beginning to end, so your test cases should be prioritized strategically.  

3. Bug Reporting, Fixing, and Retesting  

While the main goal of User Acceptance Testing isn’t to find bugs, bugs are bound to pop up in the UAT stage that simply weren’t visible to testers earlier.  

While the development phase focuses on testing software functionalities by themselves, the UAT phase covers those gaps by testing how they all work together.


This more comprehensive view of the software provides testers the opportunity to report and fix the bugs that block users from successfully using the tool end-to-end.

The kinds of bugs that usually come up in UAT are typically related to data, end-to-end, or regression issues. Testers can find and deploy these bugs in tandem with end-to-end functionality testing.  

We recommend having a solid framework in place to prioritize bugs to avoid unnecessary delays here – because not every bug is integral to the basic functionality of the tool and can be addressed after go-live.  

To maximize efficiency in the bug reporting and fixing process, we suggest following a guide to classifying bugs by level of criticality like the below: 

Critical: User is not able to use the solution, resulting in a critical impact on business operations.  The system is down.


High: Any high-priority defect which results in an inaccurate price calculation. No workaround is available, and the defect is time sensitive. 


Medium: Attention is required but does not block pricing functionality. A workaround is available but may not be optimal. 


Low: Minor loss of functionality, which might include monitoring issues, documentation questions, cosmetic changes, or administrative tasks.

Once bugs are found, testers should report them to their UAT leader as well as log them in JIRA (or the test management tool of their choice) so their progress can be easily tracked over time. To complete this phase, the areas affected by the prioritized bugs should be retested until testers can verify that they’ve been fixed.  

4. Code Freeze and Final Regression Testing  

Final regression testing is the time when testers can play around in the software one last time before go-live to get their peace of mind that everything works for users. 

After all critical bugs have been fixed, UAT testers will retest a few relevant test cases (not every test case requires revisiting here) to make sure they’re ready to go. Doing this requires a stable environment, so a code freeze (or a total pause in changes to the software’s source code on the QA partition) is required to carry out final testing. 


5. Final Acceptance and Business Go-Live  

Final acceptance, or approval of the software, marks the official end of the UAT cycle and the point at which the team can take the tool to business go-live.  

Now, when would a team know the software is ready for final acceptance? This depends on how willing they are to put less critical items on the back burner.  

Teams often have a long list of to-dos before launching, and anxiety about whether their third-party software vendor will help them resolve the remaining items after go-live or not.


This is a valid concern, though we’d like to stress here that Pricefx and other vendors’ support does not end at software launch.


While it’s great to be extra diligent here, final acceptance isn’t about resolving every issue under the sun (especially when it doesn’t interfere with your users’ ability to use the tool) – it’s confirmation that all the test cases you chose in the beginning have passed.  

Once final acceptance happens, it’s time to get your software tool off the ground and into production. Happy pricing! 


A Reminder: User Acceptance Testing is Critical to the Success of any Software Project  

By understanding the process behind each phase of User Acceptance Testing, businesses can ensure their software is thoroughly tested and ready for release, ultimately leading to a better user experience.  

We’re firm believers that UAT is just as integral to the success of a software project as any other development phase, and it shouldn’t be rushed through or overlooked. Instead, businesses should make sure their testing teams are empowered with clear guidelines for testing, the right management tools, training, and sufficient time to carry out UAT effectively.  

In reality, we find that leadership may not always understand UAT’s value in the long term and in turn may not dedicate enough resources to get this phase right.  

To gather more support at the onset for User Acceptance Testing, consider checking out our article that explains what UAT is and why it’s important.  

Milan Polacek

QA Competency Lead , Pricefx

Milan Poláček is currently the QA Competency Lead for Customer Solutions at Pricefx. Milan has over 20 years' experience in the software testing field and gained his experience by testing medical devices and then on large projects for banks and telco companies as testing leader during the development phase and supporting the UAT phase. On the weekends you will find Milan playing with his dog, walking and traveling around the Czech Republic or working on his self-development.