Its obvious question, how many Testing environment needed for testing of any application. Application can be any Mobile-App, Website, Portal, Backend-application and of any size. Now-a-days, Agile emphasizes rapid development and short duration of delivery; this makes even Testing more compulsory task. But on other side, QA Team have very less duration to verify all functional changes along with regression testing. To make sure, release quality should be at par, QA Team should need at least couple of environments to verify all changes. We can distinguish them as Lower or Higher environment, QA or Stage environment, Primary or Secondary environment.
Below points should be followed as a best practice for QA environments:-
- Both environments owned by QA team. To maintain infrastructure upgrade of these environment, Devops team should be there but in alignment with QA.
- These environment should have same configurations as Production environment or at least Higher environment should be identical to Production environment.
- No Manual intervention is permissible. And if any code-tweak or configuration changes needed for any testing, should be announced within Team and same revert by ASAP as specific testing over.
- Build deployment should be through any CI/CD pipeline. Manual deployment steps should be minimal and same should be clearly mentioned in Build Release documents.
- QA (Lower) environment should be used for Build testing, Sanity testing, Release-changes testing including negative testing and last but not the least Regression testing. Once QA Team completes its testing on this environment, build should be promote to Higher or Stage environment.
- Higher or Stage environment should be identical to Prod environment in all manners. And if any configuration/setup difference, QA team should be aware with that, so they can manage those changes during testing.
- Stage environment should be used for Functional and Regression testing. There shouldn’t be perform any negative testing. No manual code/configuration changes allowed. If any such requirement, all team should be aware with those changes and same should be revert once testing done.
- Stage environment should be preserve in-tact till Production deployment of release and post deployment testing completed successfully. This ensures that QA team can verify their testing if any thing fails to start on production during deployment or after deployment.us to verify release changes if any thing start to fail on production. If possible, QA environment also need to preserve till prod deployment.