AI 生成的代码进行质量管理

📅 2026/8/7 11:36:08
AI 生成的代码进行质量管理
可以将 AI 生成代码的质量管理固化为一套贯穿交付流程的六道质量门禁需求清楚 - 方案可控 - 代码可审 - 测试有效 - 上线可观测 - 问题可复盘原则是AI 可以参与实现但不能绕过需求、架构、评审、测试和发布治理代码责任仍由研发团队承担。1. 需求清楚防止 AI 在模糊上下文中“合理地写错”AI 的输出质量受输入约束。需求规则、边界和验收标准不清AI 通常会补全出一个看似合理但不符合真实业务的实现。门禁要求检查项要求业务目标明确本次功能解决什么问题核心成功指标是什么业务规则明确金额、状态、时效、库存、权限、审批等规则异常流程明确失败、超时、取消、重试、重复请求、部分成功的处理方式边界条件明确输入范围、上限下限、空值、无权限、数据不存在等场景验收标准需求具有可执行、可验证的验收条件影响范围明确上下游系统、存量数据、兼容性和外部依赖影响关键产物需求说明 验收标准 业务规则清单 状态流转图 异常场景清单 核心链路图典型 No-go 情况核心状态定义不清 金额或计费规则未确认 权限边界未定义 异常和补偿策略缺失 产品只描述页面或主流程没有验收标准。2. 方案可控防止 AI 生成局部可用、系统失控的实现技术方案阶段的重点不是审核 AI 给出的每行代码而是确认实现方案能融入现有系统并具备异常处理、可观测、灰度和回滚能力。门禁要求检查项要求架构一致性符合既有分层、领域模型、公共组件和编码规范接口契约入参、出参、错误码、版本兼容、超时和重试策略明确数据一致性明确事务边界、消息可靠性、缓存一致性、对账和补偿机制幂等性创建、支付、回调、通知、补偿等关键操作可防重权限安全认证、资源归属校验、数据权限、敏感数据处理方案明确性能容量高峰容量、限流、熔断、降级、异步处理策略明确发布方案支持开关、灰度、回滚、数据修复或补偿可观测性日志、指标、追踪、告警和业务监控已纳入方案关键产物技术方案 接口契约 数据流和状态流说明 风险台账 监控设计 灰度、回滚和补偿方案典型 No-go 情况核心写操作没有幂等设计 涉及异步消息但没有失败重试、死信或补偿方案 数据迁移没有校验和回滚预案 关键操作没有审计日志 高风险变更没有灰度或开关控制。3. 代码可审防止 AI 输出未经验证地进入主干AI 生成代码必须和人工代码执行相同甚至更严格的工程门禁。重点不是识别“是否由 AI 编写”而是验证代码正确性、可维护性、安全性和系统一致性。门禁要求检查项要求人工 Code Review关键业务、资金、权限、安全、数据变更代码必须人工评审代码规范命名、分层、异常处理、日志、返回结构符合团队规范静态扫描接入代码质量、空指针、资源泄漏、复杂度等检查安全扫描检查注入、越权、敏感日志、硬编码密钥、危险依赖依赖检查依赖版本可信无高危漏洞无不存在或过时 API变更可追踪提交说明清楚包含 AI 参与范围、影响模块和自测结果关键逻辑可读复杂规则应拆分、命名和注释清楚不能把 AI 输出作为黑盒批量排查发现一个模板化缺陷时对同类模块进行扫描和排查Code Review 对 AI 代码应重点检查是否真正实现业务规则而非只覆盖主流程 是否绕过了已有公共组件、权限框架或统一异常处理 是否存在默认放行、吞异常、静默失败 是否正确处理空值、重复请求、并发和超时 是否引入重复逻辑、过度抽象或不必要依赖 是否打印 token、手机号、身份证、订单明细等敏感信息 是否将外部输入直接拼接到 SQL、HTML、文件路径或 URL 中。建议在 PR 模板中增加[ ] 本次变更是否使用 AI 辅助生成代码 [ ] 已说明 AI 参与的模块和主要逻辑 [ ] 已完成业务规则、异常路径和边界自测 [ ] 已完成安全、权限和敏感信息自查 [ ] 已说明数据、接口、配置和兼容性影响 [ ] 已补充或更新自动化测试4. 测试有效防止“测试代码很多但风险没有被验证”AI 可以快速生成大量测试代码也可能快速生成大量低价值测试。质量门禁要从“覆盖率”转向“风险覆盖和断言有效性”。测试策略测试层级AI 代码的重点验证内容单元测试业务规则、金额计算、状态判断、权限判断、边界条件接口测试参数校验、错误码、幂等、异常返回、数据落库集成测试服务协作、消息、缓存、数据库、第三方依赖和补偿E2E 测试核心用户路径和关键业务闭环安全测试认证、越权、注入、敏感数据、文件和 URL 输入性能测试高并发、资源消耗、慢查询、队列堆积、限流降级探索测试AI 容易遗漏的异常组合、非预期操作和系统上下文问题有效测试的最低要求核心业务规则有明确断言 异常、边界、并发和重复请求有覆盖 金额、权限、状态、库存、订单等高风险逻辑有专项验证 AI 生成的单元测试经过人工评审 Mock 不得掩盖真实的关键风险 历史线上问题必须纳入回归集 核心链路自动化测试进入 CI 或发布门禁。测试准出不能只看“AI 代码是否跑通”而应满足P0/P1 核心链路通过 高风险需求和技术风险已验证 阻塞及严重缺陷为 0 安全、性能、数据一致性专项有明确结论 自动化核心回归通过 遗留风险已记录、评估并获得业务确认。5. 上线可观测防止问题上线后不可见、不可定位、不可止损AI 生成的代码可能新增接口、任务、规则、外部调用或数据写入。没有可观测性上线后的真实风险无法及时发现。门禁要求维度要求结构化日志关键请求、业务主键、异常原因和链路 ID 可查询技术监控错误率、成功率、延迟、吞吐、资源消耗、队列积压业务监控下单、支付、审批、退款、库存、转化等核心指标数据监控状态不一致、对账差异、补偿失败、重复数据告警规则明确阈值、告警级别、接收人和响应时限灰度能力可按用户、流量、区域、租户或开关逐步放量回滚能力支持代码回滚、配置关闭、功能降级、数据补偿上线值守明确产品、研发、测试、运维和业务响应责任人上线前必须明确灰度决策规则灰度范围是多少 观察多长时间 哪些指标满足后可以扩大 哪些指标异常必须暂停或回滚 谁有权做扩大、暂停和回滚决策 发生数据问题时如何补偿和校验。典型 No-go 情况没有核心业务监控 异常日志无法关联具体业务单据 关键新接口没有错误率和耗时监控 没有功能开关或回滚方案 数据变更后没有对账或修复预案。6. 问题可复盘防止 AI 相关问题重复发生线上问题、测试逃逸缺陷、Code Review 漏检都不能只修复当前问题。必须识别问题是需求、提示词、设计、代码、测试还是发布治理的缺口。复盘必须回答问题影响了哪些用户、订单、金额、数据或业务指标 AI 在本次问题中参与了什么环节 是需求规则不清还是技术方案遗漏 是 AI 输出有问题还是人工评审没有发现 现有测试为什么未覆盖 现有监控为什么没有及时发现 是否存在同类代码或相同提示词生成的批量风险 短期如何止损长期如何防复发改进行动必须落到资产问题根因防复发动作需求规则遗漏补充需求模板、规则清单、验收标准AI 上下文不足建立项目编码规范、领域知识和公共能力上下文方案缺陷补充架构评审检查项、幂等或补偿设计标准Review 漏检增加 Review 清单和静态扫描规则测试遗漏补充回归用例、自动化脚本、异常数据集监控缺失新增业务指标、告警规则、链路追踪批量复制缺陷全局扫描、统一修复、建立代码规则或安全规则建议的责任分工角色主要责任产品/业务业务规则、验收标准、优先级和风险接受决策开发AI 输出的正确性、安全性、可维护性、自测和修复责任技术负责人技术方案、架构一致性、Code Review 和技术债治理测试风险识别、分层测试、质量验证、发布建议和问题防复发测试经理质量门禁设计、执行监督、风险升级、质量指标和闭环改进运维/SRE发布、监控、告警、容量、应急和回滚能力项目负责人跨团队风险协调、资源和发布决策推动一套可执行的发布结论Go 需求、方案、代码、测试、监控、回滚均满足门禁 不存在未关闭的 P0/P1 风险。 Conditional Go 存在已知中低风险 有明确影响范围、业务确认、监控措施、灰度方案和回滚预案。 No-go 核心需求规则不清 高风险方案没有闭环 存在严重安全、资损、权限或数据一致性风险 核心测试未完成或结论不明确 没有监控、灰度、回滚或应急预案。最终AI 代码质量门禁不是额外增加一层审批而是把 AI 纳入已有的软件工程纪律以明确需求约束生成以可控方案约束实现以人工评审和自动化检查约束提交以风险测试约束发布以监控和复盘驱动持续改进。