Test Automation can’t be successful unless right environments are available and managed regularly. Our study indicates that 20% of total bugs found in a release are categorized in environment issues which in turn is impacting test cycle and increasing the project cost. Test automation environment management requires to upkeep for correct hardware, right OS with patches and dependent/related software with correct versions. Test environment management is categorized in two areas based on type of activity that is being performed. There are various activities to be performed in each category.
- Development machines for developing automation scripts. Automation scripts are developed and maintained by automation engineer
- Execution environment for automation script execution. The automation test suite for execution is identified and deployed in execution environment by automation testers.
Development Machines: These machines are used for building and maintaining automation scripts by individual automation engineer. Following environment activities are being done on these machines.
- Initial hardware provisioning and upgrades in the future to meet automation requirement
- Operating system and regular patch upgrades.
- Tool/framework IDE installation and upgrades to newer version as required
- Automation Software installation and upgrades to newer version as required
In case of open-source software, development machines are used for developing and maintaining test automation framework as well. Depending on the automation tool/framework, relevant software needs to be deployed. For open-source framework with Python+Selenium, latest Python version and selenium drivers need to be deployed along with IDE for building the scripts. In case of commercial tool, relevant tool IDE to be installed (Tosca commander, UFT IDE, Worksoft Certify etc.,). The software versions require to be updated frequently. The required hardware configuration and OS version are identified initially to support building and maintaining the scripts. Any upgradation to new version requires to re-look into hardware configuration as well. OS is required to be updated for patches and to latest version to support tool/framework software. Development machines require managing hardware, OS and dependent/related software and automation engineer is expected to have right privileges to manage his/her environment.
Execution Environment: Execution environment is used for executing the automation scripts. This environment is like production system for testing team. Test team will have read-only access to ensure that environment is not compromised by installing additional software. Execution environment is normally owned by infra/environment team in the organization. Following environment activities are being done on execution machines.
- Initial hardware provisioning and upgrades in the future to meet new requirements
- Operating system and patch upgrades
- Run time software installation (No IDE to be installed). example in case of .Net, only .Net runtime to be installed.
- Optional Server and database installation and regular back up in case of commercial tools.
The hardware capacity and configuration are identified based on no of scripts to be executed per day. The scripts can be executed in parallel and/or distributed fashion for achieving cycle time reduction. For software, in case of open source using Python+Selenium, a Selenium Grid is required to be set up and latest selenium drivers are updated regularly. License management is not required but right plugins are required for integrating with software configuration management, CI/CD pipeline, test management, test data management platform, third party cloud device providers etc. Commercial tools would require dependencies but bundled with its executable. For example, Tosca would require .Net runtime environment which is installed before deploying software. Tosca server, database and DEX is set up and maintained regularly as part of environment management. Optionally a license server also to be deployed and managed for commercial tools.
Test automation environments will not be able to meet enterprise needs unless integrated with enterprise platforms such as CI/CD, Software configuration management, Test Management, Test Data Management platforms. Right plugins and adapters to be installed on Development and execution environments for integrating with enterprise platforms.