摘要:华为云ATGen现开放对外邀测,欢迎预约。

本文分享自华为云社区《API全场景零码测试机器人,华为云发布ATGen in CodeArts TestPlan》,作者:华为云头条 。

众所周知,软件服务及组件之间的交互主要依赖大量的API接口。

以华为云300多个商用云服务为例,平均每个服务含500+接口,接口总数高达10万+,接口调用上下文业务场景超乎想像的错综复杂。

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

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

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

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

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

传统的测试设计和执行交互模式,需要人工理解设计文档、编排测试方案、测试自动化开发,这要求参与者熟知产品或服务业务及接口文档,熟练掌握测试技术、测试自动化框架、测试自动化代码编写。

如今,在自主设计、自主生成、自主执行、自主判定的AI算法加持下,API场景级测试的人机交互模式已发生了巨大的转变。

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

在测试过程中,机器自主解析文档和数据,自动生成API场景级操作依赖ODG(OperationDependencyGraph)图,测试人员只需做适量修订,机器便可自主探索遍历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的顶会论文【1,2】。

华为云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集成到工具服务alpha、beta环境流水线,build完成及回归测试任务之后自动触发生成任务检测是否有失败接口,作为alpha、beta门禁加固

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

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

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

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

点击关注,第一时间了解华为云新鲜技术~

API全场景零码测试机器人,华为云发布ATGen in CodeArts TestPlan的更多相关文章

  1. 华为云发布冷启动加速解决方案:助力Serverless计算速度提升90%+

    摘要:本文介绍了华为云对冷启动优化这一业界难题的探索之路,创新提出了基于进程级快照的优化方案. 作者信息-- 子游:华为元戎高级工程师 平山:华为云中间件 Serverless 负责人 琪君:华为元戎 ...

  2. 华为云发布分布式编译构建系统CodeArts Build

    摘要:2月14日,华为云发布分布式编译构建系统CodeArts Build,旨在支撑企业实现高效的软件开发,缩短产品上市周期,帮助企业的软件产品快速形成关键竞争力. 本文分享自华为云社区<唯快不 ...

  3. 华为云发布桌面IDE-CodeArts

    摘要:华为伙伴暨开发者大会2022,发布华为云桌面IDE-CodeArts. 本文分享自华为云社区<华为云发布桌面IDE-CodeArts,让连接更简单.编码更智能>,作者: Huawei ...

  4. 产品质量管理利器,华为云发布CodeArts Defect缺陷管理服务

    摘要:近日,华为云CodeArts Defect缺陷管理服务正式上线,提供结构化缺陷跟踪流程和标准化的质量度量模型. 本文分享自华为云社区<产品质量管理利器,华为云发布CodeArts Defe ...

  5. MongoDB一次节点宕机引发的思考(源码剖析)【华为云分享】

    目录 简介 日志分析 副本集 如何实现 Failover 心跳的实现 electionTimeout 定时器 业务影响评估 参考链接 声明:本文同步发表于 MongoDB 中文社区,传送门:http: ...

  6. 华为云CodeArts Artifact,5大特性守护制品质量与安全

    摘要:2023年2月23日,华为云CodeArts Artifact制品仓库服务正式上线,目标进一步赋能企业伙伴与开发者,实现软件作业中可信制品生产与应用活动快速落地,提高软件交付效率与质量. 本文分 ...

  7. 乘风破浪,遇见华为鸿蒙智能终端系统(HarmonyOS 2),打造面向全场景的分布式操作系统

    什么是鸿蒙智能终端系统(HarmonyOS 2) HarmonyOS 是新一代的智能终端操作系统,为不同设备的智能化.互联与协同提供了统一的语言.带来简洁,流畅,连续,安全可靠的全场景交互体验. ht ...

  8. 昇思MindSpore全场景AI框架 1.6版本,更高的开发效率,更好地服务开发者

    摘要:本文带大家快速浏览昇思MindSpore全场景AI框架1.6版本的关键特性. 全新的昇思MindSpore全场景AI框架1.6版本已发布,此版本中昇思MindSpore全场景AI框架易用性不断改 ...

  9. 一图看懂华为云DevCloud如何应对敏捷开发的测试挑战

    作为敏捷开发中测试团队的一员,在微服务测试过程中,你是不是也遇到同样困惑:服务不具备独立验证能力.自动化用例开发效率很低等? 华为云DevCloud API全场景测试技术来支招~围绕API的全场景,打 ...

  10. #PHP# 华为云 API 方式发送短信

    使用给华为云 消息 服务 API 方式发送短信 代码来自华为云,已通过测试 <?php /** * 华为云发送短信示例代码 * 本段代码需要使用自己的配置信息才能正常运行,出配置信息外,不需要改 ...

随机推荐

  1. pip更新一直time out 的解决方法

    python -m pip install -U --force-reinstall pip 或者指定安装的镜像, 这里以安装numpy为例,运行pip install numpy -i http:/ ...

  2. Docke 使用与详解1 --Tomcat

    一.Docker容器案例使用 --Tomcat安装与使用 1.Tomcat 安装 --docker tomcat镜像官网 1>使用docker pull tomcat拉取镜像,默认拉取最新版本: ...

  3. Tarjan强连通分量(scc)

    概念解释 节点强连通:\(v_i\)与\(v_j\)(\(v_i ≠ v_j\))强连通是指从\(vi\)到\(vj\)和从\(vj\)到\(vi\)都存在路径,即两节点互相可达 强连通图:在有向图\ ...

  4. mongo操作数据库

    1.回顾 2.node + mongodb 2.1 安装mongodb 项目中既可以使用mongodb,但是推荐使用mongoose cnpm i mongoose@4 -S 2.2 连接数据库 一定 ...

  5. JSF预热功能在企业前台研发部的实践与探索

    作者:京东零售 李孟东 00 导读 企业前台研发部包含了企业业务大部分的对外前台系统,其中京东VOP平台(开放平台)适合于自建内网采购商城平台的企业客户. 京东为这类客户专门开发API接口,对接到客户 ...

  6. [JavaScript]Promise:异步编程

    1 文由 某项目的需求:先要请求API1,再以API1的结果请求API2. var n, a; //var r = window.md5; var r = function (password, us ...

  7. day07-OpenFeign-服务调用

    SpringCloud OpenFeign-服务调用 1.OpenFeign介绍 https://github.com/spring-cloud/spring-cloud-openfeign Open ...

  8. Java中「Future」接口详解

    目录 一.背景 二.Future接口 1.入门案例 2.Future接口 三.CompletableFuture类 1.基础说明 2.核心方法 2.1 实例方法 2.2 计算方法 2.3 结果获取方法 ...

  9. 常见API使用

    String类 字符串相关的类 Java程序中的所有字符串文字(例如"abc")都实现为此类的实例 字符串是不变的 他们的值在创建后无法更改 int length() 返回字符串对 ...

  10. 03-webpack五个概念