API全场景零码测试机器人——ATGen带来“超自动化”测试模式

举报
华为云PaaS服务小智 发表于 2023/07/06 15:59:11 2023/07/06
【摘要】 ATGen (APITestGenerator) 是一种基于上下文感知(Context-aware)的API场景级零代码自主测试生成服务,实现应用API场景级测试全自动设计、生成、执行和判定,整个过程无需编写一行代码。


众所周知,软件服务及组件之间的交互主要依赖大量的API接口。以华为云300多个商用云服务为例,平均每个服务含500+接口,接口总数高达10+,接口调用上下文业务场景超乎想像的错综复杂。

如何保障API测试场景尽量完备、不遗漏、不引起严重现网问题?这是当前人们遇到的经典难题,而其中常见的瓶颈主要如下:

  • 当前接口测试设计依赖人员经验,测试数据构造手段单一,难以反应现网真实应用数据分布场景;
  • 面对成千上万的API接口,可构成上万甚至十几万的操作路径,E2E场景测试编排工作量巨大;
  • 现有的API接口测试生成工具,基本采用Fuzz测试+基于代码覆盖目标引导的SBST,或基于现网数据的单接口回放,不感知接口业务上下文,对于多接口功能交互场景,生成有效性较差且效率低。

那么,华为云是如何破解这些问题的呢?

华为云ATGen感知API接口上下文自主生成API全场景测试,变革人机交互模式

ATGen (APITestGenerator) 是一种基于上下文感知(Context-aware)的API场景级零代码自主测试生成服务,实现应用API场景级测试全自动设计、生成、执行和判定,整个过程无需编写一行代码。

传统的测试设计和执行交互模式,需要人工理解设计文档、编排测试方案、测试自动化开发,这要求参与者熟知产品或服务业务及接口文档,熟练掌握测试技术、测试自动化框架、测试自动化代码编写。如今,在自主设计、自主生成、自主执行、自主判定的AI算法加持下,API场景级测试的人机交互模式已发生了巨大的转变。

智能算法加持下ATGen人机交互模式

在测试过程中,机器自主解析文档和数据,自动生成API场景级操作依赖ODGOperationDependencyGraph)图,测试人员只需做适量修订,机器便可自主探索遍历ODG图执行,并同步完成结果的判定和报告的生成,测试人员只需按类批量确认结果。

华为云ATGen亮点技术和业务价值

华为云ATGen基于正向API接口定义文档,自动挖掘API测试上下文操作依赖图(ODG),探索遍历ODG自主生成API测试序列,实时构造并下发API测试请求,判定API测试响应结果,动态修正ODG图,优化下一轮生成。

 


华为云ATGen六大关键特性:

  • 支持基于Rest API接口定义Yaml文档零码全自动智能测试生成;
  • 感知Rest API 接口调用上下文:解析接口定义Yaml文档,挖掘API接口间出参与入参的上下文传参依赖,以及CRUD增删改查依赖,生成接口操作序列依赖图ODG
  • 自主探索遍历和修正ODG探索遍历ODG批量生成测试序列,自动下发执行,依据响应反馈动态修正ODG图;
  • 13种接口测试数据生成方法:支持接口上下文自动传参、复用字典取值、enum值、example值、example变异值、边界值、中间值、随机值等13种测试数据生成方法;
  • 自动挖掘生成测试判定点:基于接口定义和状态码生成显性测试判定点;
  • 测试结果聚类和批量高效确认:支持按照业务返回码、相似子序列,参数生成类型对测试结果分层聚类,便于测试人员按类别批量确认失败,并一键提单;

*具体技术细节可参考发表在ICSE, ASE的顶会论文【12】。

 

华为云ATGen业务价值与应用前景:

  • 快速构建接口和功能质量防护网

对于新成立的产品服务团队,或无专职测试人员的全功能团队,可实现少人参与或无人参与的零代码全自动接口全场景级测试,快速构建起接口级和功能场景级测试基础质量防护网;

  • 低成本、高覆盖

对于有专职测试人员、测试专家、成熟度较高的测试团队,可以极大提升测试设计效率, 低成本实现更高的测试场景覆盖率和缺陷拦截率;

  • 流水线质量门禁加固

可与现有流水线集成,加固现有冒烟测试门禁,进一步拦截业务逻辑深度缺陷;

  • 面向接口的全场景全属性测试无码化

可以在API正常场景测试基础上实现异常场景 (可靠性测试)和并发场景(性能压力模型)的全自动化生成,完全替代现有接口fuzz测试,实现接口全场景测试零代码。

华为云ATGen在华为内部已规模部署30+产品服务日常应用,按三个维度来度量业务应用效果

  • 生成有效性

包括接口请求成功通过率,请求成功的最长序列长度和长度分布,业务采纳并基线化沉淀的用例数等;

  • 缺陷探测数

缺陷拦截能力,即发现产品服务缺陷的问题数及误报率;

  • 覆盖率


包括白灰黑盒覆盖,即代码覆盖、接口及参数组合覆盖、业务场景覆盖等。

 

 

华为内部三个典型的业务应用场景实践

  • 业务应用场景1

产品形态:存储管理&控制服务类云化产品,北向服务化,南向控制嵌入式存储设备

测试团队规模:50+

北向Restful接口总数:2300+

应用前现状:团队新成立,缺乏接口和功能测试自动化防护网

应用模式:从零快速构建起接口测试和功能测试防护网测试用例


应用效果:共发现350+个接口存在缺陷,覆盖3大类缺陷,API接口级请求有效性可达80%+,误报率10%

 

  • 业务应用场景2

产品形态:运营商&企业网络保障&智能运维类云服务,公有云/私有云部署

测试团队规模:50

北向Restful接口总数:10000+

应用前现状:8000+接口&功能测试用例

应用模式:对现有测试用例的覆盖增强补充


应用效果:场景测试覆盖提升30%,新发现30+深层业务逻辑问题,样例如下:

 

 

  • 业务应用场景3

产品形态:XX工具类云原生服务

测试团队规模:全功能团队,无专职测试

Restful接口总数:1300+

应用前现状:10000+接口测试用例

应用模式:ATGen集成到工具服务alphabeta环境流水线,build完成及回归测试任务之后自动触发生成任务检测是否有失败接口,作为alphabeta门禁加固

应用效果:补充发现60+个接口缺陷,API接口测试生成有效性可达82%


面对云化产品版本的快速迭代,应用场景的日益丰富,产品功能渐趋复杂,完全依靠人员测试经验来保障质量变得越来越困难,自主生成全场景功能测试机器人ATGen应运而生,可实现低成本、零代码、高覆盖、低误报的API全场景测试,持续为开发者提供优质服务。

 

华为云ATGen现已开放对外邀测

欢迎扫码预约


 

1“MOREST: Model-based RESTful API Testing with Execution Feedback”ICSE ’22,

2“Industry practice of automatic RESTful API testing”, ASE’22

 

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。