4

技术干货 | ToB 业务场景下自动化测试的实践及探索

 2 years ago
source link: https://segmentfault.com/a/1190000041263354
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

导读: 在 ToB 业务快速迭代与新版本发布过程中,开发和 QA 提测面临着大量人工测试场景。那么如何实现智能回归测试,实现测试用例到代码逻辑的精准记录和双向追溯?如何能更高效的提升测试效率?这都是自动化测试平台的重点探索。

图片

网易云信资深移动端开发工程师

图片

背景

业务场景的复杂化

随着 B 端方案交付场景增多,版本需要快速迭代。单端平台的自动化已经无法做到效率上的提升,人工回归更多的是在主观上去评价改动的影响面,为了确保版本的稳定性,全量回归测试的挑战会拉长 B 端 SDK 和方案发布规划。传统的自动化测试校验结果只是单一性的校验。移动端的 API 和 UI 自动化场景复杂,新旧版本兼容性用例管理,脚本化实现用例管理效率较低。因此对于网易云信来说,基于移动端较全场景的多端互通平台的测试是必不可缺的。

图片

title=

图片

思考与挑战

通过平台抽象基础能力,以插件化能力的方式支撑全流程自动化测试。

执行器链路环境

  • 用于运行测试用例的执行器信息;
  • 用于运行测试用例的执行产物的构建链路;
  • 用于运行测试用例的挂机测试设备被调度;

云断言规则

  • 执行结果的校验根据规则全字端对比;
  • 统一执行结果的比较规则定义,以关键词方式支持;
  • 持久化断言参数,根据多端数据计算校验结果;

元用例模型

  • 根据自动化生成接口元数据属性,进行基础用例和 AI 用例推荐标识;
  • 根据碎片化复用组合和自定义用例,构建业务场景模型;
  • 多端多平台用例参数上下游基于平台持久化数据进行;
  • 执行集模块化配置资源包;

结果统计模型

  • 执行任务结果缺陷定位分类报告;
  • 覆盖率分析;
  • 历史数据聚合模型分析;

图片

解决方案

结合背景和思考,自动化平台的设计策略中包含了:执行器链路环境、云断言规则、元用例上下游,场景建模、覆盖率分析、缺陷定位及报告。

平台架构方案

图片

元用例提取过程

代码自动化提取,映射对应的基础用例。

通过配置资源包和规则文件,结合工具解析待测产物,自动生成测试代码和对应的接口用例。在平台上选择待测元素的方法和自定义的属性,组合成元用例。元用例的方法属性是不可编辑的,它是精准测试代码的映射产物,后续构建业务模型的基石就是基于用例的元数据。客户端的接口无法像服务端这样热更新接口行为。发布出去的版本 API 一定是固定的接口行为。

图片

构建业务模型

细化场景业务,做基线沉淀,提取测试执行集。

图片

运行链路流程

结合 QA 本地调试的流程,本地调试用例的链路是需要支持自定义设备资源进行调试用例。

图片

智能用例推荐

真实用户的持久化数据日志,通过关键词日志锁定用例链路执行轨迹,生成对应的用例。

图片

实践

缩短代码完成和用户反馈之间的时间,最大限度地降低正在进行的工作的成本,这也是呈现代码到客户最终价值,需要更快更安全的交付版本,达到版本的最大收益。

自动化的成本与收益(ROI)

自动化的收益与迭代次数成正比,以下是个新产品的简化公式:

自动化的收益 = 迭代次数 * (全手动执行成本 - 维护成本) - 首次自动化成本

落地项目

目前在工程线解决方案和即时通信(IM1 和 IM2)落地实行。

图片

title=

每日挂机测试

通过上游 Job 完成构建任务,下游 Job 进行自动化任务。不阻塞打包工程任务如果不能触发上下 Job,可以在业务执行 Pipeline 中写入 node 节点执行

图片

图片

未来展望

前期只是针对 ToB 业务解决方案领域中移动端多平台探索实践落地,后续希望能够做到真实提效的同时,提高平台的易用性和扩展性。希望通过本文,能对其他团队有所启发,接下来的时间里一起继续前行探索。

作者介绍

赵冲,网易云信资深移动端开发工程师,热衷于研究跨平台开发技术以及工程提效,目前主要负责视频会议组件化 SDK 的相关研发工作


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK