AT-E3-002: SPACE Framework Implementation Validation
Test Information
Test ID: AT-E3-002 Category: DevEx Priority: P0 Related Issue: #79 Epic: Epic 3 - Product Discovery & UX Milestone: M3.1
Description
Validates that the SPACE framework (Satisfaction, Performance, Activity, Communication, Efficiency) metrics collection infrastructure is fully operational with automated data collection, survey integration, API access, and privacy compliance.
Prerequisites
- Kubernetes cluster with kubectl access
- SPACE metrics service deployed to
fawkes-localnamespace - PostgreSQL database available
- Prometheus operator installed
- NPS service deployed (for satisfaction metrics)
Acceptance Criteria
- [ ] All 5 SPACE dimensions collecting data
- [ ] Automated data collection working
- [ ] Survey integration functional (DevEx Survey Automation deployed)
- [ ] API for metrics access available
- [ ] Privacy-compliant (aggregation threshold, no individual data exposed)
- [ ] Cognitive load assessment tool working (NASA-TLX)
- [ ] Friction logging operational
Note: Dashboard functionality is validated separately in AT-E3-003.
Test Procedure
1. Service Deployment Validation
# Run validation script
./scripts/validate-at-e3-002.sh fawkes-local
# Or manually verify
kubectl get deployment space-metrics -n fawkes-local
kubectl get pods -n fawkes-local -l app=space-metrics
kubectl get service space-metrics -n fawkes-local
Expected Result:
- Deployment exists with 2 ready replicas
- Pods are in Running state
- Service exists and is accessible
2. API Endpoint Validation
# Port forward to service
kubectl port-forward -n fawkes-local svc/space-metrics 8000:8000
# Test health endpoint
curl http://localhost:8000/health
# Test SPACE metrics endpoint
curl http://localhost:8000/api/v1/metrics/space
Expected Result:
- Health endpoint returns
{"status": "healthy"} - SPACE metrics endpoint returns data for all 5 dimensions
3. Five SPACE Dimensions Validation
Test each dimension endpoint:
# Satisfaction
curl http://localhost:8000/api/v1/metrics/space/satisfaction
# Performance
curl http://localhost:8000/api/v1/metrics/space/performance
# Activity
curl http://localhost:8000/api/v1/metrics/space/activity
# Communication
curl http://localhost:8000/api/v1/metrics/space/communication
# Efficiency
curl http://localhost:8000/api/v1/metrics/space/efficiency
Expected Result: Each endpoint returns relevant metrics for that dimension
4. Survey Integration Validation
# Submit pulse survey
curl -X POST http://localhost:8000/api/v1/surveys/pulse/submit \
-H "Content-Type: application/json" \
-d '{
"valuable_work_percentage": 70.0,
"flow_state_days": 3.0,
"cognitive_load": 3.0
}'
Expected Result: Survey submission succeeds with success confirmation
5. Friction Logging Validation
# Log friction incident
curl -X POST http://localhost:8000/api/v1/friction/log \
-H "Content-Type: application/json" \
-d '{
"title": "Test friction",
"description": "Testing friction logging",
"severity": "low"
}'
Expected Result: Friction incident logged successfully
6. Prometheus Metrics Validation
# Check Prometheus metrics
curl http://localhost:8000/metrics
# Verify ServiceMonitor
kubectl get servicemonitor -n monitoring space-metrics
Expected Result:
- Metrics endpoint exposes SPACE metrics in Prometheus format
- ServiceMonitor exists and is configured correctly
- Key metrics present:
space_devex_health_score,space_nps_score, etc.
7. Privacy Compliance Validation
# Check aggregation threshold
kubectl get configmap space-metrics-config -n fawkes-local -o yaml
# Verify no individual data in API response
curl http://localhost:8000/api/v1/metrics/space | grep -i "user_id\|username\|email"
Expected Result:
- Aggregation threshold is set to 5 or higher
- API responses do not contain individual developer identifiers
- Metrics are aggregated at team level
8. Database Connection Validation
# Check secret exists
kubectl get secret space-metrics-db-credentials -n fawkes-local
# Check pod logs for database errors
kubectl logs -n fawkes-local -l app=space-metrics --tail=50 | grep -i "database\|error"
Expected Result:
- Database credentials secret exists
- No database connection errors in logs
9. DevEx Survey Automation Service Validation
# Check deployment exists
kubectl get deployment devex-survey-automation -n fawkes-local
# Check pods are running
kubectl get pods -n fawkes-local -l app=devex-survey-automation
# Check service health
kubectl port-forward -n fawkes-local svc/devex-survey-automation 8080:8000
curl http://localhost:8080/health
Expected Result:
- Deployment exists with at least 1 ready replica
- Pods are in Running state
- Service health endpoint responds successfully
- Automated survey CronJobs are scheduled
10. Cognitive Load Assessment Tool (NASA-TLX) Validation
# Check if NASA-TLX endpoints are accessible
kubectl port-forward -n fawkes-local svc/devex-survey-automation 8080:8000
# Test NASA-TLX assessment endpoint
curl http://localhost:8080/api/v1/assessment/nasa-tlx
# Verify validation script exists
ls -la services/devex-survey-automation/scripts/validate-nasa-tlx.py
Expected Result:
- NASA-TLX assessment endpoint is accessible
- Validation script exists
- Tool is integrated with DevEx Survey Automation service
11. DevEx Health Score Validation
# Get health score
curl http://localhost:8000/api/v1/metrics/space/health
Expected Result:
- Health score returned (0-100)
- Status indicator included (excellent/good/needs_improvement)
Automated Test Execution
Run the automated validation script:
# Using make target
make validate-at-e3-002
# Or directly
./scripts/validate-at-e3-002.sh fawkes-local
The script validates:
- Service deployment and readiness
- API endpoints accessibility
- All 5 SPACE dimensions
- Survey integration
- Friction logging
- DevEx Survey Automation service
- Cognitive Load Assessment (NASA-TLX)
- Prometheus metrics
- Privacy compliance
- Database connectivity
Success Criteria
All of the following must pass:
- ✅ Service deployed with 2 running replicas
- ✅ Health endpoint responding
- ✅ All 5 SPACE dimension endpoints working
- ✅ Pulse survey submission functional
- ✅ Friction logging operational
- ✅ DevEx Survey Automation service deployed and healthy
- ✅ Cognitive Load Assessment (NASA-TLX) tool accessible
- ✅ Prometheus metrics exposed
- ✅ ServiceMonitor configured
- ✅ Privacy threshold (>=5) enforced
- ✅ No individual data in API responses
- ✅ Database connection working
Failure Handling
If any check fails:
- Review service logs:
kubectl logs -n fawkes-local -l app=space-metrics - Check pod status:
kubectl describe pod -n fawkes-local <pod-name> - Verify database connectivity
- Check configuration:
kubectl get configmap,secret -n fawkes-local - Review validation script output for specific failure details
Related Tests
- AT-E3-001: Research Infrastructure validation (prerequisite)
- AT-E3-003: Multi-channel Feedback System validation
Documentation References
- SPACE Metrics Guide
- ADR-018: SPACE Framework
- Service README
- Deployment Guide
Test History
| Date | Version | Result | Notes |
|---|---|---|---|
| 2025-12-23 | 1.0 | PASS | Initial implementation validated |
Notes
- This test validates the infrastructure is operational, not that data is being actively collected from all sources
- Some metrics may be null/zero initially until data collection runs
- The service requires a PostgreSQL database to function properly
- Privacy compliance is enforced at the application level via aggregation threshold
Maintenance
This test should be run:
- After initial deployment
- After any changes to the SPACE metrics service
- Before releases to production
- As part of CI/CD pipeline validation