Understanding Role of UAT in Software Testing

What exactly is user acceptance testing?

For the inexperienced, UAT represents essentially the final frontier of Testing to identify any suspicious defects before being released to the market. The concept is that you don’t get the chance to correct any flaws that are obvious in your product after this point during the development.

UAT can also be the time at which the user is satisfied that the product has met all specifications. By user, we refer to those who purchased the product initially. This could be individuals who directly utilize the product or expect their customers to utilize it.

For example,

  • If you’re creating an interface for staff for a banking core system, users are people working in the different locations of the bank which utilize the front-end daily.
  • If you’re developing a customer-facing mobile app for a retailer bank, users represent the proposition teams that have expressed interest in the features offered by the application. They’ve also recorded their requirements based on the interactions or feedback received from the market or customers.

UAT Test Plan:

Now that we know who the actual users will be, UAT represents the cycle of testing typically performed by the users themselves to verify that the application functions according to expectations and that it meets all requirements they had set at the beginning of the development.

The actual testing could be carried out entirely by the users themselves. This will require some committed resources by the user group that sponsors the testing.

However, it’s not always feasible. Because of a variety of factors, it’s possible that you might not have enough time to run an exhaustive UAT process. The trend, so, is that users form a group of testers to outsource UAT testing efforts to.

Notice the key difference the fact that today, users outsource the execution of UAT — not the decisions that go with UAT. They designate a responsible UAT manager who collaborates with the team working on the project to create the UAT test strategy, and then recruit an experienced team of testers to carry out the test cases.

It is therefore possible that users will hand over the responsibility of designing and executing UAT to a specific testing team. They are still responsible to sign off on the product after it has passed UAT. This means that they have be able to show confidence in the product’s ability to meet all of its initial requirements prior to it being approved for publication.

The method of development for software The methodology of software development — Waterfall, Agile, or some combination of both — the method by which UAT is designed and implemented can differ. But the core of the concept UAT signifies and the goals it is designed to accomplish remain the same regardless of how you integrate UAT into your software delivery.

The key enablers needed to create a solid UAT test strategy:

Affirmed (or approved) specifications

Yeah, I know that those Agile supporters among you are in a state of shock at this article. What is the significance of signed off? Waterfall methods of working? Agile is a term used to describe a flexible scope of project and requirements, isn’t it?

But not so much. Let me explain.

If you’re engaged in Waterfall projects (I don’t advocate Waterfall methodology in today’s constantly evolving Digital world however to each their own) It is true that there will be definite (note the quotation marks) and approved requirements prior to beginning development. Thus, making use of these signed off requirements to plan and implement UAT is easy and rational.

In agile projects, the things could be a little confusing.

Do you have an Agile project include development sprints, but only dedicated testing cycles to polish the product prior to releasing it? Based on my experience, I can estimate that 60 or more of Agile projects have some form of specific Systems Testing as well as User Acceptance Testing sessions to find the inconspicuous bugs that must be found before deploying the product to the market.

What is the reason for this? Because, while working Sprints are you really don’t have time to guarantee that you have 100% quality for your product. Particularly when it’s developing a new product, Sprints are focused on constructing the basic features of the product in the quickest time possible to make sure they’re perfect before focusing on release quality.

Therefore, there’s likely to be some testing reserved for the pre-release preparation so that the Scrum team can concentrate on the 80percent (of the well-known 20–20 rule) first. Whatever you decide to call it — name it a Sprint or call it an ‘exclusive’ Test Cycle refer to it as “Testing” or differentiate System Testing from User Acceptance and use real testers or delegated testers, you’ll need UAT at the conclusion of such projects.

“There is no doubt about “what is the need that you are testing?’ if your testers and developers are fighting over the legitimacy of an error.”

This brings us back to the subject of Signed off or approved requirements, even in Agile projects, you are able to build a repository that contains required requirements that are signed off. If a story from a user is incorporated into a sprint that is due for delivery and approval, the specific story has been signed off. A Product Manager has supplied their specifications for the Sprint however, they are as a’story and acceptance criteria’. The requirements are also stored centrally for tracking the process of delivery.

These are, after that the accepted and signed off conditions.

What is the reason that sign-off or approval is crucial User Acceptance Testing is a way to make sure that your product meets the expectations of the people who pay for it to be constructed. If the individuals who pay the bill clearly state their requirements and agree to accept or accept, you have a concrete set of requirements that you can examine and test your product to.

The fact that you have signed off on requirements can help you create an action plan to fulfill those specifications. There should be no doubt over ‘what the requirement is and what is the test?’ if your developers and testers argue about the legitimacy of the defect.

Test scenarios have to be reviewed and approved by the user or the product Owner.

It is the follow-up on from the previous point.

We’ve found that the final users should have the opportunity to test the software and then approving UAT testing. We also have established that this isn’t the norm at all. At the very least, users don’t actually perform UAT testing, and even if they do, they don’t necessarily pass the entire UAT testing. They typically hire specialists UAT testers to complete their work.

The issue with expert testersis that they may not be able to comprehend all aspects of the product that needs to be evaluated. It could be that they’re not familiar with the product, industry or line of business, or simply that they do not have the same perspective of the business’s sponsors and their end users regarding the business requirements the product must meet, the intended customers, design standards and a myriad of other demands.

How can you assist the UAT tester succeed? By setting the parameters and boundaries they will test, of course.

And who better to ensure that the scope of testing covers everything that must be included? For the purpose of answering this question that’s the same group of people who set the specifications in the first place The same people who will be using the product that is being developed.

Ask the owner of the product or users to review the scenarios of test to test in depth. Offer them a walkthrough, in case you are required to. When it comes to Waterfall Projects, this can be an overwhelming task, especially in the case of projects that are large and complicated. When you work with Agile When you put in the requirements and the corresponding tests scenarios or cases within every sprint it makes your work simpler.

In Agile yet again, if you are able to dedicate a UAT cycle following the Sprints however, it’s recommended to create your Test scope incrementally over the Sprints. So, you’ll be prepared when the UAT cycle starts and don’t have to create this massive database of test cases at the same time.

Tooling

Self-explanatory, but let’s stay on this issue for a while.

A solid test case repository can assist you in saving thousands of hours work that would be spent when writing testing cases completely from scratch writing test scripts, etc. I’ve previously written about how to improve the quality of your Test Case Management practices and this still applies.

Tooling is an essential element in making UAT easier, quicker and more efficient. It could be an incorporated Test Case repository, adequate Requirements Traceability , or an effective bug tracking tool, whether these are standalone programs which integrate well, or an integrated one like our own ReQtest Learn about your requirements for tooling and make sure you meet these requirements. Also, UAT test plans are essential to make your work faster and more efficient.

Team members will be grateful to them to make their work more comfortable and their work more efficient.

UAT Test Plan Template

A commitment from your team of developers to deliver and plan the code in time

When working on Waterfall projects, as well as on Agile projects that have dedicated Testing cycles, this can be an extremely difficult task. Despite the assumption that the code that is tested in unit and system testing must be clean and free of functional flaws we are aware of the truth.

Many times, I’ve seen projects continue to push code to System Testing, as well then into UAT. We advocated the use of a minimum of “clean weeks’ of testing — i.e. those weeks prior to the completion of the test process when there is no code that has been added to be accepted to be incorporated into the system.

Let’s say, for example, we have the case of a moderate-sized project, with approximately 4 weeks of clean SIT and two weeks of clean UAT. It means that for the remaining four weeks of SIT won’t allow new code to be added. The last two weeks of UAT similarly.

What this does is it lets your Testing team to work with code that’s relatively stable and comfortable. But, you’ll need your development team cooperate with you in this. In reality, you’ll need more general management of the program to embrace these practices first to ensure their effectiveness when they are implemented.

Make sure you get an agreement from your development team to follow the clean week’s policy for testing. If it appears that they may not adhere, you should raise the risk to project’s management. This will allow you and your team to avoid any delays in delivery dates , and also expose the problems to management, so that they can be addressed. Also, you’ll avoid a lot of stomach ache later during testing when everyone is screaming at you to be finished testing by the deadline.

Entry & Exit Criteria

It is a continuation of the earlier point.

With all the things going on in a single project and especially when you’re working on a prominent one, it’s sometimes not evident to everyone working on the project (not only your testers, but everybody) What are the essential requirements that must be fulfilled before Testing begins, and also before Testing is able to conclude.

What is the significance of this What are the entry and exit criteria for Testing cycles establish the absolute minimum the UAT manager must accept (on behalf of their company sponsor) before they start testing the product and prior to recommending to sign off on Testing for the release.

The entry criteria may include that the requirements are accepted, the test plan is approved tests, test scenarios are approved and test scenarios are and approved by key stakeholders, etc. The exit criteria for moving the product to release may include that 100 percent of the tests have been completed 100% of critical and high defects have been resolved 90% of moderate defects have been corrected and 95% of the tests have been passed, etc.

If you have entry and exit Criteria set out in the UAT test plan, and ratified by all the key people involved (including those who are your engineering team) You then can clearly determine the progress of testing once you’re fully in the swing. There won’t be any surprises.

The whole thing

There are other significant enablers available as well, some of which could be specific to your specific organizational or project. The goal of the exercise being to provide an initial set that you can work on, and then create an effective UAT test strategy from there.

So go ahead, go build your rock solid UAT test plan today. Remember, the more you’re prepared, the more likely you are to succeed.

--

--

--

I work as a Senior Testing Specialist at TestingXperts. I am a testing professional accustomed to working in a complex, project-based environment.

Love podcasts or audiobooks? Learn on the go with our new app.

Running a Jupyter Notebook in an Astronomer Airflow Local Development in 6 easy steps

AWS-Terraform Automation

Working on your Mobile App Development Project? Start Using APIs for Great UX

A female engineer in a mobile app development company on her workstation.

KodaDot 2.0 — Beta

SmartConnect — a Python Tool to improve your Workflow in Houdini

I’m making myself like TDD

Best Programming language for Hacking?

Mojave Download Iso

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store
Serena Gray

Serena Gray

I work as a Senior Testing Specialist at TestingXperts. I am a testing professional accustomed to working in a complex, project-based environment.

More from Medium

The First Lap (2017) review

New Office Design Ideas, LED Lobby Signs, and staying healthy in 2022 from Cadwell Design + Sign

Maturing

UX — Best Mechanical Pencils 2022