7 Major Challenges of Successful User Acceptance Testing (UAT) and How You Can Overcome These

What is User Acceptance Testing (UAT)?

UAT is final testing performed when functional, system and regression testing is completed. The main purpose of UAT is to validate the software against the business requirements. This validation is carried out by end users who are familiar with the business requirements. UAT, alpha and beta testing are different types of acceptance testing.

As user acceptance testing is the last testing carried out before the software goes live, obviously this is the last chance for the customer to test the software and measure if it’s fit for the purpose.

UAT testing

Need of User Acceptance Testing

Developers and functional testers are technical people who validate the software against the functional specifications. They interpret the requirements according to their knowledge and develop/test the software (here is the importance of domain knowledge). This software is complete according to the functional specifications but there are some business requirements and processes which are known to end users only are either missed to communicate or misinterpreted. UAT plays an important role in validating if all the business requirements are fulfilled or not before releasing software for the market use. Use of live data and real use cases make UAT testing an important part of the release cycle.

Many businesses who suffered big losses due to post-release issues know the importance of successful UAT. The cost of fixing defects after release is many times greater than fixing it before.

Who should be part of the UAT team?

Mainly end users of the software should be involved in UAT. The team can be comprised of beta testers or customer should select UAT members internally from every group of organization so that each and every user role can be tested.

7 major challenges of UAT and mitigation plan to overcome these

It doesn’t matter if you are part of a billion dollar release or a startup team, you should overcome these UAT challenges for delivering successful software for the end user.

1) UAT environment setup and deployment process

Carrying out UAT on same environment used by functional test team will certainly end up overlooking real world use cases. Also crucial testing activities like performance testing can’t be carried out on test environment with incomplete test data. Separate production like environment should be setup for UAT.

Once the UAT environment is separated from test environment you need to control the release cycle effectively. Uncontrolled release cycle may leads to different software versions on test and UAT environment. Valuable UAT time is wasted by not testing software on latest version. Not to mention the time required for issue tracking on incorrect software version.

2) UAT test planning

UAT should be planned with clear acceptance test plan in requirement analysis and design phase. In strategy planning, set of real world use cases should be identified for execution. It is very important to define test objectives for UAT testing as complete test execution for large application is not possible in UAT phase. Testing should be carried out by prioritizing critical business objectives first.

UAT is carried out at the end of the testing cycle. Obviously it is the most critical period for the software release. Delay in any of the previous stages of development and testing eat up UAT time. Improper test planning, in worst cases, leads to overlap between system testing and UAT. Due to less time for UAT and pressure to meet deadlines, software is deployed to UAT environment even though functional testing is not completed. UAT goals can’t be achieved in such situations.

UAT test plan (template) should be prepared and communicated to team well before beginning UAT. This will help them for test planning, writing test cases and test scripts and creating UAT environment.

3) Handling new business requirements as incidents/defects

------------

Ambiguities in requirements get caught in UAT phase. UAT testers find issues arising due to ambiguous requirements (by looking at the complete UI which wasn’t available during requirement gathering phase) and log it as a defect. Customer expects these to be fixed in current release without considering the time for change requests. If timely decision is not taken by project management on these last-minute changes this could lead to the release failure.

4) Unskilled testers or testers without business knowledge

If there is no permanent UAT test team, company select UAT staff from various internal departments. Even if this staff is well familiar with business needs, if they are not trained for the new requirements being developed they can’t perform effective UAT. Also non-technical business team might face many technical difficulties executing UAT test cases. Also assigning testers at the end of the UAT cycle do not add any value to the project. Little time to train UAT staff can significantly increase the chances of UAT success.

5) Improper Communication channel

Communication between remote development, testing and UAT team is more difficult. Email communication is often very difficult when you have an offshore tech team. A small ambiguity in incident reports can delay its fix for a day. Proper planning and effective communication are critical to effective team collaboration. Project teams should use web based tool to log defects and questions. This will help to distribute work load evenly and avoid reporting duplicate issues.

6) Asking functional test team to perform UAT

There is no worse situation than asking functional test team to perform UAT. Customers offload their responsibility to test team due to lack of resources. The whole purpose of UAT gets compromised in such cases. Once the software goes live, end users will quickly spot the issues which are not considered as real world scenarios by functional testers. Solution to this is to assign UAT to dedicated and skilled testers having business knowledge.

7) The blame game

Sometimes business users just try to find reasons to reject the software. It might be their selfdom to show how superior they are or blame the development and testing team to get respect in business team. This is very rare but happens in teams with internal politics. It’s very difficult to deal with such situations. Building positive relationship with business team would definitely help to avoid blame game.

Summary

I hope these UAT guidelines will certainly help you execute a successful UAT plan by overcoming various challenges. Proper planning, communication, execution and motivated UAT team are the keys to successful user acceptance testing.

What other challenges do you think result in unsuccessful UAT?



The Best Software Testing Training You'll Ever Get!

software testing QA training

19 comments ↓

#1 Harpreet Singh on 11.30.12 at 5:38 am

moody business users work according to their schedule. for them their official duties come first than the uat work. getting work done from them is the biggest challenge i suppose

#2 Vijay on 11.30.12 at 7:37 am

That’s the drawback of not having permanent UAT team. Business users have their own work priorities and UAT is second-priority for them.

#3 Satish on 11.30.12 at 1:23 pm

Thanks Vijay for the precious post. We have faced some of these challanges. Can you provide sample UAT Test Plan?

#4 Software Tester on 11.30.12 at 2:30 pm

This isn’t a thing a can I agree with in this article.

#5 Anand Murali on 11.30.12 at 2:37 pm

we are constantly facing the blame game. uat team try show down offshore test teams by logging UI issues which are not related.

#6 krishnaveni on 12.01.12 at 1:58 am

Nice Article

#7 John L on 12.14.12 at 10:28 am

Great article!

#8 vijayshree on 12.24.12 at 7:28 am

thank you for this post, it gives all answers of UAT in a single article ,which I was searching.

#9 Jeff on 12.28.12 at 12:50 am

I think that it is great that you have written and published an article. However I see many of the points differently.

Our challenge in the environment is to actually make one that the UAT people can access as often they cannot get to a devleopment/test environment. However I would expect test and UAT environments to be different as any defects from UAT would have to go back via dev/Test making them a different version.

In terms of UAT I do not see why it (or any testing) should be squeezed for time. Unless you are in the habit of building contingency into your timeframes then late delivery from development should have no effect on how long you test, it merely moves the dates. A strong TM should push this back.

Basically I also do not agree with points 3 onwards although the summary is okay. In my opinion we need to get out of the victim mentality, no longer taking whatever is thrown in our direction but instead taking control.

#10 UAT Tester on 12.28.12 at 4:05 pm

I agree with some of the above.

1: Environment: you need to add the fact that UAT is completed against indicative to live data set, which throw’s up its own set of challenges.

2: I’ve experienced a situation where UAT was in advance of Sys Test/SiT – Not a nice situation to be in, however this is not down to test planning and building contingency, its down to developer understanding of code/poor code build (number of regressive issues found).

4: Some of the best ‘UAT testers’ I have worked with, come from the business without prior knowledge of testing of the fundamentals behind various methodologies – UAT in nature should be none technical, unless the solution is technical in nature – You do however need an experienced Tester to assist where technical issues appear .

7: Not all business users are ‘moody’ at the end of the day, they are the ones who will use the application under test daily, whereas we’ll just move onto the next project/program

#11 Sandeep on 01.10.13 at 6:02 am

Software testing is a process used to identify the correctness, completeness, and quality of developed computer software. It includes a set of activities conducted with the intent of finding errors in software so that it could be corrected before the product is released to the end users.
I found very Nice article on this post

#12 kiran on 04.15.13 at 1:03 pm

how can learn automation testing??. which site best for learning automation testing

#13 kiran on 04.15.13 at 1:05 pm

give me link for download most testing tool useful to us

#14 Richard on 04.16.13 at 10:55 am

Good list, we were constantly having problems with this phase of projects so we developed webseam. It’s a really cool service that let’s clients edit web pages to give feedback to their developers. But they are not real edits instead they are captured and provided by the tool to the developers as a list of issues and bugs. Then when the page is fixed the client sees it like Word ‘track changes’ so they know what was fixed.

#15 Surbhi on 12.10.13 at 7:06 am

Please help to answer this question: What is a good UAT?

#16 saritha on 03.04.14 at 12:15 pm

Please give me the answer for this ,what are the challenges you faced during the testing of online banking application? and how did you solved?

#17 Yasmin on 03.04.14 at 7:54 pm

How do a tester generate test data when testing a loan origination software?

#18 santosh on 03.05.14 at 10:55 am

I think a tester plays a very key role in the entire testing process. Unfortunately a tester is not given the kind of importance, he is actually supposed to get. I think the leader of the team for an entire project has to understand this and also how his testing team has to be. Probably have some people specifically for UAT who can move across different teams and finish them on time.

#19 Suwandi on 03.27.14 at 10:09 am

Good article!
Just want to ask, who should create (or provide) UAT cases?
1. Developer ? Because they built the system
2. Implement Consultant ? Because they gathered all the requirements and put it together as functional specification.
3. Users (or IT dept from user side) ? Because it is USER Acceptance Test. User need to validate it from their point of view, business process.

Regards,

Leave a Comment