测试升维:AI赋能下的AREX工具_第1页
测试升维:AI赋能下的AREX工具_第2页
测试升维:AI赋能下的AREX工具_第3页
测试升维:AI赋能下的AREX工具_第4页
测试升维:AI赋能下的AREX工具_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

测试升维:AI赋能下的AREX工具革新之旅携程-机票BU目录AgendaAREX工具的架构与测试思想面向功能性测试的AI助力提升非功能性测试的AI助力提升AREX融合AI应用的总结

AREX工具的架构与测试思想

研发团队的质量困境:

覆盖率

AREX工具的架构与测试思想

研发团队的质量困境:

业务复杂度复杂度是大敌,滚雪球效应某个业务请求DB请求200+

API请求100+

缓存20+业务复杂度和数据复杂度软件项目随着规模增大,产生滚雪球效应

AREX工具的架构与测试思想

AREX工具的实现思想

常规接口测试及痛点痛点高测试覆盖率依赖大量的测试用例测试用例和断言需要持续维护构造测试数据复杂且需要持续维护自动化用例越多维护成本越高自动化已经成为主流,是必需品更是奢侈品自动化测试投入成本增幅远高于开发成本增幅

AREX工具的架构与测试思想

AREX工具的实现思想

AREX测试工具特点特点保持大量的测试用例无需人力参与高覆盖率但测试用例不需要维护无需构造测试数据无需用例维护且持续保证最新用例自动化测试投入成本恒定测试左移释放测试人力做更深入的测试场景AREX会增加测试结果确认成本

AREX工具的架构与测试思想

AREX工具的实现思想

AREX的组成与部署

AREX工具的架构与测试思想

AREX工具的实现思想

–基于流量回放的自动化测试实现

AREX工具的架构与测试思想

AREX的实战成果AREX

在携程的实施效果,日运行有效执行1000+①公司内大范围接入,有效提升了回归测试效率、质量和测试覆盖率②测试左移,

软件提测质量大幅提升③固定了测试成本,释放测试资源,增加了新功能测试的投入和深度④对快速迭代

快速发布有效的支持,

有效的提升了需求交付能力⑤

接入

CI/CD,已经实施

100%

AREX

回归测试通过率才能发布上线,

使用已经是研发过程中的常态AREX

运维中的两大挑战①

持续的录制回放精准度优化:不同场景不同架构…②

持续的易用性优化

面向功能性测试的AI助力提升

AREX的挑战之

易用性提升配置易用性待提升接入优化:快照配置(比如本地缓存开关等)验证能力优化:比对配置(过滤与排序)用例唯一性判断工具使用易用提升精准测试:代码变更的影响范围自动验证:变更对结果集的影响回归本质:需求验证和断言扩展测试能力有用还是好用易用性需要底层支持

面向功能性测试的AI助力提升

AREX算法优化的那些事①

噪音过滤之使用预测试模式②

复杂结构比对之相似度算法③

业务唯一性判断之调用链路分析④

ASSERT断言模式的优化⑤

。。。

面向功能性测试的AI助力提升

盘点质量团队的资源,主动拥抱LLMSource&

UpdateAREXRunning

TimeServices

Documents

面向功能性测试的AI助力提升

AREX试用LLM的前期YouareanexpertQAtesterwithdetailedoriented

mindset.Asasenior

technologyexpertAIassistantwithextensiveexperienceintheJavaprogramminglanguageandexceptionalprogrammingskills,youconsistentlyadheretothehigheststandardsoftoptechnologyexperts

andarededicatedtodeliveringexceptionalassistancetousers.Youpossessastrongcommandofthe

latestJavatechnologies,frameworks,andlibraries,andkeepyourselfup-to-datewithemergingtrendsanddevelopmentstoprovidecutting-edge

solutions.

面向功能性测试的AI助力提升

AREX优化后接入LLM的方式

面向功能性测试的AI助力提升

1.

配置易用性提升:AREX

Noise

FilterLLM应用策略① AREX快照资源/快照简化② Response

Body的定义链源代码AREXNoiseFilter:

What-Why-How模拟输出:

面向功能性测试的AI助力提升

2.

配置易用性提升:AREX

Array

Sort

排序预配置AREXArraySort:

What-Why-How模拟输出:LLM应用策略① 包含Array定义的类源码

+

关联处理函数② AREX

Response

Body

ARRAY实例③ 多实例验证

面向功能性测试的AI助力提升

3.

配置易用性提升:

变更影响智能识别变更影响智能识别:

What-Why-How模拟输出:LLM应用策略① Response+入口函数源码+差异点之XPATH② 变更函数的新旧版本③ 代码分析函数调用链/AREX业务函数调用链④ 函数调用链的源码

面向功能性测试的AI助力提升

算法实现业务唯一性判断①

自定义算法实现②

会有一定的性能损耗AI实现业务唯一性判断(完全失败)①

将所有代码都交付AI分析②

将请求/读依赖(数据库读/API依赖)组合交给AI分析4.

配置易用性提升:

请求业务唯一性(业务属性唯一性判定)请求业务唯一性:

What-Why-How

面向功能性测试的AI助力提升

5.

工具使用易用提升

动态类扫描动态类扫描:

What-Why-How①

录制回放的本质是将代码运行的所有数据依赖,进行另存和还原②

动态类就是代码运行的数据依赖中的一种,如果不配置就会违反“所有数据依赖”的条件,导致录制回放的逻辑非预期③

算法实现:通过代码特征扫描① 全局变量② Map类型的参数③ 类private属性的成员变量④ ?④

大语言模型:基于调用链将涉及到的类代码依次提交给LLM分析模拟输出:你是一个java程序员<define>本地缓存机制是代码中数据接口初次读取填充,以后都是直接读取出</define>请识别如下code中是否存在本地缓存机制,如没有就输出{};

如识别有本地缓存机制,请输出相关的变量定义和函数名,及判定依据。结果以JSON格式输出<code>###</code>{"variables":[{"name":"Nodes","type":

"Map<Integer,DataNode>"}

],"functions":

[

{

"name":

"getDirectChildren",

"description":

"该函数使用Map<Integer,

DataNode>

Nodes作为本地缓存,第一次调用时会将所有节点信息填充到Nodes中,后续调用直接从Nodes中获取节点信息"

}

],"judgement":

"函数getDirectChildren使用Map<Integer,

DataNode>

Nodes作为本地缓存,在第一次调用时,会将所有节点信息填充到Nodes中,后续调用直接从Nodes中获取节点信息,因此代码中存在本地缓存机制。"}

面向功能性测试的AI助力提升

工具使用易用提升

需求验证断言(优化中)变更测试:

What-Why-How只修改逻辑不影响数据的输出(AREX回归测试)修改数据库的依赖请求(增删改*读写-AREX动态MOCK)修改外部接口的依赖请求

(增删改-

AREX动态MOCK修改)API应答报文的验证(比对差异)① 变更影响智能识别② 根据需求动态生成AREX

ASSERT脚本(基于AREX新旧应答+代码变更前后代码)新功能测试:

What-Why-How① 基于源码分析的调用链,从函数入口开始,基于代码调用链(函数集),生成测试用例② 基于算法:AREX测试环境录制测试执行,并分析出新功能的调用链/数据库依赖/外部接口依赖,提供给测试设计模拟输出:你是测试专家。如下源代码包含了一个服务的入口+调用链上所有代码,请阅读理解代码,根据代码逻辑设计测试用例。测试用例包含注释文本/测试数据构造/服务请求构造/测试结果验证。如验证断言无法判断请在注释中说明。请以python代码输出测试用例,步骤和思路以注释的方式融合代码段中。<code><entry><entry><function></function></code>

面向功能性测试的AI助力提升

1.

工具使用易用提升

AI生成可独立运行的测试用脚本算法实现接口探索性测试有效的将经验枚举编程复杂度不高缺点:算法是现有经验的体现,扩展能力和随机性差AI实现接口探索性测试能有效的生成各类参数的探索性测试既能保证探索的随机性又能跟当前的输入有关联缺点:AI调用频繁会费钱

面向非功能性测试的AI助力提升

工具使用易用提升

基于AREX能力的Chaos测试AREX录制回放数据分析请求参数的枚举每个请求的依赖关系/依赖数据基于生产正常场景的行为Chaos测试① 基于数据的Chaos① 请求数据的Chaos② 依赖数据的Chaos② 基于行为的Chaos① 依赖的Timeout② 依赖的异常,比如404等基于AREX基础数据生成JSON规则配置(LLM)算法读取规则生成AREX用例AREX

Chaos模式执行测试(只关注返回码)

面向非功能性测试的AI助力提升

① 基于AREX的Chaos测试能力② 基于K6的性能测试能力① AREX录制的基础数据为基础,生成K6的脚本和CSV性能测试数据文件② 根据K6的压测能力设置压力和时长③ 正常压测和异常压测融合3.

工具使用易用提升

AREX结合AI的稳定性测试(优化中)①Happy

PATH②Sad

PATH③Exceptional

PATH

AREX融合AI能力实践的感悟

AREX

算法与大语言模型的融合总结算法解决一切?①

算法和变更的平衡②

算法与维护成本的冲突③

总有一些技术难题待解决大语言模型完全依赖?①

解决一切问题的银弹②

大语言模型的接入成本③

解决问题的精确性融合算法与LLM①

LLM-好问题才有好答案②

LLM-好数据才有好答案③

数据分析的越细节越精准效果越好

AI

Agent展望 AREX-只能是一个测试工具吗AREX已有的知识源代码知识(AST和分析结果数据)运行时数据(参数/输出/上下文)应用回放能力(AREX体系)应用回放变化跟踪能力(AREX比对)变更及影响范围记录(经验)AI

Agent的组成部分① 知识库(学习与存储,知识的更新迭代)② 推理引擎

(LLM)③ 执行器④ 感知器新挑战① AREX的录制回放体系成为动态的,可追溯的,有逻辑的AI

Agent知识库② AREX角色从验证测试,变为AI

Agent根据需求自动修改代码,并验证需求结果的感知器和执行器AREX-只能是一个测试工具吗

AI

Agent展望 DEMO

Agent流程构造执行LLM

Prompt搜索AREX运行时数据中,符合业务场景的数据(Request/Response/Call-Chain)将涉及到的代码组装在pr

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论