Skip to main content

Test Environment Setup Guide

Overview​

This guide outlines the process for setting up and maintaining test environments at GravityVC.

Environment Types​

Development Environment​

  • Purpose: Development and unit testing
  • Access: Development team
  • Update frequency: Continuous
  • Data refresh: Daily

QA Environment​

  • Purpose: Feature testing and integration testing
  • Access: QA team and developers
  • Update frequency: Daily/Weekly
  • Data refresh: Weekly

Staging Environment​

  • Purpose: UAT and performance testing
  • Access: QA team and stakeholders
  • Update frequency: Sprint-based
  • Data refresh: Sprint-based

Production-Like Environment​

  • Purpose: Performance testing and security testing
  • Access: Limited to QA leads
  • Update frequency: Monthly
  • Data refresh: Monthly

Setup Process​

1. Infrastructure Setup​

Hardware Requirements​

{
"server": {
"cpu": "4 cores",
"memory": "16GB RAM",
"storage": "500GB SSD"
},
"client": {
"browsers": ["Chrome", "Firefox", "Safari", "Edge"],
"devices": ["Desktop", "Mobile", "Tablet"]
}
}

Network Configuration​

{
"bandwidth": "1Gbps",
"latency": "<50ms",
"firewall": {
"inbound": ["HTTP/HTTPS", "SSH"],
"outbound": ["All"]
}
}

2. Software Installation​

Required Software​

# Node.js and pnpm
node -v # Should be v22.12.0
pnpm -v # Should be v10.0.0

# Database
docker pull postgres:latest

# Testing Tools
pnpm add -g jest cypress playwright

# Monitoring Tools
pnpm add -g prometheus grafana

Configuration Files​

# docker-compose.yml
version: '3.8'
services:
db:
image: postgres:latest
environment:
POSTGRES_USER: test_user
POSTGRES_PASSWORD: test_password
POSTGRES_DB: test_db
ports:
- "5432:5432"

redis:
image: redis:latest
ports:
- "6379:6379"

3. Data Setup​

Test Data Management​

-- Create test schema
CREATE SCHEMA test;

-- Create test users
CREATE TABLE test.users (
id SERIAL PRIMARY KEY,
name VARCHAR(100),
email VARCHAR(100),
role VARCHAR(50)
);

-- Insert test data
INSERT INTO test.users (name, email, role)
VALUES
('Test User', '[email protected]', 'user'),
('Admin User', '[email protected]', 'admin');

Data Refresh Scripts​

#!/bin/bash
# refresh_test_data.sh

# Backup current data
pg_dump -U test_user -d test_db -f backup.sql

# Clear existing data
psql -U test_user -d test_db -c "TRUNCATE test.users CASCADE;"

# Load fresh data
psql -U test_user -d test_db -f test_data.sql

Environment Management​

Access Control​

{
"roles": {
"qa_lead": ["full_access"],
"qa_engineer": ["read_write"],
"developer": ["read_only"],
"stakeholder": ["read_only"]
},
"permissions": {
"full_access": ["create", "read", "update", "delete"],
"read_write": ["read", "update"],
"read_only": ["read"]
}
}

Monitoring Setup​

# prometheus.yml
global:
scrape_interval: 15s

scrape_configs:
- job_name: 'test_env'
static_configs:
- targets: ['localhost:9090']

Backup Procedures​

#!/bin/bash
# backup_env.sh

# Backup database
pg_dump -U test_user -d test_db -f backup/db_$(date +%Y%m%d).sql

# Backup configuration
cp config/* backup/config_$(date +%Y%m%d)/

# Backup logs
tar -czf backup/logs_$(date +%Y%m%d).tar.gz logs/

Maintenance Procedures​

Daily Checks​

// health-check.ts
async function performHealthCheck() {
const checks = [
checkDatabase(),
checkAPIs(),
checkStorage(),
checkServices()
];

const results = await Promise.all(checks);
return generateHealthReport(results);
}

Weekly Maintenance​

# Weekly maintenance tasks
pnpm update # Update dependencies
docker system prune # Clean unused containers
vacuum analyze # Database maintenance
rotate_logs # Log rotation

Monthly Tasks​

# Monthly maintenance
security_scan # Security vulnerability scan
performance_test # Performance baseline check
backup_cleanup # Remove old backups
update_documentation # Update environment docs

Troubleshooting Guide​

Common Issues​

  1. Database Connection Issues
# Check database status
docker ps | grep postgres
docker logs postgres

# Reset database connection
docker-compose restart db
  1. Environment Sync Issues
# Sync environment
git pull origin main
pnpm install
docker-compose up -d
  1. Performance Issues
# Check system resources
top
df -h
free -m

# Clear caches
redis-cli flushall
docker system prune

Documentation Requirements​

Environment Documentation​

  • Setup instructions
  • Configuration details
  • Access procedures
  • Maintenance schedules
  • Backup procedures

Change Log​

  • Configuration changes
  • Software updates
  • Data refresh history
  • Issue resolution

Best Practices​

Environment Management​

  1. Regular health checks
  2. Automated setup scripts
  3. Version control for configs
  4. Regular backups
  5. Access control enforcement

Data Management​

  1. Sanitized test data
  2. Regular refresh cycles
  3. Backup before changes
  4. Version controlled scripts
  5. Data cleanup procedures

Security​

  1. Access control
  2. Regular security scans
  3. Secure configurations
  4. Audit logging
  5. Compliance checks