1、汽车数字转型下的智能精准测试李柯李柯目前主要负责精准测试在DevOps的开发和落地、自动化测试工具的开发,并推动自动化测试的广泛应用,以确保极氪软件质量的高水平高质量交付。极氪智能科技数字质量中台技术负责人嘉宾照片目录CONTENTS背景、要解决的问题01 解决思路/方案/框架02 具体解决方法、技术实践03 落地效果与总结、启发04 展望未来05 01议题背景01DevOps成熟度02功能测试03自动化测试04测试结果度量车企软件测试的思考.车企DevOps成熟度不比互联网企业,且DevOps工具和方式多种多样,难以统一测试人员依靠经验和需求变更相关文档,很难准确判断需要测试的范围自动化测试
2、代码编写维护成本高,用例全量回归的也会造成大量资源浪费线上Bug逃逸率具有一定的滞后性,需要一种更能提供质量信心的方式量化测试结果02整体解决方案解决方案自动化测试:从测试框架和测试工具入手,降低自动化测试用例编写成本DevOps成熟度考虑:优化DevOps流程,减少依赖流程节点;支持多样化的DevOps接入方式测试结果度量:对测试结果追根溯源,保证软件测试结果可观测、可优化测试范围定位:定位迭代测试范围,依赖服务源码分析,圈定迭代变更影响面,后续执行关联的自动化测试DevOps多样化测试流程接入不同的业务部门会有不同的DevOps流程和工具,我们可以将自动化测试或者功能测试作为质量管理和控制
3、的一个节点,解耦测试与DevOps的绑定关系同时中间件服务对不同测试源的接口进行包装,便于后期对测试数据的统一收集管理自动化测试虽然有很多可视化拖拉拽的自动化测试工具,但是灵活度不足,且维护成本稍高,所以选用以代码来测代码的形式来做自动化测试。和服务开发人员采用相同的工作流,搭配测试开发的脚手架、工具,形成统一的编码标准在代码层面我们可以通过外挂Hook等多种方式对已有的功能强化升级精准测试 精准用例召回:创建并维护全面的测试用例库,当代码变更时,根据变更内容与已有用例的匹配程度,精准召回需要执行的用例 代码覆盖率和Bug追踪的测试结果量化,让测试结果更加明了,同时也更加趋向真实情况。配合测试
4、报告和数据分析,量化结果,供开发者和决策者参考解决方向自动化测试,减少回归测试成本精准化测试,测试人员能准确知道哪里需要测试DevOps接入方式支持多样化接入测试工作流自动化测试框架工具,自动生成用例提 效降 本代码覆盖率分析,校验测试结果精准化用例召回,减少重复测试03具体方法与技术实践流程设计DevOps接入质量流程多样化,支持工作流触发、平台触发、WebHook触发精 准 分 析工作流发布触发精准分析代码变更影响面集 成 测 试代 码 覆 盖D e v O p s集成测试包含:功能测试、自动化测试、以及代码变更影响面召回的自动化测试用例的执行代码覆盖率的收集与分析。包含功能测试、单元测试
5、、自动化测试的覆盖率的分析与汇总精准测试工作流精准测试自动化用例代码覆盖率单击此处添加文本具体内容,简明扼要的阐述您的观点。精准分析添 加 标 题单击此处添加文本具体内容添 加 标 题单击此处添加文本具体内容精准分析3241DevOps:服务发布,触发质量节点影响面分析:根据服务发布的代码Diff信息,结合调用链数据,分析代码影响面动态调用链分析:Agent插桩,收集并上报接口请求处理的代码调用链关系,用以补充静态调用链分析。静态调用链分析:基于Antlr、AI CodeBase等工具和方式,实现多语言静态源码分析,构建源码AST精准分析服务通过DevOps工作流,触发精准测试并通知到自动化测
6、试平台,平台根据服务源码信息,依赖Antlr分析静态调用链关系,构建语法树。12ByteBuddy对所有业务类字节码增强,创建一个管理器,将每次请求内存堆栈中的函数调用信息发送到自动化测试平台3通过Diff本次发布和上次发布的代码变更信息,依赖静态语法树分析,获取本次变更改动到的代码变更的方法,并集合整个项目的语法树,向上回溯被调用的方法,最终获取到代码变更影响面。自动化测试自动化测试框架:封装高级方法和通用用例,降低开发成本自动化测试工具:录制测试脚本,转化为自动化测试用例测试用例平台化:平台化维护自动化测试用例,在线执行用例测试用例解析:解析测试用例