Вы находитесь на странице: 1из 5

What is User Acceptance Testing?

User Acceptance testing is the software testing process where system tested for acceptability & validates the end to end
business flow. Such type of testing executed by client in separate environment (similar to production environment) &
confirms whether system meets the requirements as per requirement specification or not.
UAT is performed after System Testing is done and all or most of the major defects have been fixed. This testing is to be
conducted in the final stage of Software Development Life Cycle (SDLC) prior to system being delivered to a live environment.
UAT users or end users are concentrating on end to end scenarios & typically involves running a suite of tests on the completed
system.
The Acceptance testing is black box tests, means UAT users doesnt aware of internal structure of the code, they just specify
the input to the system & check whether systems respond with correct result.

Levels of testing User Acceptance Testing


User Acceptance testing also known as Customer Acceptance testing (CAT), if the system is being built or developed by an
external supplier. The CAT or UAT are the final confirmation from the client before the system is ready for production. The
business customers are the primary owners of these UAT tests. These tests are created by business customers and articulated
in business domain languages. So ideally it is collaboration between business customers, business analysts, testers and
developers. It consists of test suites which involve multiple test cases & each test case contains input data (if required) as well
as the expected output. The result of test case is either a pass or fail.
Acceptance Testing Definition:
Acceptance Testing is a level of the software testing process where a system is tested for acceptability.
Prerequisites of User Acceptance Testing:
Prior to start the UAT following checkpoints to be considered:

The Business Requirements should be available.


The development of software application should be completed & different levels of testing like Unit Testing,
Integration Testing & System Testing is completed.
All High Severity, High Priority defects should be verified. No any Showstoppers defects in the system.
Check if all reported defects should be verified prior to UAT starts.
Check if Traceability matrix for all testing should be completed.
Before UAT starts error like cosmetic error are acceptable but should be reported.
After fixing all the defects regression Testing should be carried out to check fixing of defect not breaking the other
working area.
The separate UAT environment similar to production should be ready to start UAT.
The Sign off should be given by System testing team which says that Software application ready for UAT execution.

TYPES OF ACCEPTANCE TEST


Why Alpha and Beta Testing?
The software application may use different users on different way & it impossible to developer or tester to predict what all
possible scenarios or test data end user will use & how customer actually use the software application. So most of software
venders are use the term like Alpha testing and Beta Testing which help to uncover the errors that may occurs in the actual test
environment. In this testing method the software application release over limited end users rather than testing professionals to
get feedback from them.
A] Alpha Testing
Alpha testing is conducted by Customer at the developers site, it is performed by potential users like developer, end users or
organization users before it is released to external customers & report the defects found while Alpha testing.
This software product testing is not final version of software application, after fixing all reported bug (after bug triage) the new
version of software application will release. Sometimes the Alpha Testing is carried out by client or an outsider with the
attendance of developer and tester. The version of the release on which Alpha testing is perform is called Alpha Release.
B] Beta Testing
Most if times we have the sense of hearing term Beta release/version, so it is linked to Beta Testing.
Basically the beta testing is to be carried out without any help of developers at the end users site by the end users &, so it is
performed under uncontrolled environment. Beta testing is also known as Field testing. This is used to get feedback from the
market.
This testing is conducted by limited users & all issues found during this testing are reported on continuous basis which helps to
improve the system. Developers are taking actions on all issues reported in beta testing after bug triage & then the software
application is ready for the final release. The version release after beta testing is called Beta Release.
This is last stage of the testing where product is sent outside the company or for trial offer to download.
What to Test in User Acceptance Testing?

Based on the Requirements definition stage use cases the Test cases are created.
Also the Test cases are created considering the real world scenarios for the application.
The actual testing is to be carried out in environments that copy of the production environment. So in the type of
testing is concentrating on the exact real world use of application.
Test cases are designed such that all area of application is covered during testing to ensure that an effective User
Acceptance Testing.

What are the key deliverable of User Acceptance Testing?

The completion of User Acceptance Testing is the significant milestone for traditional testing method. The following
key deliverable of User Acceptance Testing phase:

Test Plan: This outlines the Testing Strategy


UAT Test cases: The Test cases help the team to effectively test the application in UAT environment.
Test Results and Error Reports: This is a log of all the test cases executed and the actual results.
User Acceptance Sign-off: This is the system, documentation, and training materials have passed all tests within
acceptable margins.
Installation Instructions: This is document which helps to install the system in production environment.
Documentation Materials: Tested and updated user documentation and training materials are finalized during user
acceptance testing

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 its fit for the purpose.
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 doesnt 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 cant 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 cant 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 wasnt 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 cant 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. Its very difficult to deal with such situations. Building positive relationship with business team
would definitely help to avoid blame game.

Вам также может понравиться