1、宣辛欣美团 高级技术专家宣宣辛辛欣欣美团 高级技术专家2016年加入美团,从0到1建设了全新的代码覆盖率系统,持续关注研究和实践测试领域的智能化技术。目目录录CONTENTS缺陷检测建设背景0102 智能体建设思路智能体建设方案03缺陷检测评测04未来展望05P PA AR RT T 0 01 1缺缺陷陷检检测测建建设设背背景景背背景景代码缺陷影响业务的交付质量结果人工检测代码的效率低且问题可能不易发现为为什什么么做做代代码码缺缺陷陷检检测测缺缺陷陷的的发发现现方方式式通通过过测测试试或或监监控控发发现现通通过过代代码码检检测测发发现现测试人员执行测试,输出内容与预期对比,经历测试用例设计阶段
2、-测试执行阶段-缺陷发现-缺陷修复直接对代码本身进行审查,可以利用静态代码分析工具或者大模型来检查代码是否有缺陷,是否符合本次改动的预期。从从规规则则匹匹配配到到智智能能理理解解规规则则驱驱动动预定义规则集,缺乏灵活性,难以适应复杂场景和业务变化孤孤立立分分析析仅分析代码本身,缺乏上下文信息,导致误报和漏报语语义义理理解解深度学习模型理解代码意图和业务逻辑,提高检测准确性上上下下文文感感知知融合多源信息,构建丰富上下文,实现精准缺陷识别基于大量代码训练,学习了各种设计模式和代码逻辑,可以分析代码中变量的定义、使用和修改逻辑,判断变量的使用是否符合其定义范围和语义。例如,对于一段多分支嵌套代码,
3、判断是否存在逻辑矛盾或变量使用不当的情况。大模型可以对代码的上下文进行综合分析,包括函数调用关系、模块间的交互等。例如,它可以分析一个函数的返回值是否被正确处理,或者不同模块之间的数据传递是否符合逻辑。在代码中,通常会包含大量的注释和命名信息,这些文本信息有助于AI理解代码的逻辑意图。AI大模型可以利用其自然语言处理能力,分析注释和命名与代码实际逻辑之间的关系。如发现代码的实际逻辑与注释或命名所表达的意图不一致,AI可以据此发现潜在问题。P PA AR RT T 0 02 2缺缺陷陷检检测测智智能能体体建建设设思思路路当当前前主主要要的的产产品品形形态态智能代码检测的产品形态IDE的插件P P
4、R R评评论论产产品品建建设设思思路路建设上下文工程能力,结合代码仓库信息、代码执行过程信息、业务知识库和规则等打磨底层检测能力。提提升升缺缺陷陷发发现现能能力力通过智能体的建设,搭配工作流提升缺陷检测能力的自主分析、反思能力,提升用户的使用体验智智能能体体的的产产品品形形态态收集用户反馈数据,和业务测试阶段实际生产的缺陷情况,建设数据样本和标注,包含评测数据和训练数据。缺缺陷陷数数据据和和评评测测A Ag ge en nt t呈呈现现底底层层检检测测能能力力数数据据和和效效果果驱驱动动P PA AR RT T 0 03 3缺缺陷陷检检测测智智能能体体建建设设方方案案产产品品建建设设思思路路意
5、图识别缺陷检测的任务拆解反思规划能力0 01 102代码测试用例测试过程数据知识库工具和记忆01对话模式的智能体,根据用户输入识别意图,自主拆解和执行任务,透出缺陷检测的过程信息并汇总结果报告智智能能体体规规划划能能力力 缺陷检查/问题澄清 检查的对象是一个仓库,一个分支,还是一个迭代,还是一个PR 迭代的项目阶段 检测目标确认意图感知 检测范围说明、本次检测将覆盖 具体文件或文件夹范围 中的变更代码 静态分析与动态分析 上下文分析规划 检测步骤规划 检测策略规划(全部改动/未覆盖代码)任务规划意图识别步骤规划工具链1工具链2被测对象感知执行检测智智能能体体规规划划能能力力 获取变更信息 获取
6、代码信息 按代码类/方法/调用关系拆解 制定检测策略(多种策略的路由)判断是否结合业务知识库 实时展示检测进展任务拆解能力 验证缺陷信息智能体对每次检测的结果进行自我评估,分析检测出的缺陷是否准确。检查检测出的缺陷是否存在误报情况。根据反馈调整结果。总结信息反思变更代码获取策略1策略2代码特征工具链1工具链2智智能能体体流流程程代码/流量输出缺陷用户反馈知识库Context反思微调模型LLM缺陷规则知识库测试用例智能体/工作流输入过程输出过程缺缺陷陷检检测测上上下下文文业务含义确定检测范围,解析文件,去决策每个文件使用哪些检测策略,根据代码特征决策检测策略:方法、调用链路、SQL等支持策略和特