test-environment-management

Test Environment Management

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "test-environment-management" with this command: npx skills add proffesor-for-testing/agentic-qe/proffesor-for-testing-agentic-qe-test-environment-management

Test Environment Management

<default_to_action> When managing test environments:

  • DEFINE environment types (local, CI, staging, prod)

  • CONTAINERIZE with Docker for consistency

  • ENSURE parity with production (same versions, configs)

  • MOCK external services (service virtualization)

  • OPTIMIZE costs (auto-shutdown, spot instances)

Quick Environment Checklist:

  • Same OS/versions as production

  • Same database type and version

  • Same configuration structure

  • Containers for reproducibility

  • Auto-shutdown after hours

Critical Success Factors:

  • "Works on my machine" = environment inconsistency

  • Infrastructure as Code = repeatable environments

  • Service virtualization = test without external dependencies </default_to_action>

Quick Reference Card

When to Use

  • Setting up test infrastructure

  • Debugging environment-specific failures

  • Reducing test infrastructure costs

  • Ensuring dev/prod parity

Environment Types

Type Purpose Lifetime

Local Fast feedback Developer session

CI Automated tests Per build (ephemeral)

Staging Pre-prod validation Persistent

Production Canary/synthetic Continuous

Dev/Prod Parity Checklist

Item Must Match

OS Same version

Database Same type + version

Dependencies Same versions

Config Same structure

Env vars Same names

Docker for Test Environments

docker-compose.test.yml

version: '3.8'

services: app: build: . ports: - "3000:3000" environment: NODE_ENV: test DATABASE_URL: postgres://postgres:password@db:5432/test depends_on: - db - redis

db: image: postgres:15 environment: POSTGRES_DB: test POSTGRES_PASSWORD: password

redis: image: redis:7

Run tests in container:

docker-compose -f docker-compose.test.yml up -d docker-compose -f docker-compose.test.yml exec app npm test docker-compose -f docker-compose.test.yml down

Infrastructure as Code

test-environment.tf

resource "aws_instance" "test_server" { ami = "ami-0c55b159cbfafe1f0" instance_type = "t3.medium"

tags = { Name = "test-environment" Environment = "test" AutoShutdown = "20:00" # Cost optimization } }

resource "aws_rds_instance" "test_db" { engine = "postgres" engine_version = "15" instance_class = "db.t3.micro" backup_retention_period = 0 # No backups needed for test skip_final_snapshot = true }

Service Virtualization

// Mock external services with WireMock import { WireMock } from 'wiremock-captain';

const wiremock = new WireMock('http://localhost:8080');

// Mock payment gateway await wiremock.register({ request: { method: 'POST', url: '/charge' }, response: { status: 200, jsonBody: { transactionId: '12345', status: 'approved' } } });

// Tests use mock instead of real gateway

Cost Optimization

Auto-shutdown test environments after hours

0 20 * * * aws ec2 stop-instances --instance-ids $(aws ec2 describe-instances
--filters "Name=tag:Environment,Values=test"
--query "Reservations[].Instances[].InstanceId" --output text)

Start before work hours

0 7 * * 1-5 aws ec2 start-instances --instance-ids $(aws ec2 describe-instances
--filters "Name=tag:Environment,Values=test"
--query "Reservations[].Instances[].InstanceId" --output text)

Use spot instances (70% savings):

resource "aws_instance" "test_runner" { instance_type = "c5.2xlarge" instance_market_options { market_type = "spot" spot_options { max_price = "0.10" } } }

Agent-Driven Environment Management

// Provision test environment await Task("Environment Provisioning", { type: 'integration-testing', services: ['app', 'db', 'redis', 'mocks'], parity: 'production', lifetime: '2h' }, "qe-test-executor");

// Chaos testing in isolated environment await Task("Chaos Test Environment", { baseline: 'staging', isolate: true, injectFaults: ['network-delay', 'pod-failure'] }, "qe-chaos-engineer");

Agent Coordination Hints

Memory Namespace

aqe/environment-management/ ├── configs/* - Environment configurations ├── parity-checks/* - Dev/prod parity results ├── cost-reports/* - Infrastructure costs └── service-mocks/* - Service virtualization configs

Fleet Coordination

const envFleet = await FleetManager.coordinate({ strategy: 'environment-management', agents: [ 'qe-test-executor', // Provision environments 'qe-performance-tester', // Environment performance 'qe-chaos-engineer' // Resilience testing ], topology: 'sequential' });

Related Skills

  • test-data-management - Data for environments

  • continuous-testing-shift-left - CI/CD environments

  • chaos-engineering-resilience - Environment resilience

Remember

Environment inconsistency = flaky tests. "Works on my machine" problems come from: different OS/versions, missing dependencies, configuration differences, data differences.

Infrastructure as Code ensures repeatability. Version control your environment configurations. Spin up identical environments on demand.

With Agents: Agents automatically provision test environments matching production, ensure parity, mock external services, and optimize costs with auto-scaling and auto-shutdown.

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

Automation

api-testing-patterns

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

compatibility-testing

No summary provided by upstream source.

Repository SourceNeeds Review
Automation

regression-testing

No summary provided by upstream source.

Repository SourceNeeds Review