摘要:华为云ATGen现开放对外邀测,欢迎预约。
本文分享自华为云社区《API全场景零码测试机器人,华为云发布ATGen in CodeArts TestPlan》,作者:华为云头条 。
众所周知,软件服务及组件之间的交互主要依赖大量的API接口。
以华为云300多个商用云服务为例,平均每个服务含500+接口,接口总数高达10万+,接口调用上下文业务场景超乎想像的错综复杂。
如何保障API测试场景尽量完备、不遗漏、不引起严重现网问题?这是当前人们遇到的经典难题,而其中常见的瓶颈主要如下:
那么,华为云是如何破解这些问题的呢?
ATGen (APITestGenerator) 是一种基于上下文感知(Context-aware)的API场景级零代码自主测试生成服务,实现应用API场景级测试全自动设计、生成、执行和判定,整个过程无需编写一行代码。
传统的测试设计和执行交互模式,需要人工理解设计文档、编排测试方案、测试自动化开发,这要求参与者熟知产品或服务业务及接口文档,熟练掌握测试技术、测试自动化框架、测试自动化代码编写。
如今,在自主设计、自主生成、自主执行、自主判定的AI算法加持下,API场景级测试的人机交互模式已发生了巨大的转变。
在测试过程中,机器自主解析文档和数据,自动生成API场景级操作依赖ODG(OperationDependencyGraph)图,测试人员只需做适量修订,机器便可自主探索遍历ODG图执行,并同步完成结果的判定和报告的生成,测试人员只需按类批量确认结果。
华为云ATGen基于正向API接口定义文档,自动挖掘API测试上下文操作依赖图(ODG),探索遍历ODG自主生成API测试序列,实时构造并下发API测试请求,判定API测试响应结果,动态修正ODG图,优化下一轮生成。
*具体技术细节可参考发表在ICSE, ASE的顶会论文【1,2】。
产品形态:存储管理&控制服务类云化产品,北向服务化,南向控制嵌入式存储设备
测试团队规模:50+人
北向Restful接口总数:2300+
应用前现状:团队新成立,缺乏接口和功能测试自动化防护网
应用模式:从零快速构建起接口测试和功能测试防护网测试用例
应用效果:共发现350+个接口存在缺陷,覆盖3大类缺陷,API接口级请求有效性可达80%+,误报率10%。
产品形态:运营商&企业网络保障&智能运维类云服务,公有云/私有云部署
测试团队规模:50人
北向Restful接口总数:10000+
应用前现状:8000+接口&功能测试用例
应用模式:对现有测试用例的覆盖增强补充
应用效果:场景测试覆盖提升30%,新发现30+深层业务逻辑问题,样例如下:
产品形态: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