How do you conduct UAT if test environment is not available?
Wai Mun KooPMO Director| Intergraph PP&MSingapore, Singapore
We know that UAT needs to be conducted in test environment since the production environment should not be touched to avoid inerruption to daily operation. In situations were we do not have a test environment - either too costly to set up or just impossible to set up - how would you conduct your UAT? What approach would you take to meet the UAT's objectives and yet not affecting the production environment? Saving Changes...
Imran ManirSenior Project ManagerBurton On Trent, United Kingdom
Provide UAT members with restricted access to the development environment, where the change has been built/tested by the dev/test guys. This is on the basis that this will contain the risk within the project and will not impact production systems. It is also more manageable as you can more closely monitor the UAT. The development environment does not always mirror live, however, it's less riskier to consider this.
Then, plan a phased pilot/trial releasing functionality into the production environment incrementally, limiting it to restricted users and functions only.
Make the risks of the above absolutely clear to those members of management who refuse to invest in a test environment - and ensure you have Project Board and business approval for this approach.
Assuming that we have a development environment setup, and carrying out the UAT is mandatory, there is a technical possibility to go forward with a fair UAT in the development environment.
What shoudl be done is,
1. Take a full system (App & data and whatever is affected by the dev.change) backup of the development environment.
2. Refresh the Development environment (to as close as the requirements of UAT).
3. Migrate the changes on to the development environment
4. Redefine all the user accesses for the UAT tester.
5. Take another full system backup [incase you need to repeat the UAT again, it is easier to restore this backup, than steps 2 and 4. Just carryout 3 again]. ---This point is just a suggestion---
6. Begin the UAT
7. Once the UAT is done or furthe bug fixing activities need to carried out in development environment, restore the initial backup (1.) and continue with the bug fixing.
Obviously, until the UAT is going on the development environment is not available. So that is the trade-off!! Saving Changes...
Good alternatives approaches. This will work in most situations however, when you have any integration with other systems or transaction based systems and reporting this will be a challenge. Depending on whether you are considering a straight cutover from one system to another you could test integration over a long weekend while you attempt to bring systems into production. If they don't work you regroup, document and consider risks and issues to move forward. Saving Changes...
I can suggest using the development environment for UAT testing. However, you have to be very careful about the data. Most data in dev tends to be unclean.
You need to refresh dev carefully before beginning the UAT. Saving Changes...
Wai Mun KooPMO Director| Intergraph PP&MSingapore, Singapore
Thanks for all your suggestions.
Naomi has a valid point that it could be challenging if integration with other systems is required.
As for using development environment, there are other concerns. First, most development environments are quite different from production environments. Second, some development environments are not accessible to the users making it almost impossible to conduct UAT. Perhaps, virtual environment would be a good alternative for conducting UAT? Saving Changes...
Naeem AhsanFreelance Consultant| FreelanceHyderabad, Telangana, India
What we had done in a similar case was we created a copy of the production database on the same server. The programmers and network administrator made sure that the UAT accounts were different and they had access only to the UAT database.
This way the environment was exact same as the production but did not affect production.
Saved us the time and cost of setting up another environment for UAT. Saving Changes...
Wai Mun KooPMO Director| Intergraph PP&MSingapore, Singapore
Naeem,
That could be a solution as well. However, we have to make sure that the testing done in this cloned environment will not bring down the production environment in the situation of a fatal error in the test. Saving Changes...
Massimo D'UlisseProject Manager Professional (PMI)| Brightstar 20:20 Mobile UKManchester, United Kingdom
The need for a UAT environment should be part of the infrastructure plan, thus it should be clear at the beginning of the project if there will be a dedicated UAT environment or not.
If the project has insufficient funding for setting up a dedicated UAT environment, then either the business case for the project should be reviewed (the final cost might higher than the benefit) or the economic value of the risk should be assessed and added to the project cost, and approved by all major stakeholders.
And I bet my 2 cents that the IT Operations manager would never accept into production a new software/release not properly tested if he is accountable for any problem deriving by approving the decision not to setup a dedicated UAT environment.
Saving Changes...
Renee GalligherIT Project Manager 3, PMP, ICP| Idaho State Board of EducationMeridian, Id, United States
Very good Naeem - that's exactly what I was going to recommend - cloning the test environment but in a much smaller scale. With that said, you will still need to duplicate transaction processing similar to the size of transactions/processing that will take place in the live environment. Saving Changes...
It all depends on the confguration of the server environment and the UAT requirements. I would not recommend anyone touching my production, without a formal and detailed Configuraiton and Change Mangement Process.
Cloning the Production Environment on the same server may have some implications:
1. It should be noted that the Production Environment, if hugh in capacity and allocation of resources, should have sufficient H/W resources to cater another setup with the same configuration on the same server.
(In my current 15 TB production setup, we can not afford a clone of the production, just like that!!!)
2. If the production and clone are able to stay on the same server sharing the same H/W resources, it should be noted that the resources now being shared, could have performance implications on the Production environment.
Another possibility is if we already have a SAN or NAS storage available, we may setup the application environment on (possibly a blade) server with all its storage needs on a SAN or NAS storage.
That way, with bare minimum allocation of shared resources on any (blade) server [which is not production], we can still setup a UAT environment.
The only catch is that the server should have ample memory resources for the UAT setup and the underlying Operating System should be same as that of the production. Saving Changes...