SuperAPI AI 工具集

product-quality-analysis

测试与质量

查看项目

更新于 10-16 06:00

技能介绍

Product Quality Analysis Skill 是面向 CIA 平台的产品质量分析技能,用于测量、监控和改进产品质量。其核心依托 SonarCloud 分析、代码质量门、技术债务管理和质量指标,目标是让该政治情报平台保持高可靠性和可维护性。

一、用途与适用场景

当需要审查 SonarCloud 分析结果、评估变更前后的技术债务、配置 CI/CD 管线的质量门、确定重构优先级、衡量代码质量随时间变化的趋势、评估拉取请求的质量影响,或规划质量改进冲刺时,应使用本技能。

不适用于:安全漏洞分析(应使用 secure-code-review 技能)、性能基准测试(应使用 performance-optimization 技能)、UI/UX 质量评估(应使用 ui-ux-design-system 技能)。

二、质量门配置

CIA 平台标准质量门分为“新代码”和“整体代码”两部分:

新代码(自上一版本以来的变更):新代码覆盖率≥80%;重复行≤3%;可维护性评级为 A;可靠性评级为 A;安全性评级为 A;安全热点审查 100%;无新增阻断或严重问题。

整体代码:覆盖率≥70%(目标 80%);重复行≤5%;技术债务比率≤5%;可维护性评级≥B;可靠性评级≥B;安全性评级≥B。

质量门决策流程:先检查 SonarCloud 分析是否通过,否则阻止合并并修复问题;再检查代码覆盖率是否达标,否则补充测试;接着检查是否有新增严重/阻断问题,否则合并前修复;然后检查安全热点是否已审查,否则审查并分类;全部通过后批准 PR 合并。

三、SonarCloud 指标与解读

关键指标及其目标与未达标时的行动:Bugs(可靠性问题)目标 0 新增,未达标则合并前修复;Vulnerabilities(安全缺陷)目标 0 新增,未达标则立即修复;Code smells(可维护性问题)目标为 A 评级,未达标则在冲刺内重构;Coverage(测试覆盖率)新代码目标≥80%,未达标则补充单元测试;Duplications(复制粘贴代码)新代码≤3%,未达标则抽取共享代码;Complexity(圈复杂度)目标每个方法<10,未达标则拆分方法;Cognitive complexity(认知复杂度)目标每个方法<15,未达标则简化逻辑;Technical debt(修复工作量)目标比率<5%,未达标则规划债务冲刺。

SonarCloud 评级标尺:A = 0 个问题(优秀);B = 至少 1 个次要问题;C = 至少 1 个主要问题;D = 至少 1 个严重问题;E = 至少 1 个阻断问题。CIA 平台最低要求:整体代码为 B,新代码为 A。

四、技术债务管理

债务分为四类:设计债(模块间循环依赖、缺少抽象层、服务间紧耦合);代码债(模块间重复代码、复杂方法、缺失或过时文档、命名规范不一致);测试债(关键路径缺少单元测试、不稳定的集成测试、用户流程缺少端到端测试、复杂逻辑分支覆盖率低);依赖债(库版本过时、POM 中未使用的依赖、依赖中存在已知漏洞、许可证兼容性问题)。

债务优先级矩阵按影响与工作量划分:高影响低工作量立即修复;高影响中工作量安排下个冲刺;高影响高工作量安排专门冲刺;中影响低工作量在功能开发中修复;中影响中工作量加入待办;中影响高工作量评估投入产出;低影响低工作量遵守“童子军规则”;低影响中工作量在待办中跟踪;低影响高工作量推迟。

债务削减模式包括:童子军规则——修改方法时顺便补充缺失测试、修复相邻代码异味、更新过时 JavaDoc、删除未使用导入;对复杂逻辑使用抽取方法——将圈复杂度大于 10、超过 50 行的复杂逻辑拆分为专注的方法,例如将 analyzeVotingPattern 拆分为 calculateStatistics、identifyTrend 和 formatAnalysis。

五、代码质量模式与模块标准

CIA 平台各模块质量目标:model.* 模块覆盖率达≥70%(排除生成代码),复杂度低(POJO、实体),关注正确的 JPA 注解、equals/hashCode;service.* 模块覆盖率≥85%(业务逻辑),复杂度中等(应用逻辑),关注事务边界、错误处理;web-widgets 模块覆盖率≥75%(UI 逻辑),复杂度中等(视图逻辑),关注无障碍、响应式设计;citizen-intelligence-agency 模块覆盖率≥80%(集成),复杂度低(配置、装配),关注安全配置、启动。

Maven 质量插件示例:使用 JaCoCo 覆盖率强制插件,在 BUNDLE 级别限制行覆盖率最低 0.80、分支覆盖率最低 0.70。

六、质量审查清单

每次拉取请求:SonarCloud 质量门通过;无新增 bug 或漏洞;新代码覆盖率≥80%;无超过 10 行的重复块;每个方法圈复杂度<10;每个方法认知复杂度<15;公共 API 有 JavaDoc;命名规范一致;无未关联 issue 的 TODO/FIXME。

每次发布:整体覆盖率呈上升趋势;技术债务比率≤5%;零阻断或严重问题;所有安全热点已审查;依赖更新已应用;性能回归测试通过;端到端测试套件通过。

七、参考资料

SonarCloud 文档、JaCoCo Maven 插件、Robert C. Martin 的《Clean Code》、Hack23 ISMS 安全开发政策。

限制:本技能不涵盖安全漏洞分析、性能基准测试和 UI/UX 质量评估,这些分别由其他技能处理。具体安装命令与运行方式暂未提供。