Enable javascript in your browser for better experience. Need to know to enable it? Go here.

How can AI simplify and accelerate user acceptance testing?

Disclaimer: AI-generated summaries may contain errors, omissions, or misinterpretations. For the full context please read the content below.

User acceptance testing (UAT) has long been the final gatekeeper before a product goes live. It’s the moment when the rubber meets the road — where product owners and business stakeholders get to put on their user hats and kick the tires on a new feature or application. But for many, this critical process feels less like a smooth handover and more like a roadblock.

 

However, AI has the potential to help us overcome these obstacles and make user acceptance testing an easier and less challenging step in the product development process.

 

The pain points of today's UAT process

 

Before we dive into the future, let's acknowledge the common frustrations we’re all familiar with. The current UAT and feature sign-off process has some significant limitations:

  • A functional, not technical, mindset. UAT is typically done by business people who are experts on the functionality but not on the code execution. They understand what the feature should do, but they lack the technical know-how to deeply investigate when something goes wrong. Because they are also not well versed with the Technical systems so it becomes difficult for them to test any new scenarios.

  • A reliance on the QA team. Business teams often need a lot of help from the quality assurance (QA) team just to run their test cases. The QA teams generally create the scenarios and share it with the UAT people and it requires a lot of handholding to run those scenarios. This creates a bottleneck and a dependency that slows down the entire process. If a product owner wants to test a specific scenario, they typically have to wait for a QA engineer to be available to help them navigate the testing environment and execute the steps needed.

  • The race against time. In the small window of time allocated for UAT, business teams need to ensure all scenarios are covered. This pressure can lead to rushed checks, missed edge cases and a less polished final product. The sheer volume of test cases often makes it impossible to cover everything manually and with limited time.

 

These limitations turn what should be a vital final check into a chore, often forcing teams to make difficult trade-offs between speed and quality.

 

The AI-powered solution: LLMs and the Model Context Protocol (MCP)

 

What if we could address these problems and fundamentally change how UAT is done? The answer lies in leveraging the power of large language models (LLMs) and a Model Context Protocol (MCP) server.

 

Although feature testing is usually limited to manual testing, to make use of AI in this context, a different approach is needed. Specifically, QA teams need to write their test cases in a modular, functional way which can be called and run independently. Instead of writing long, scripted test plans, QAs will need to write crisp, clear and reusable functions. 

 

How it works in practice

 

Let’s look at an example to see how this works in practice — consider feature testing for an online shopping application. The requirement would be, in this example, to test the APIs that allow users to login, add items to their cart and submit the order. 

 

Each of these functions represent specific actions or scenarios:

loginWithCredentials(username, password) or submitOrder(items, shippingAddress). 

 

QAs will need to map these different test cases or write new functions to test different functionalities.

 

Once they’re created though, these functions can be exposed through a central MCP server. This server acts as a bridge, making the functions callable by the LLM. A product owner or business user can then simply write a scenario in natural language, like:

 

"As a new user, log in and verify that I can add three items to my cart and proceed to the checkout page."

 

LLMs or GenAI models are good at understanding the user question and dividing that into subsequent tasks or subquestions. Most of the Frontier GenAI models are also good at classifying the user intent. To get higher accuracy models could also be trained or can be augmented using a RAG system. The LLM then translates this request into a sequence of function calls to the MCP server:

 

loginAsNewUser(), addItemToCart('item1'), addItemToCart('item2'), addItemToCart('item3'), and navigateToCheckoutPage()

 

The MCP server then executes these functions and reports the results back.

 

Suddenly, UAT personas can run complex, end-to-end tests without needing constant help from the QA team. They are empowered to be self-sufficient testers, focusing on scenarios that matter most to them as users.

 

A new mindset for quality assurance

 

With this approach, the QA team's role evolves from manual testers to architects of an automated testing framework. To make this work, the way QA teams write their functions must change.

 

Each function must be designed to be computed by an LLM. This means:

  • Clarity is king: Functions should be named clearly and descriptively (e.g., verifySuccessfulPayment() is better than checkPay()).

  • Relevant information: Each function should have a clear, concise docstring or description that explains what it does, its inputs and its expected outputs. This is the context the LLM needs to make intelligent decisions.

  • Clear input/output definitions. The function's parameters and return values must be explicitly defined. This structured data is what allows the LLM and MCP server to execute the correct actions and provide a meaningful, understandable result.

By adopting these practices, QA teams can build a robust, maintainable and human-readable library of test actions. These should be modular functions that allow (UAT) testers to run test scenarios in the language of the business domain. This turns QA into more than just testing — they become enablers of a faster and more effective UAT process.

 

Conclusion: From bottleneck to driver of quality

 

By combining the power of LLMs and a modular server architecture, we can turn UAT from a frustrating bottleneck into an efficient and collaborative phase. Product owners can now test features independently and with speed, reducing the time to sign-off and ensuring higher quality releases. The UAT and sign-off process moves from a fragmented, manual effort to an automated and user-driven experience. This isn't just an improvement — it's a fundamental change in how we define and achieve quality in the age of AI.

 

Disclaimer: The statements and opinions expressed in this article are those of the author(s) and do not necessarily reflect the positions of Thoughtworks.

Elevate your expertise