Ready for User Acceptance Testing?



First of the National solution (the Network Model) is being made ready for deployment. With design stage almost complete, we are moving into configuration solution testing stage. Once this is done, we will initiate the User Acceptance Testing (UAT). The UAT is final testing that will be performed when functional, system and regression testing is completed on the Network Model solution. The main purpose of UAT is to validate the software against the business requirements. This validation will be carried out by end users who are familiar with the business requirements.

As user acceptance testing is the last testing carried out before the software goes live, this will be the last chance for the staff to test the software and measure if it is fit for purpose.

Why plan to do UAT?


The reason why UAT is essential is because 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 or test the software from a technical perspective. This means that whilst they recognise software solution as being complete (from functional specifications delivery), there could be some business requirements and processes which are not covered by the solution, either because the end users requirements were missed or misinterpreted. UAT plays an important role in validating if all the business requirements are fulfilled or not before releasing software for mass use. Use of live data and real use cases make UAT testing an important part of the release cycle.


Many businesses who suffered substantial 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 its release.


What is my strategy for UAT deployment?


The first step is the setup of the UAT environment and planning the deployment.  Carrying out UAT on same environment used by functional test team will lead to real world use cases being overlooked. Also crucial testing activities like performance testing can’t be carried out on test environment with incomplete data set or test data. Hence separate production like environment is being setup for the UAT.


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


The other crucial element is the UAT planning itself. 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. 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. Hence I have had dedicated resource in the project team focus on the effective planning, review of the test scripts and creating the UAT environment.
During the UAT stage, it is also important to consider and control new business requirements as incidents or defects. Often ambiguities in requirements get caught in UAT stage, leading to project scope creep.


To make the most of available time and resource, I have led the project team to select UAT staff from various central, regional and supplier teams. We are conscious that even if these staff are well familiar with business needs, they will need appropriate training to ensure effective UAT are done.


Additional challenges will persists in terms of communication between remote development, testing and UAT team, hence the plan is to have these UAT done in purpose built ‘Model Office’, where the software developers, programmers, users, trainers etc, all are co-located. This approach helps overcome communication barriers and expedites testing process.


Overall, proper planning, communication, execution and motivated UAT team are the keys to successful user acceptance testing.