AI驱动的代码缺陷检测智能体能力构建
如果无法正常显示,请先停止浏览器的去广告插件。
相关话题:
#AI Agent
1. AI驱动的代码缺陷检测
智能体能力构建
分享人:辛欣
2025.5
2. 缺陷检测背景
01
04
02 智能体建设思路
03 智能体建设方案
总结展望
2
3. 代码缺陷影响业务的交付质量结果
为什么做缺
陷检测
人工检测代码的效率低且问题可能不易发现
3
4. 缺陷的发现方法
通过测试或监控发现 通过检测代码发现
测试人员执行测试,输出内 直接对代码本身进行审查,
容与预期对比,经历测试用 可以利用静态代码分析工具
例设计阶段-测试执行阶段- 或者大模型来检查代码是否
缺陷发现-缺陷修复 有缺陷,或者符合本次改动
的预期。
4
5. 使用大模型做缺陷检测的优势
深度语义理解:
基于大量代码训练,学习了各种设计模式和代码逻辑,可以分析代码中变量的定义、使用和修改逻辑,判断变
量的使用是否符合其定义范围和语义。例如,对于一段多分支嵌套代码,判断是否存在逻辑矛盾或变量使用不
当的情况,如条件判断中的逻辑运算符使用错误,循环条件设置不当导致的无限循环、函数调用顺序错误
代码上下文分析:
AI大模型可以对代码的上下文进行综合分析,包括函数调用关系、模块间的交互等。例如,它可以分析一个函
数的返回值是否被正确处理,或者不同模块之间的数据传递是否符合逻辑。
自然语言处理:
在代码中,通常会包含大量的注释和命名信息,这些文本信息有助于AI理解代码的逻辑意图。AI大模型可以利
用其自然语言处理能力,分析注释和命名与代码实际逻辑之间的关系。如发现代码的实际逻辑与注释或命名所
表达的意图不一致,AI可以据此发现潜在问题。
5
6. IDE的插件
智能代码检
测的产品形
态
6
PR评论
7. 产品建设思路
扩展检测策略
智能体产品化
结合AI进行缺陷检测
结合知识库
7
8. 产品建设思路
01
01
02
03
规划能力 工具 知识库
•意图识别
•缺陷检测的任务拆解
•反思 •代码相关
•测试用例
•测试过程数据 •编码规范
•业务知识
8
9. 缺陷检测智能体框架
TestCases
Repo
Runtime
Data
Agent
Context
Rules
Knowleage
Base
Feedback
9
10. 智能体规划能力
意图感知
缺陷检查/问题澄清
检查的对象是一个仓
库,一个分支,还是一
个迭代
迭代的项目阶段
检测目标确认
任务规划
检测范围说明、本次检
测将覆盖 [具体文件或
文件夹范围] 中的变更
代码
静态分析与动态分析
上下文分析规划
检测步骤规划
检测策略规划(全部改
动/未覆盖代码)
10
11. 智能体规划能力
任务拆解能力
获取变更信息
获取代码信息
按代码类/方法/调用关
系拆解
制定检测策略(多种策
略的路由)
判断是否结合业务知识
库
反思
验证缺陷信息
智能体对每次检测的结果进行
自我评估,分析检测出的缺陷
是否准确。检查检测出的缺陷
是否存在误报情况。根据反馈
调整结果。
总结信息
11
12. 缺陷检测知识
13. 缺陷检测上下文扩展
01
检测范围和文件解析
确定检测范围,解析文件,去决策每个文件使用哪些检测策略,
目前支持的策略:方法、调用链路、SQL等
变更代码链路
变更代码
链路上的方法体 链路组装
引用变量、常量 链路方法的变量、
常量 最长原则
方法签名 类成员变量 方法是否改动
方法体
02
增量代码
获取代码,判断增量行,提示词中展示行号以及标记修改的行信息
被调用的方法签名
03
配置文件
方法链路
获取,变更方法的上下游组装,多个链路,变更方法,方法签名,
调用方的方法
04
业务含义
原始待检测代码
接口信息、接口的业务含义、代码特征、是否废弃代码
链路组装后的提示
词改写
13
根据缺陷描述获取关联代码
14. 缺陷检测上下文扩展
01
结合测试用例/技术文档
获取本次迭代相关的测试用例,接口用例会描述预期的输入和输出,可找到
代码变更的业务含义,可以用大模型总结接口整体调用链路的业务信息,结
合实体类的成员变量的业务含义
02
运行时的异常信息
获取本次改动代码对应的异常或者错误日志,需要从异常堆栈或
catch后的错误日志中找到对应的代码,结合是否增量行、增量方
法、增量方法的调用方的方法做聚合
03
运行时的请求信息
在具体的请求维度(或一个自动化用例)使用代码覆盖率采集到的
请求走过的代码行,和调用方法,结合入参和出参信息
14
15. 缺陷检测的过程管理
01
缺陷的级别 缺陷的修复
使用模型将缺陷的级别进行划分,会造成产品功 自动判断是否修复,问题缺陷产生经过确认
能不可用的问题定位为缺陷,建设性的问题作为 后,在有代码变更时进行实时扫描感知,由大
可优化项目,有差异化的触达方式 模型判断该问题是否已经被修复
02
03
缺陷的分析
缺陷的识别
智能体触发-前置扫描判断-执行扫描检测,通过 通过大模型返回的结果对缺陷进行分析,根据
代码特征进行召回业务规则,代码特征可以限定 出问题的代码位置判断是历史缺陷或者是本次
在业务线或者仓库范围 引入的缺陷,以及缺陷的标签等
15
04
16. 缺陷检测智能体-架构
17. 缺陷检测效果
应用流程和范围 缺陷的发现能力
当前AI缺陷检测流程已经和迭代流程结合时用,覆盖了 缺陷检测将重要核心的问题视作缺陷推送给用户,目
部分业务线的300+个高风险服务,在研发自测环节和 前整体的采纳率可以达到80%,会检测到一些较难覆
测试介入环节执行,检测结果会通过多种方式触达给 盖和测试到的代码。
用户,2025年至今共检测出缺陷接近1000个。
17
18. 未来展望规划
对业务缺陷的召回
知识库的建设
深度结合业务知识召回和需求维度贴近的缺 结合产品需求、技术方案以及历史缺陷
陷,进一步提升缺陷的发现能力 的相关数据,建设更贴合业务的知识库
智能体优化
缺陷的分析能力
优化智能体对环境的感知和对扫描
对判断为缺陷的原因进行自动识别
任务的规划能力
归类,便于进一步进行效果评测
未来展望和规划
18
19. Q&A
19
20. 招聘:测试开发岗位
邮箱:caimanling@meituan.com
更多技术干货
欢迎关注“美团技术团队”