面试被问"AI生成代码出bug谁负责",我差点翻车
上周面一家做金融科技的中型公司,三轮技术面都很顺,到第四轮CTO面,一个问题直接把我干懵了。
"你们团队用AI写代码的比例大概是多少?" "大概40%左右,主要是CRUD和单元测试。"
"那我问你,AI生成的代码上线后出了P0级事故,责任怎么分?" 我下意识想说"当然是谁提交的谁负责",但话到嘴边觉得太敷衍了。面试官明显在等一个更深的答案。
我沉默了大概5秒,决定拆开来回答:
"我觉得要分三层。第一层是直接责任——谁review的、谁点的merge,这个人肯定是第一责任人,不管代码是不是AI写的。但这一层只解决了'谁来背锅'的问题,没解决'怎么防'的问题。"
"第二层是流程责任。我们团队有一条硬规矩:AI生成的代码必须经过至少两个人的review,而且review的人要在PR评论里标注'AI辅助生成,已验证逻辑正确性'。这不是走形式,是强迫review者主动去理解AI到底写了什么。"
"第三层才是我觉得最关键的——架构责任。如果AI生成的代码能引发P0事故,说明系统架构本身就有问题。一个健康的架构应该有熔断、降级、灰度发布这些兜底机制,让任何一段代码——不管是谁写的——都不可能单点引发全局故障。" 面试官点了点头,然后追问:"你说的第二层,review者标注'已验证',但如果他验证漏了呢?AI生成的代码有时候看起来没问题,实际有边界情况。"
这个问题更刁钻。我想了想说: "确实,AI代码最大的风险不是明显的bug,而是隐藏的逻辑漏洞——因为AI的训练数据里可能没有覆盖到你的业务边界。所以我们后来加了一步:AI生成的代码必须补齐边界测试用例,测试覆盖率达不到90%不允许合并。这不是靠人肉review能解决的,得靠工程化手段。"
面试官又追问了一次:"那你有没有遇到过AI生成的代码出了问题,但review没发现的情况?"
"有。上个月我们用AI生成了一段支付超时重试的逻辑,review的时候觉得没问题就合了。上线后用户反馈重复扣款——原因是AI写的重试逻辑没做幂等性校验。这个bug人类review很难发现,因为看起来代码逻辑是正确的,但缺了一个业务层面的约束。"
"后来怎么解决的?" "两件事。第一,我们加了支付幂等性的自动化检测规则,这是CI流水线里的一环,不管谁写的代码都得过。第二,AI生成的代码涉及资金相关的,额外加一道业务专家review,不只是技术review。"
对了。顺嘴提一句,技术大厂,前后端-测试机会,全国一线及双线城市均有坑位 ,待遇和稳定性还不错,感兴趣看看。
面完出来我复盘了一下,觉得这道题考的不是标准答案,而是你对AI辅助开发的风险有没有系统性的思考。很多人会说"谁用AI谁负责",但这只回答了最浅的一层。真正的考点是:你能不能把AI的风险纳入到工程体系里去管理,而不是靠个人自觉。
