QA refers to processes and procedures which systematically monitor different aspects of a process to identify correct and ensure that the quality standards are being met. It is the process of eliminating defects to deliver a bug free application or product. Various levels of testing will be performed but QA test is very important as it will be performed when all the related tasks are completed and the development environment will be frozen to prevent other changes from occurring. QA test environment has two major objectives, where the first objective is to determine whether it is established in such a way that enough testing is possible to disclose the defects and second objective is to preserve the integrity of the test performed. Companies depending on the strategies and policies use different QA environments.
QA environments vary from company to company but most of the commonly used QA environments are:
- Dev environment: Most of the functional and non-functional testing will be done in this environment. In this developers deploy the code in dev environment after they finish the unit testing in their respective local environment. Once the Dev build is deployed, testers will be responsible for executing the test cases to verify the expected results and actual results. If expected and actual does not match, then they should post bugs if any through any of the bug tracking tools like TFS etc.,
- UAT (User Acceptance Test) environment: Once after the successful completion of dev testing, same build will be deployed into UAT. Product owner will do the acceptance testing to check whether all the specified requirements are met or not.
- Production environment: This is the live environment where the end users will be using the application or product. If the product owner is satisfied with the deployed changes, production build will be deployed as per the release cycle. Smoke test will be after the build is deployed and accessibility checks will be done periodically.
Depending on the criticality and type of the application, there will be one more environment called staging environment in which real production data will be tested. Finally, goal of any QA environment is to provide defect-free product or application.