关于 qe-shift-right-testing
qe-shift-right-testing 面向在生产环境验证软件并采用渐进式交付的团队,介绍发布、监控、故障注入和生产反馈实践。
主要功能
- 01使用功能标志渐进式发布
- 02金丝雀部署与指标比较
- 03合成监控与 RUM
- 04通过混沌工程注入故障
- 05将生产洞察转为回归测试
适用场景
- 01验证功能的逐步发布
- 02监控部署期间的服务表现
- 03通过受控故障测试韧性
- 04将生产事故转为回归测试
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill qe-shift-right-testing安装后在 Claude Code 中输入/qe-shift-right-testing确认已加载。
详细介绍
右移测试
<default_to_action> 在生产环境中测试或实施渐进式交付时:
- 实现功能标志以进行渐进式发布(1% → 10% → 50% → 100%)
- 通过金丝雀发布部署(在全面发布前比较指标)
- 使用合成测试(主动)+ RUM(被动)进行监控
- 通过混沌工程注入故障(构建弹性)
- 分析生产数据,以改进生产前测试
快速右移技术:
- 功能标志 → 控制谁能看到什么,立即回滚
- 金丝雀部署 → 5% 流量,比较错误率
- 合成监控 → 全天候模拟用户,在用户发现问题前捕获问题
- 混沌工程 → Netflix 风格的故障注入
- RUM(真实用户监控)→ 实际用户体验数据
关键成功因素:
- 生产环境是最终的测试环境
- 借助安全保障快速发布,而不是为了确定性而放慢速度
- 利用生产数据改进左移测试 </default_to_action>
快速参考卡
适用场景
- 渐进式功能发布
- 生产可靠性验证
- 大规模性能监控
- 从真实用户行为中学习
右移技术
| 技术 | 用途 | 时机 |
|---|---|---|
| 功能标志 | 受控发布 | 每个功能 |
| 金丝雀 | 比较新旧版本 | 每次部署 |
| 合成监控 | 主动检测 | 全天候 |
| RUM | 真实用户指标 | 持续开启 |
| 混沌工程 | 弹性验证 | 定期 |
| A/B 测试 | 用户行为验证 | 功能决策 |
渐进式发布模式
1% → 10% → 25% → 50% → 100%
↓ ↓ ↓ ↓
Check Check Check Monitor
需要监控的关键指标
| 指标 | SLO 目标 | 告警阈值 |
|---|---|---|
| 错误率 | < 0.1% | > 1% |
| p95 延迟 | < 200ms | > 500ms |
| 可用性 | 99.9% | < 99.5% |
| Apdex | > 0.95 | < 0.8 |
功能标志
// Progressive rollout with LaunchDarkly/Unleash pattern
const newCheckout = featureFlags.isEnabled('new-checkout', {
userId: user.id,
percentage: 10, // 10% of users
allowlist: ['beta-testers']
});
if (newCheckout) {
return <NewCheckoutFlow />;
} else {
return <LegacyCheckoutFlow />;
}
// Instant rollback on issues
await featureFlags.disable('new-checkout');
金丝雀部署
# Flagger canary config
apiVersion: flagger.app/v1beta1
kind: Canary
spec:
targetRef:
apiVersion: apps/v1
kind: Deployment
name: checkout-service
progressDeadlineSeconds: 60
analysis:
interval: 1m
threshold: 5 # Max failed checks
maxWeight: 50 # Max traffic to canary
stepWeight: 10 # Increment per interval
metrics:
- name: request-success-rate
threshold: 99
- name: request-duration
threshold: 500
合成监控
// Continuous production validation
await Task("Synthetic Tests", {
endpoints: [
{ path: '/health', expected: 200, interval: '30s' },
{ path: '/api/products', expected: 200, interval: '1m' },
{ path: '/checkout', flow: 'full-purchase', interval: '5m' }
],
locations: ['us-east', 'eu-west', 'ap-south'],
alertOn: {
statusCode: '!= 200',
latency: '> 500ms',
contentMismatch: true
}
}, "qe-production-intelligence");
混沌工程
// Controlled failure injection
await Task("Chaos Experiment", {
hypothesis: 'System handles database latency gracefully',
steadyState: {
metric: 'error_rate',
expected: '< 0.1%'
},
experiment: {
type: 'network-latency',
target: 'database',
delay: '500ms',
duration: '5m'
},
rollback: {
automatic: true,
trigger: 'error_rate > 5%'
}
}, "qe-chaos-engineer");
生产环境 → 生产前反馈循环
// Convert production incidents to regression tests
await Task("Incident Replay", {
incident: {
id: 'INC-2024-001',
type: 'performance-degradation',
conditions: { concurrent_users: 500, cart_items: 10 }
},
generateTests: true,
addToRegression: true
}, "qe-production-intelligence");
// Output: New test added to prevent recurrence
Agent 协作提示
记忆命名空间
aqe/shift-right/
├── canary-results/* - Canary deployment metrics
├── synthetic-tests/* - Monitoring configurations
├── chaos-experiments/* - Experiment results
├── production-insights/* - Issues → test conversions
└── rum-analysis/* - Real user data patterns
集群协作
const shiftRightFleet = await FleetManager.coordinate({
strategy: 'shift-right-testing',
agents: [
'qe-production-intelligence', // RUM, incident replay
'qe-chaos-engineer', // Resilience testing
'qe-performance-tester', // Synthetic monitoring
'qe-quality-analyzer' // Metrics analysis
],
topology: 'mesh'
});
相关技能
- shift-left-testing - 生产前测试
- chaos-engineering-resilience - 深入了解故障注入
- performance-testing - 负载测试
- agentic-quality-engineering - Agent 协作
记住
生产环境是最终的测试环境。 功能标志支持立即回滚。金丝雀能在 100% 发布前捕获问题。合成监控能在用户发现问题前检测问题。混沌工程可构建弹性。RUM 展示真实用户体验。
使用 Agent: Agent 监控生产环境,将事故重放为测试,运行混沌实验,并将生产洞察转化为生产前测试。使用 Agent 持续维护生产质量。
评论
支持 Markdown