How do you “Set Up Test Environments”? - Automation in Testing Curriculum

Hi all,

We’re continuing our work to create a curriculum focused on automation that is created with feedback from the testing community. We’ve already run a series of activities that have helped us identify a list of key tasks that helped us create this Job Profile.

We’re now in the process of going through each task and analysing them to identify the core steps we take to achieve them. For this post we’re considering the task:

Set up Test Environments

We’ve run a series of community activities including social questions and our curriculum review sessions to identify the steps we need to take to successfully achieve this task and have listed them below:

  • Identify/document environment(s) requirements such as
    • Version
    • Operating System(s)
    • Physical / VM / Cloud
    • Configuration
    • Services
    • 3rd Party Integration
    • Deployment of code
      • Clean releases
      • How to be confident of a clean env. E.g. version numbers of components
    • Hosting
    • Tests to be ran on it
    • Type of environment
      • Internal
      • Automated
        • CI
        • Nightly build
      • User Acceptance
      • Load
      • Penetration
    • Customer/user scenarios and what will make the most impact to be automated
    • Maintenance
  • Identify any trade offs
    • Slower hardware due to costs
    • Different specs to production
  • Determine if the process is a one-off or needs to be a repeatable process.
  • Get buy in from stakeholders and the team
  • Agree a budget for the project
    • Initial setup
    • Ongoing costs
  • Consider shared environment/isolated environment for each team
  • Consider the different states the test environment needs to be configured for
  • Check if the third party connections can have a sandbox environment for the test environment
  • Identify sub services that we need while setting up the test environment: Mock Payment services or any other third party services
  • Create a development version similar to the production version
  • Test the test environment
    • Smoke test
    • Very basic e2e test
  • Document, and execute maintenance protocol for environment(s)
  • Create/document (the set up of) the test environment

This is v0.1 of these steps, curated from social questions and the live session. We’d now love more input.

What we would like to know is what do you think of these steps? Have we missed anything? Is there anything in this list that doesn’t make sense?

What are your thoughts on these steps? How do you go about setting up test environments?