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​
- Database Connection Issues
# Check database status
docker ps | grep postgres
docker logs postgres
# Reset database connection
docker-compose restart db
- Environment Sync Issues
# Sync environment
git pull origin main
pnpm install
docker-compose up -d
- 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​
- Regular health checks
- Automated setup scripts
- Version control for configs
- Regular backups
- Access control enforcement
Data Management​
- Sanitized test data
- Regular refresh cycles
- Backup before changes
- Version controlled scripts
- Data cleanup procedures
Security​
- Access control
- Regular security scans
- Secure configurations
- Audit logging
- Compliance checks