UAT
UAT
com/definition/user-acceptance-testing-UAT
https://www.altexsoft.com/blog/engineering/how-to-conduct-user-acceptance-testing-
process-stages-deliverables-and-end-user-testing-place-in-quality-assurance/
check
What is UAT?
User Acceptance is defined as a type of testing performed by the Client to certify
the system with respect to the requirements that was agreed upon. This testing
happens in the final phase of testing before moving the software application to the
Market or Production environment.
The main purpose of this testing is to validate the end to end business flow. It
does NOT focus on cosmetic errors, Spelling mistakes or System testing. This
testing is carried out in a separate testing environment with production like data
setup. It is a kind of black box testing where two or more end users will be
involved.
When is it Performed?
This is typically the last step before the product goes live or before the delivery
of the product is accepted. This is performed after the product itself is
thoroughly tested (i.e after system testing).
Project Charter
Business Use Cases
Process Flow Diagrams
Business Requirements Document(BRD)
System Requirements Specification(SRS)
UAT Tester should possess good knowledge of the business. He should be independent
and think as an unknown user to the system. Tester should be Analytical and Lateral
thinker and combine all sort of data to make the UAT successful.
Tester or Business Analyst or Subject Matter Experts who understand the business
requirements or flows can prepare test and data which are realistic to the
business.
Best Practices:
Following points needs to be considered to make UAT Success:
UAT Tools
There are several tools in the market used for User acceptance testing and some are
listed for reference:
In UAT, users are given a chance to interact with the software before the official
release and see if any features have been overlooked or contain bugs. UAT can be
done by in-house testing in which volunteers or paid test subjects use the software
or by making the test version available for downloading a free trial over the Web.
The experiences of the early users are forwarded back to the developers who make
final changes before releasing the software commercially.
UAT is an effective method for ensuring quality in terms of time and cost to
perform while increasing transparency with the software users. UAT also allows
developers to work with real cases and data, and if successful, validates fulfilled
business requirements.
Types of UAT
Multiple types of software tests qualify as user acceptance testing. These tests
include:
Beta testing- Where the software is given to groups of end users, who will use the
software in its intended purpose and will provide feedback to developers for
changes to make improvements.
Black box testing- Where an end user will test specific software functions without
seeing the internal code.
Operational Acceptance Testing- Which puts a focus on proper workflow for the
software in use.
Alpha Testing normally takes place in the development environment and is usually
done by internal staff. Long before the product is even released to external
testers or customers. Also potential user groups might conduct Alpha Tests, but the
important thing here is that it takes place in the development environment.
Based on the feedback – collected from the alpha testers – development teams then
fix certain issues and improve the usability of the product.
Beta Testing, also known as “field testing”, takes place in the customer’s
environment and involves some extensive testing by a group of customers who use the
system in their environment. These beta testers then provide feedback, which in
turn leads to improvements of the product.
Alpha and Beta Testing are done before the software is released to all customers.
Asking testers via email to provide their test results is still a popular way to
conduct and run alpha/beta tests. And yet you’re probably wondering, “but isn’t
there a better solution for that?” Luckily, there is.
With Usersnap, UAT teams can easily gather and analyse qualitative feedback from
testers. And for testers it’s super-easy to work through a first alpha or beta
test, as they can simply draw on their screen to provide feedback.
During Black Box Tests the user isn’t aware of any code base, but only about the
requirements which the software should meet.
Testers do not require any specific knowledge about the application or any of its
features. The tester conducting Black Box Tests is only aware of what the software
is supposed to do. They don’t know how it should be done.
Many QA and development teams use Black Box Testing for their UAT efforts pretty
frequently.
The number of steps involved in performing a user acceptance test may range
depending on how granular each team wants to define each step in the process. For
the most part, however, these steps commonly include
1.A planning phase where the business requirements and the strategy for the UAT are
outlined
2.The identification and creation of test scenarios. These test scenarios should
cover as many functional cases as possible that end users would face.
3.Testing teams are chosen. Developers can decide to have a select few end users
test the software or open up the test to many more by offering a free trial over
the Web.
4.A testing and documentation phase where end users begin testing the software and
any potential bugs and other issues are logged.
5.A fix phase where the development team makes adjustments to the code, resolving
any bugs or making suggested changes.
After this, the software should be ready for release into its production
environment.
User Acceptance Testing (UAT), also known as beta or end-user testing, is defined
as testing the software by the user or client to determine whether it can be
accepted or not. This is the final testing performed once the functional, system
and regression testing are completed.
The main purpose of this testing is to validate the software against the business
requirements. This validation is carried out by the end users who are familiar with
the business requirements.
UAT, alpha and beta testing are different types of acceptance testing.
As user acceptance test is the last testing that is carried out before the software
goes live, obviously this is the last chance for the customer to test the software
and measure if it is fit for the purpose.
When is it Performed?
This is typically the last step before the product goes live or before the delivery
of the product is accepted. This is performed after the product itself is
thoroughly tested (i.e after system testing).
The team can be comprised of beta testers or the customer should select UAT members
internally from every group of the organization so that each and every user role
can be tested accordingly.
This software is complete according to the functional specifications but there are
some business requirements and processes that are known only to the end users are
either missed to communicate or misinterpreted.
This testing plays an important role in validating if all the business requirements
are fulfilled or not before releasing the software for market use. Use of live data
and real use cases make this testing an important part of the release cycle.
Many businesses who suffered big losses due to post-release issues know the
importance of a successful User Acceptance Test. The cost of fixing the defects
after release is many times greater than fixing it before.
After performing loads of system, integration and regression testing one would
wonder about the necessity of this testing. Actually speaking, this is the most
important phase of the project as this is the time at which the users who are
actually going to use the system would validate the system for its fit to purpose.
UAT is a test phase that largely depends on the perspective of the end users and
the domain knowledge of a department that represents the end users.
As a matter of fact, it would really be helpful to the business teams, if they were
involved in the project quite early, so that they can provide their views and
contributions that would help in effective usage of the system in the real world.
The following are the pre-requisites before the planning phase begins:
In simple terms, Acceptance criteria is a list of things that are going to get
evaluated before accepting the product.
Ideally, all the key business functionality should get validated, but due to
various reasons, including time, it is not practical to do it all. Therefore, a
meeting or two with the client or the users who are going to be involved in this
testing can give us an idea on how much testing is going to be involved and what
aspects are going to be tested.
(ii) Contractual – We are not going to go into this and the involvement of the QA
team in all this is almost nothing. The initial contract that gets drawn up even
before the SDLC begins is reviewed and an agreement is reached upon whether all the
aspects of the contract have been delivered or not.
(ii) Assist in this testing – Most common. In this case, our involvement could be
training the UAT users on how to use the application and be on standby during this
testing to make sure that we can help the users in case of any difficulty. Or in
some cases, in addition to being on standby and assisting, we might share their
responses and record the results or log bugs etc., while the users perform the
actual testing.
(iii) Perform UAT and present Results – If this is the case, the users will point
the areas of the AUT that they want to evaluate and the evaluation itself is
performed by the QA team. Once done, the results are presented to the clients/users
and they will make a decision on whether the results that they have in hand are
sufficient or not and in accordance with their expectations in order to accept the
AUT. The decision is never that of the QA team.
Usually, UAT is undertaken by a Subject Matter Expert (SME) and /or a business
user, who might be the owner or the customer of a system under test. Similar to the
System testing phase, the UAT phase also encompasses religious phases before it is
brought to closure.
UAT Governance
Similar to system testing, effective governance is enforced for UAT to ensure that
strong quality gates along with the defined Entry and Exit criteria (provided below
**).
** Please note that it is just a guidance. This could be modified based on the
project needs and requirements.
UAT Governance
The most common approach followed in most of the projects is to plan for both
system and UAT testing phases together. For more information on UAT test plan along
with a sample, please check out the attached test plan document’s UAT sections.
(This is the same that you would find on our site for the QA training series as
well).
Click on the below image and scroll down to find the test plan document sample in
various formats. In that template check the UAT section.
UAT Design
The gathered acceptance criteria from the users are used in this step. Samples
could look as shown below.
(These are excerpts from CSTE CBOK. This is one of the best references available
about this testing.)
UAT Template
Based on the criteria, we (QA team) give them the users a list of UAT test cases.
These test cases are not different from our regular system test cases. They are
just a subset as we test all of the application as opposed, just to the key
functional areas.
Or in case of the QA team performing the tests, we run the test cases on the AUT.
Once all the tests are run and the results are in hand, the Acceptance Decision is
made. This is also called the Go/No-Go decision. If the users are satisfied it’s a
Go, or else it’s a No-go.
Tools:
As this phase involves validating the complete end to end flows of the application,
it might be difficult to have one tool to automate this validation completely.
However, to some extent, we would be able to leverage the automated scripts
developed during system testing.
Similar to system testing, users would also use test management and defect
management tool like QC, JIRA etc. These tools can be configured to cumulate data
for the User Acceptance phase.
Methodologies:
For Example, an e-commerce website would be used by customers across the globe. In
scenarios like this, crowd testing would be the best viable option.
Crowd testing is a methodology where people from all over the world can participate
and validate the usage of the product and give suggestions and recommendations.
Crowd testing platforms are built and are being used by many organizations now. A
website or a product which needs to be crowd tested is hosted in the platform and
the customers can nominate themselves to do the validation. The feedbacks provided
are then analyzed and prioritized.
At the beginning of the project, business users would be the key stakeholders to
provide requirement thereby updating the product backlog. During the end of each
sprint, business users would participate in the sprint demo and would be available
for providing any feedbacks.
Moreover, a UAT phase would be planned before the sprint completion where the
business users would do their validations.
The feedbacks which are received during sprint demo and sprint UAT, are collated
and added back to the product backlog which is constantly reviewed and prioritized.
Thus in an agile world, the business users are more close to the project and they
evaluate the same for its use more frequently unlike the traditional waterfall
projects.
UAT Test Lead & Team • Verify & Validate Business Requirement against Business
process
• Estimation for UAT
• Create & Execute UAT test Plan
• Participate in requirement JAD session
• Prepare test scenarios, test cases and test data based on Business Process
• Maintain Traceability
• Execute test cases and prepare test logs
• Report defects in test management tool and manage them throughout their lifecycle
• Produce UAT End of test report
• Provide Business Readiness Support and Live proving
• Test Log
• Weekly Status Report
• Defect Report
• Test Execution Metrics
• Test Summary Report
• Archived Reusable Test artifacts
Carrying out this test in the same environment used by the functional test team
will certainly end up overlooking the real-world use cases. Also, crucial testing
activities like performance testing can't be carried out on a test environment with
incomplete test data.
Once the UAT environment is separated from the test environment, you need to
control the release cycle effectively. Uncontrolled release cycle may lead to
different software versions on test and UAT environment. Valuable acceptance test
time is wasted when the software is not tested on the latest version.
Meanwhile, the time required for issue tracking on incorrect software version is
high.
This testing should be planned with a clear acceptance test plan in the requirement
analysis and design phase.
In strategy planning, the set of real-world use cases should be identified for
execution. It is very important to define the test objectives for this testing as a
complete test execution is not possible for large application in this testing
phase. Testing should be carried out by prioritizing critical business objectives
first.
This testing 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 will eat up the UAT time.
Improper test planning, in worst cases, leads to an overlap between the system
testing and UAT. Due to less time and pressure to meet deadlines, the software is
deployed to this environment even if functional testing is not completed. The core
goals of this testing can’t be achieved in such situations.
The UAT test plan should be prepared and communicated to the team well before
beginning this test. This will help them for test planning, writing test cases &
test scripts and creating a UAT environment.
#3) Handling new business requirements as incidents/defects:
Ambiguities in requirements get caught in the 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.
The customer expects these to be fixed in the current release without considering
the time for the change requests. If a timely decision is not taken by the project
management on these last-minute changes, then this could lead to the release
failure.
When there is no permanent team, the company selects UAT staff from various
internal departments.
Even if the staff is well familiar with the business needs, or if they are not
trained for the new requirements that are being developed, they can’t perform
effective UAT. Also, a non-technical business team might face many technical
difficulties in executing the test cases.
Meanwhile, assigning testers at the end of the UAT cycle do not add any value to
the project. Little time to train the UAT staff can significantly increase the
chances of UAT success.
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.
There is no worse situation than asking the functional test team to perform UAT.
Customers offload their responsibility to the test team due to lack of resources.
The whole purpose of this testing gets compromised in such cases. Once the software
goes live, the end users will quickly spot the issues which are not considered as
real-world scenarios by the functional testers.
Solution to this is to assign this testing to the dedicated and skilled testers
having business knowledge.
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 the business team. This is very rare but happens in teams
with internal politics.
It’s very difficult to deal with such situations. However, building a positive
relationship with the business team would definitely help to avoid the blame game.
I hope these guidelines will certainly help you to execute a successful user
acceptance plan by overcoming various challenges. Proper planning, communication,
execution, and motivated team are the keys to successful user acceptance testing.
All through the project life cycle, some kind of validation is performed for the
project, i.e. Static testing, Unit testing, System testing, integration testing, an
end to end testing or regression testing. This leaves us to understand better about
the testing performed in the UAT phase and how different it is from the other
testing performed earlier.
Though we see the differences in SIT and UAT, it is important that we leverage
synergies but still maintain the independence between both the phases which would
enable faster time to market.
Concluding Points
#1) UAT is not about the pages, fields or buttons. The underlying assumption even
before this test begins is that all that basic stuff is tested and is working fine.
God forbid, the users find a bug as basic as that – it is a very bad news for the
QA team. :(
#2) This testing is about the entity that is the primary element in the business.
Let me give you an Example: If the AUT is a ticketing system, the UAT is not going
to be about, searching the menu that opens a page etc. It is about the tickets and
their reservation, the states that it can take, its journey through the system,
etc.
Another Example, if the site is a car dealership site, then the focus is on the
“car and its sales” and not really the site. Hence, the core business is what is
verified and validated and who is better to do it than the business owners. That’s
why this testing makes the most sense when the customer is involved to a major
extent.
#3) UAT is also a form of testing at its core which means that there is a good
chance of identifying some bugs at this phase too. It sometimes happens. Aside from
the fact that it is a major escalation on the QA team, the UAT bugs usually mean a
meeting to sit and discuss how to handle them as following this testing there is
usually no time to fix and retest.
Push the go-live date, fix the issue first and then move on.
Leave the bug as it is.
Consider it as a part of the change request for future releases.
#4) UAT is classified as Alpha and Beta testing, but that classification is not
that important in the context of typical software development projects in a
service-based industry.
Alpha testing is when UAT is carried out in the software builder’s environment and
is more significant in the context of commercial off the shelf software.
Beta testing is when the UAT is carried out in the production environment or the
client’s environment. This is more common for customer-facing applications. The
users here are the actual customers like you and me in this context.
#5) Most of the times in a regular software development project, UAT is carried out
in the QA environment if there is no staging or UAT environment.
In short, the best way to find out if your product is acceptable and fit for
purpose is to actually put it in front of the users.
Organizations are getting into the Agile way of delivering, business users are
getting more involved and the projects are being enhanced and delivered via
feedback loops. All being done, User Acceptance phase is considered as the gate for
getting into implementation and production.
But of all forms of testing, user acceptance testing is often the most essential to
get right. Why? Because when implemented correctly, it’s the most effective in
reducing both time and cost, whilst increasing customer satisfaction.
User Acceptance Testing, also known as UAT (or UAT testing), in a nutshell, is:
And the key word here, is user. This is crucial because they’re the people who will
use the software on a daily basis. There are many aspects to consider with respect
to software functionality.
There’s unit testing, functional testing, integration testing, and system testing,
amongst many others. As part of these processes, we regularly ask questions such
as:
UAT is the usage of the software by people from the intended audience and recording
and correcting of any defects which are discovered. It’s the closest thing to a
“_real world_” test available. It gives users the chance to interact with the
software and find out if everything works as it should if features have been
overlooked, miscommunicated, not communicated, and so on.
DevelopMentor puts it most succinctly when they describe user acceptance testing
(UAT) as:
The goal of User Acceptance Testing is to assess if the system can support day-to-
day business and user scenarios and ensure the system is sufficient and correct for
business usage.
A set of test steps, execution conditions and expected results developed for a
particular objective, such as to exercise a particular program path or to verify
compliance with a specific requirement
Each case covers a specific usage scenario of the software. It is normally a set of
actions which the user can carry out and be able to verify if the software’s worked
as intended.
With these in place, the tests then have to be run and the results recorded. Were
the tests successful, or did defects result? Any bugs then need to be corrected and
re-tested.
Therefore we decided to collect all our thoughts and knowledge on the different
types of UAT in this article.
Conclusion
And that’s what, why, and how of integrating User Acceptance Testing as a standard
part of your web development projects. It reduces the likelihood of issues being
raised, which in turn reduces the amount of work required in development and
maintenance.
Sure, it’s another process which you have to manage, but the reduction in overall
cost and a higher level of user satisfaction more than offsets the associated
costs.
A while ago, we published an article on “What User Acceptance Testing is all about”
and a follow up article on “5 UAT Testing Types”. Since then, we got a lot of
feedback from users and people asking for further advice on the topic of UAT.
Therefore we decided to sum up all those inquiries and answer the following
question: ”What’s the key to a successful User Acceptance Testing?”
We put our heads together and collected the following six tips for you. Enjoy
reading & have fun executing your next User Acceptance Test Plan.
It’s the big test before going public. Sometimes User Acceptance testing is
referred to as “beta testing”. As we’ve shown you in this article on the 5 types of
UAT, you probably know that there’s more than beta testing to UAT.
All in all, UAT is about the user and if a certain product or service works for the
user.
Which of your employees and project members are involved in the UAT project phase?
Who is responsible for which tasks? Who’s doing the strategic planning? Who’s
managing the logistics?
Who is responsible for the operative UAT test execution?
Work on your test criteria before starting to execute your plan. And work on a
detailed User Acceptance Testing plan.
We’ve collected all those test criteria and created this UAT checklist for getting
started with your test plan.
Sometimes those User Acceptance tests are well executed. But then, those results
show some major defects which can’t be fixed without delaying the project
deadlines.
Depending on your project size, it definitely makes sense to include your potential
users right from the beginning. In order to avoid developed features which users
won’t get, you can include them in an agile software development process.
When analyzing testing results, you should always consider the characteristics of
your users too. Don’t simply perform UAT tests with friends, colleagues, and
family.
Make sure to get real users. Potential users should take a key role in User
Acceptance Tests.
So how does one select users for a User Acceptance Test group? Make sure you get a
diverse set of people which have not only different backgrounds and skills but also
vary in their use cases and problems they have.
4. Documentation is key.
Conducting User Acceptance Tests is a great thing to do. Yep – it is.
However, you won’t believe how many organizations perform UAT, though forget to
document testing results.
User Acceptance Testing Plan
A test only makes sense to be conducted, if you document the outcome in order to
analyze and improve what you have tested.
There are various ways to document your UAT results. The easiest form of
documenting the errors and failures your users encounter is by making use of a
simple bug tracking and error reporting tool.
Everything must be documented. Even if it looks just like a tiny bug. It could be
useful for a later test analysis.
5. One-on-one sessions
User Acceptance Test outcomes should always include qualitative data about the
user. And the easiest way to collect this data is by one-on-one sessions. If you
can’t be physically in the same room as your testers, make sure to set up a video
call for the test performance.
Emotional expressions, reaction time and the overall mood is essential when
analysing the UAT test results.
Emails are highly inefficient for UAT communication. Communicating with users,
testers, developers and other key players via email will drive you nuts.
We eat our own dog food, which means that we use our own software testing tool for
UAT purposes. It enables us to execute UAT tests and communicate with UAT testers
throughout the project phase via this feedback tool.
Wrapping it up.
User Acceptance Testing plays a crucial role in every software development
department. The benefits of well-executed UAT tests are obvious. You can ensure
that your product or service actually works for your users.
Therefore launching your product isn’t a leap into the unknown. When conducting
User Acceptance Tests you have already gathered a lot of information on how your
potential users and customers will use your product.
And most importantly, you will avoid such stressful situations when going live:
What is User Acceptance Testing, Why is it required, and How to do it?
It is usually the last step in the Software testing process. And the real Software
users carry out this activity to certify whether the product has all intended
functionality or not.
User acceptance testing decides the fate of the Solution and hence becomes the most
critical step in the product development/testing.
The word “user” in the UAT represents the client or a member of his team or a group
of professionals authorized for performing the testing.
The UAT is primarily to assert that the final solution delivers to the expectations
of users. Also, it confirms the application is providing an excellent end-to-end
user experience.
However, it is imperative that UAT might reveal some issues or new requirements
which need to be fixed or implemented. In such cases, the product goes back to
development based on the UAT feedback.
Whether the product is final or not would depend on the approval from the
designated stakeholders at the customer end.
Reason-1:
It is to confirm that the new features are working correctly or bug fixes are
getting fixed. But sometimes, they could use workarounds to ignore an issue which
could hide another real problem to get discovered later.
Reason-2:
After spending so many efforts on testing the product, there are still chances the
team might miss a few areas due to the use of workarounds or the shortcuts for
speeding up the whole process. Also, the developers and testers are professionals
for whom a few execution steps could not matter but not the same case for the end
users.
Reason-3:
Most of the end users are not proficient in using complicated software but knows a
part of it quite well which they handle. Also, they may concern how an application
or a new feature would behave. So, they can validate the new features or a product
with a fresh mindset. They can go on testing the product with a non-evasive
approach keeping focus on the quality and user friendly-ness. Hence, you can think
of user acceptance testing as a tool to determine the product behavior in standard
conditions.
Reason-4:
Moreover, there could be a situation where the development team missed to add some
of the requirements or implemented incorrectly. Such a case may arise if the PM
(product manager) is inefficient, doesn’t interact with the team on a regular
basis, or doesn’t participate in user stories demo. A good PM will always make sync
with the team on what the real requirements are and how they are getting
implemented. Anyways, user acceptance testing is an ideal approach to identify and
spot such differences. The end users are the first to catch and report these
discrepancies if there are any.
What Are The Differences Between User Acceptance Testing Vs. Functional Testing?
Since both, the above validation methods test a Software against a set of
specifications, so it is customary to ask the difference between the two.
The user acceptance testing targets to confirm whether the product works as per the
specific customer requirements or not. The UAT test plan should be ready while
setting up the development agreement with the customer. Once the test cases for UAT
are available, the work can start.
I) Unique Identifier
Users should be easily able to identify test cases. Hence, you must assign a test
case ID which a user can easily distinguish. You may try to adopt the following
pattern.
Distributing tests in such a manner makes it a lot easier for the users to test
more accurately. However, follow this approach only if the product is big with many
features. Otherwise, it may lead to extra efforts without yielding any real
benefits.
Otherwise, they should make it more descriptive by adding the details of the
failure.
X) Remarks
The UAT template must have a provision to add comments or any relevant details
related to the requirements.
This whitepaper will outline a well-defined 5-Phase UAT process that assists with
Planning, Coverage, Execution & Tracking, Reporting, and Reuse.
Planning
An important truth for any process where quality must be determined is the fact
that the earlier an issue is found, the less expensive it is. This includes UAT as
well. Traditionally, in waterfall methodologies, UAT doesn’t occur until later in
the cycle closer to the delivery date. Even today, this practice exists by default
within organizations. The risk with this approach is simple: wait until the end
game to discover that the requested functionality was misunderstood by development
teams and the costs for fixing before release becomes much higher, risk is
accentuated, and quality is often sacrificed.
UAT should occur early and often. Regardless of process, the planning phase for UAT
needs to be included in the master project plan and scheduled across the life of
the project. This needn’t be complex or difficult to achieve - nor does the actual
testing process need to take a long time. For example, XYZ Company practices Agile
and schedules UAT every two sprints. It lasts for 1/2 a day or less, and provides
feedback soon enough for the process to flex with changes. Company ABC takes a
different approach and has a business representative participate in the agile team
who verifies user acceptance each sprint within the agile process. UAT is scheduled
every three sprints and is conducted by a team of analysts as well as two external
customer representatives in order to assure the project remains on track.
Environments are another key factor in UAT testing: Where is this test going to
occur? Steer clear of utilizing development and QA environments – these change
frequently and any disruption in the development process could stress the schedule.
Ideally, a separate environment for UAT would work best although a shared 'demo'
environment can be used as well as an unused staging environment. Regardless of
where the testing will take place it is crucial to begin setting this up well in
advance of the UAT to be sure everything is working. Finally, this goes without
saying: Always, always, always have QA do a full smoke test on the UAT environment
at least a day prior to the customer's access. This will give time to correct any
inconsistencies that may be found.
Planning Checklist:
Determine the point person for directing UAT testing. This can be someone from the
business, a technical project manager, a QA lead, etc
Form a UAT team. A mix that works well is a combination of all three from the above
(or more).
Collect the requirements that will be verified. If using an Agile process, the
Acceptance Criteria usually provide the necessary information.
Assure UAT testing falls at an earlier point on the project schedule. This does not
negate a final UAT which is often required by the customer.
Identify, build, and verify the environment well before the testing date.
Planning Checklist
Planning
Coverage
User Acceptance Testing is often confused with a ‘regression by client.' This often
occurs because expectations haven't been clearly understood or communicated
throughout those involved in the process (including the customer). UAT is defined
as the process whereby the customer verifies requirements that have been requested
exist and provide the functionality as outlined in the user story or requirements
document. Hence the term 'Acceptance.'
Given the above, it is important to clearly define the requirements that will be
reviewed by the customer. If using Agile, either the stories or the acceptance
criteria will provide the necessary information. In other processes, any document
or system which identifies and tracks requirements against development will provide
the required coverage specifics.
It is also helpful to have a set of test cases to track against during testing.
These don't need to be full blown, step-by-step instructions in most cases but they
are useful for encapsulating the requirements and directing folks through the
application. Also, using a test management system to track the execution and
progression of testing can be a valuable exercise both during the testing and as a
historical document to refer to, should questions arise in the future around what
exactly was looked at.
Coverage Checklist:
Set clear expectations around desired outcome for UAT testing.
Capture requirement changes and fit into project as warranted while keeping an eye
on project slippage and delivery schedules.
Write test cases which encapsulate the requirements that need to be reviewed. These
need not be complicated or indepth for most UAT testing however, be sure to provide
enough information so the testers, whether they be internal or external customers,
can navigate and understand what is being asked.
Coverage Checklist
Coverage
The team for UAT testing should include at minimum a business representative
(Product Owner etc), Technical Project Manager, and a Quality Assurance
representative (preferably the lead QA engineer for the project). It is also
recommended to have a developer and network admin on-call for unintended
occurrences (and anyone else you identify as important). You will know the best
make-up for your team given your process, product, etc.
As mentioned earlier, it is helpful to have basic test cases written and available
in a test management system that tracks execution. They should be organized under
UAT and kept separate from on-going project work. The customer can either interact
with the test management system or the execution can be tracked by a member of the
UAT team. Regardless, a historical record of test case executions should be
recorded and saved. This does not negate the importance of allowing customers to
interact with the system in an organic natural way (black box testing) but rather,
provides a framework within which to establish the guidelines for the UAT testing
to assure all requirements have been reviewed. Always remember: Clear expectations
are key for a successful UAT.
UAT can be performed from anywhere. Customers can visit and use local machines or
their laptops, the application can be made available over the internet, VPN
privileges can be given, etc. The best place for UAT is determined by multiple
factors and must be addressed by the project team. Regardless of test location, all
of the recommendations in this paper can be utilized. Finally, assure you have the
full support of your networking team prior to any UAT execution – especially if you
are performing it remotely.
Assure that you are prepared for the customer to view the application. Bugs are OK
but be sure the client is aware.
Define a dedicated SQA role and either have them present at the event or
participating remotely. They will be invaluable for clearing up questions regarding
issues, functionality, etc.
Assemble a technology team who can be on-call to support the event. A development
and network engineer are a good start.
Track test case executions or the areas being looked at and record all results.
Coverage Checklist
The UAT report can include as little or as much information that it needs in order
to fulfill expectations. A report for an external client may consist of more
information than that of one used internally because internal systems hold much of
the historical information. However, regardless of client orientation, it is
advisable to always document the results.
Test cases
Testing results
Observations
Requested changes
Requested additions
Reporting
Reuse
Most projects will require more than one UAT, especially if the ‘test early and
often’ approach is used. Remember, the earlier an issue is found in any project,
the less expensive it will be to fix. This holds especially true when UAT issues
are discovered late in the process close to the delivery date. When subsequent UAT
tests are performed, it is best to test previously reviewed functionality as well.
To maintain consistency, it is advised to utilize the same test cases that were
executed in previous UAT iterations. Not only will this reverify customer
acceptance, but it also builds trust by showing that a consistent quality system
and process is in place. It is advised that a system which allows a new iteration
to be created and run is used so results are stored separately from previous
sessions and customers see unexecuted test cases.
Reuse Checklist:
Use a system which will allow new test iterations to be created with previously
executed test cases
Build confidence and trust with customers by presenting an organized test process
and system
Reuse
Using systems and a simple process will add to the ease of UAT execution. Storing
and executing predetermined test cases from a test management system not only lends
a core stability to the process, it also demonstrates a high degree of organization
and consistency around the quality process; something the customer will notice and
appreciate. After all, UAT is all about the customer. Reframe UAT from a ‘must do’
process to an opportunity to further engage the customer in a positive, trust-
building relationship. As outlined in the previous pages, UAT is not complicated
and doesn’t need to take a lot of time to prepare for. Start early, form the
correct team, outline and schedule tasks, set clear expectations around coverage,
utilize test management and process technology to provide a solid core for the
project, track results, and provide a full, detailed report. All that remains is
engaging the customer in high integrity communication throughout the process and
using the experience to build a stronger, more trusting relationship.