关于 qe-quality-assessment
qe-quality-assessment 是用于评估代码质量、质量门禁和部署准备情况的测试技能,面向质量工程与交付团队。它涵盖覆盖率、变异分数及可再生成性等维度,并支持趋势分析和报告。
主要功能
- 01评估复杂度与可维护性
- 02配置质量门禁
- 03检查部署准备情况
- 04分析质量趋势并生成报告
- 05记录评估运行历史
适用场景
- 01评估代码库并发现质量问题
- 02在 CI/CD 中执行质量门禁
- 03发布前检查部署准备情况
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ proffesor-for-testing/ agentic-qe --skill qe-quality-assessment安装后在 Claude Code 中输入/qe-quality-assessment确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
run-history.jsonevals/qe-quality-assessment.yamlschemas/output.jsonscripts/validate-config.json详细介绍
QE 质量评估
用途
指导使用 v3 的质量评估功能,包括自动化质量门禁、指标汇总、趋势分析和部署就绪情况评估。
激活时机
- 评估代码质量时
- 设置质量门禁时
- 评估部署就绪情况时
- 跟踪质量指标时
- 生成质量报告时
快速入门
# Run quality assessment
aqe quality assess --scope src/ --gates all
# Check deployment readiness
aqe quality deploy-ready --environment production
# Generate quality report
aqe quality report --format dashboard --period 30d
# Compare quality between releases
aqe quality compare --from v1.0 --to v2.0
Agent 工作流
// Comprehensive quality assessment
Task("Assess code quality", `
Evaluate quality for src/:
- Code complexity (cyclomatic, cognitive)
- Test coverage and mutation score
- Security vulnerabilities
- Code smells and technical debt
- Documentation coverage
Generate quality score and recommendations.
`, "qe-quality-analyzer")
// Deployment readiness check
Task("Check deployment readiness", `
Evaluate if release v2.1.0 is ready for production:
- All tests passing
- Coverage thresholds met
- No critical vulnerabilities
- Performance benchmarks passed
- Documentation updated
Provide go/no-go recommendation.
`, "qe-deployment-advisor")
质量维度
1. 代码质量指标
await qualityAnalyzer.assessCode({
scope: 'src/**/*.ts',
metrics: {
complexity: {
cyclomatic: { max: 15, warn: 10 },
cognitive: { max: 20, warn: 15 }
},
maintainability: {
index: { min: 65 },
duplication: { max: 3 } // percent
},
documentation: {
publicAPIs: { min: 80 },
complexity: { min: 70 }
}
}
});
2. 质量门禁
await qualityGate.evaluate({
gates: {
coverage: { min: 80, blocking: true },
// Fault detection — coverage is necessary but NOT sufficient (ADR-113).
// A suite can hit 90% coverage and catch no bugs; mutation score does not lie.
mutationScore: { min: 0.6, blocking: false }, // warn-by-default; opt-in blocking
regenerability: { min: 0.5, blocking: false }, // Deletion Test: durable oracle backing per module
complexity: { max: 15, blocking: false },
vulnerabilities: { critical: 0, high: 0, blocking: true },
duplications: { max: 3, blocking: false },
techDebt: { maxRatio: 5, blocking: false }
},
action: {
onPass: 'proceed',
onFail: 'block-merge',
onWarn: 'notify'
}
});
2a. 可再生成性门禁(ADR-113)
覆盖率衡量执行过的代码行;变异分数衡量测试能否发现错误,而可再生成性回答删除测试:“如果删除并重新生成此模块,错误的重建结果能被发现吗?”可再生成性 = 根据支撑该模块的耐久性层级(durable > live > ephemeral > none)折算后的变异分数;只有 ephemeral 测试的得分较低,因为它们无法经受重新实现。
import { evaluateRegenerabilityGate } from '../../../src/feedback/regenerability-gate.js';
const verdict = evaluateRegenerabilityGate(moduleProfiles, {
mutationScoreMin: 0.6,
regenerabilityMin: 0.5,
mode: 'warn', // 'block' to fail CI; warn-by-default so adoption never breaks pipelines
});
// verdict.passed (thresholds met) · verdict.blocking (should fail CI) · verdict.failures[]
在报告中将其与覆盖率并列展示:Coverage 88% ✅ / Mutation 41% ⚠️ / Regenerability: ephemeral-only ⚠️。
3. 部署就绪情况
await deploymentAdvisor.assess({
release: 'v2.1.0',
criteria: {
testing: {
unitTests: 'all-pass',
integrationTests: 'all-pass',
e2eTests: 'critical-pass',
performanceTests: 'baseline-met'
},
quality: {
coverage: 80,
noNewVulnerabilities: true,
noRegressions: true
},
documentation: {
changelog: true,
apiDocs: true,
releaseNotes: true
}
}
});
质量分数计算
quality_score:
components:
test_coverage:
weight: 0.25
metrics: [statement, branch, function]
code_quality:
weight: 0.20
metrics: [complexity, maintainability, duplication]
security:
weight: 0.25
metrics: [vulnerabilities, dependencies]
reliability:
weight: 0.20
metrics: [bug_density, flaky_tests, error_rate]
documentation:
weight: 0.10
metrics: [api_coverage, readme, changelog]
scoring:
A: 90-100
B: 80-89
C: 70-79
D: 60-69
F: 0-59
质量仪表板
interface QualityDashboard {
overallScore: number; // 0-100
grade: 'A' | 'B' | 'C' | 'D' | 'F';
dimensions: {
name: string;
score: number;
trend: 'improving' | 'stable' | 'declining';
issues: Issue[];
}[];
gates: {
name: string;
status: 'pass' | 'fail' | 'warn';
value: number;
threshold: number;
}[];
trends: {
period: string;
scores: number[];
alerts: Alert[];
};
recommendations: Recommendation[];
}
CI/CD 集成
# Quality gate in pipeline
quality_check:
stage: verify
script:
- aqe quality assess --gates all --output report.json
rules:
- if: $CI_PIPELINE_SOURCE == "merge_request_event"
artifacts:
reports:
quality: report.json
allow_failure:
exit_codes:
- 1 # Warnings only
运行历史
每次质量评估后,将结果追加到此技能目录中的 run-history.json:
node -e "
const fs = require('fs');
const h = JSON.parse(fs.readFileSync('.claude/skills/qe-quality-assessment/run-history.json'));
h.runs.push({date: new Date().toISOString().split('T')[0], gate_result: 'PASS_OR_FAIL', failed_checks: []});
fs.writeFileSync('.claude/skills/qe-quality-assessment/run-history.json', JSON.stringify(h, null, 2));
"
每次运行前读取 run-history.json——如果最近 5 次运行中有 3 次未通过质量门禁,则发出警报。
技能组合
- 评估前 → 先运行
/qe-coverage-analysis和/mutation-testing - 发现问题时 → 使用
/test-failure-investigator诊断失败 - 审查 PR 时 → 结合
/code-review-quality进行全面审查
注意事项
- 切勿相信 Agent 报告的通过/失败状态——曾发现 12 个测试失败,但 Agent 声称全部通过(Nagual 模式,奖励 0.92)
- 完成表演:Agent 将版本硬编码为“3.0.0”,而不是从 package.json 读取——请核实输出中的实际值
- 按优先级分批修复问题(P0 → P1 → P2),并在每批之间进行验证——不要并行修复所有问题
- quality-assessment 领域的成功率为 53.7%——请预期可能失败,并准备好备用方案
- 如果 HybridMemoryBackend 初始化失败,运行
aqe health进行诊断,或运行aqe init重新初始化
协作
主要 Agent:qe-quality-analyzer、qe-deployment-advisor、qe-metrics-collector
协调器:qe-quality-coordinator
相关技能:qe-coverage-analysis、security-testing
评论
支持 Markdown