一种无线端测试平台化最佳实践

本文涉及的产品
教育场景识别,教育场景识别 200次/月
个人证照识别,个人证照识别 200次/月
文档理解,结构化解析 100页
简介: 就像持续集成,互联网公司对测试平台化的探索从未停止过,大厂也不例外。测试平台化并不是单纯地“可视化”,将脚本搬到平台上。它是一种“可能性”,一种多元化技术融合提升测试效果的可能,一种变革测试组织与行为的可能。那么来看看零售通的平台化实践有没有解开你心中的疑云。


阿里QA导读:就像持续集成,互联网公司对测试平台化的探索从未停止过,大厂也不例外。测试平台化并不是单纯地“可视化”,将脚本搬到平台上。它是一种“可能性”,一种多元化技术融合提升测试效果的可能,一种变革测试组织与行为的可能。那么来看看零售通的平台化实践有没有解开你心中的疑云。

背景


随着移动互联网技术兴起,业务在无线端获得高速发展,从而带动产品研发周期快速迭代,业务逻辑模型复杂度越来越高,对业务质量保障提效诉求也越来越高

  • 产品迭代周期短和无线技术架构升级,自动化维护成本高。
  • 人员流动变化,测试经验未能沉淀和抽象到工具平台里,如用例数据模型等。
  • 脚本里沉淀的能力不能快速复用。
  • 业务测新,自动化覆盖投入成本比较高,特别是适配和回归成本。

基于以上痛点,我们有个初衷去做这样一个无线自动化平台,无需编写脚本,无需搭建本地工程环境,全程可视化界面操作,即使不懂自动化脚本编程也能完成任务配置,致力于用较小的成本投入和维护自动化。

 

成本收益分析


我们先以电商域商品详情场景为例,介绍下不同的测试策略对测试成本的影响。商品详情场景涉及到区域化、不同营销类型、不同的offer类型,场景组合后有100+个case。

人工测试

投入人力进行手工验证多端多机,最快完成一轮测试也要5人日。如果加上干扰因素(手机没电、找不到设备、网络环境等问题)、bugfix回归验证,整体测试周期还要加长,甚至成倍增加。自动化脚本测试主要耗时成本在工程化环境搭建、本地脚本编写和调试的。同时对于多场景的数据有一个弊端,往往是写死数据在脚本且数据场景不全。平台化测试

全程在平台上可视化操作,用精准用例建模自动化平台的数据支持多场景的的测新和回归。

image.gifimage.png

功能亮点


1. 原子能力的标准化

我们对自动化里的所用的公共部分做了以下抽象成公共能力和组件化,可供重复使用。将工程脚本里的对象控件操作类、数据类、断言类做标准化并封装成原子能力,可以在平台页面上直接选择,添加对应行动点,支持语义化设置,支持行动点流程编排。

image.gifimage.png


2. 语义化驱动—用例配置

image.gifimage.png


3. 行为驱动—流程编排

image.gifimage.png


4. 数据驱动—精准用例建模

相同场景的自动化不用设置一条一条自动化用例,也不用在脚本里指定某条数据运行。使用场景建模,扩展任务丰富数据源能力,支持任务添加单条数据/多条数据/场景模型数据。场景模型好处是脚本里的数据进行剥离,以业务场景角度封装成用例数据模型,不仅降低测试用例数据遗漏的风险,而且将原先脚本写死的数据变活,通过建立的模型实时获取线上活的数据,即使有业务调整,直接维护模型即可。场景模型支持2种:

  • 对接精准用例建模平台的数据源
  • 对接非平台数据源,如http、odps、hsf,支持动态解析数据源用例

image.gif

image.gifimage.pngimage.png



5. 场景驱动—测试场景多样化

5.1 端上对比

接入对比算法做端上页面对比,支持线上&预发布对比、单页面对比、流程对比。

image.gifimage.png

5.2 不同环境运行

  • 日常预发环境运行,平台逻辑处理scheme环境参数命令切换环境。APP有需要接入的话,提供scheme切换环境的命令,剩下交给平台处理。
  • 线上和外网环境运行,设置2个机器组,其中1个机器组的设备连接只连内网,另外1个机器组设备只连外网(sim卡)。


image.gifimage.png


5.3 APP版本测试集回归

用于回归测试用例的分类管理与批量用例执行。具备 测试报告、错误反馈、失败重跑、批量装包,一键运行等功能,并且支持多种运行模式(随机执行一台设备,最小执行设备模式,全覆盖回归模式)。目前普遍用于提升集成回归的整体效率。

image.gif

image.png


平台架构


平台提供版本测试集回归、适配测试、端上页面对比、流程编排、场景语义化配置,对接精准用例模型等主要功能,为测试、开发人员提供高效的自动化测试解决方案,做到5分钟任务设置,10分钟出结果。image.gifimage.png

底层黑科技

1. 无线实验室—云真机

  • 借助UC的岩鼠平台,支持异地部署机房、同时支持ios和安卓远程云真机访问操作。
  • 异步部署机房,搭建适配实验室托管手机设备,支持安卓和ios远程云真机。技术上用真机平台 docker镜像部署到Linux物理主机,启动docker服务注册到真机平台服务中心。一台物理主机可连接40台手机设备,可通过主板usb扩展卡升级,支持更多设备连接数。

  • 设备通信,注册到真机平台服务中心后,通过usb hub进行通信,给设备发送通道指令走物理主机ip+随机端口。
  • APP操作,用原生adb能力操作安卓手机,和APP、设备之间进行连接通信,用真机平台开放的xcuiTest api操作苹果手机,和APP、设备之间进行连接通信。


2. scheme协议—唤起APP&URL

基于scheme跳转机制,去跳转到任意指定页面,支持ios和安卓系统,无须关心页面是weex、h5、native、flutter、小程序等,做到不入侵被测app也能唤起页面。

3. 视觉图像处理—识别页面控件&采集素材

在UI自动化里对控件识别有以下几种方式:xpath、CssSelector、class、id、name、元素截图等。我们这里采用视觉图像识别技术,对被测页面截图后的图像处理做以下识别,文本类:和达摩院的读光平台合作,做图像ocr识别文本,用于文本点击和文本断言。文本点击是将识别出来文本所在的四个角坐标转成中心坐标去点击。OCR识别功能准确性体验,可以在读光平台官网体验。

图标图片类:和蚂蚁的测试平台合作,做图像以图搜图,建立图标控件管理库。

image.gif

image.png

适用场景


  • 适用于无线端多机适配测试、功能流程测试、页面对比测试、多场景用例建模测试。
  • 适用于本地自建机房。
  • 多场景用例建模测试(测新和回归)。

image.gifimage.png


未来探索方向


测试资产库建设

UI自动化里画像里包含的用户行为轨迹模型、页面控件、登录账号、用例数据模型、脚本操作API、动态断言等组成因素抽象到平台里,变成测试资产,即使有变化影响,测试资产仍然可以继续支撑UI自动化。有了测试资产库,可以以业务视角运行跟这个场景有关的自动化。以商详为例,执行商详场景自动化就可以验证不同的账号在不同商品模型的detail页面展示逻辑、页面操作行为轨迹等,一次运行,精准覆盖。

风险挖掘

除了验证页面看得见展示内容,比如页面适配和功能逻辑等。在自动化执行的背后,去对接平台挖掘相关隐含的数据做回流展示,如死链检查、埋点日志数据、性能数据、crash稳定性数据等,并和历史基线数据做对比check。

结束语


  • 阿里巴巴零售通技术部,基于集团“新零售”战略,将与全球优质货源合作,依托专属进货平台,帮助线下零售店实现线上一站式进货及线下全方位服务。技术团队在实现线下小店零售业务升级的同时,致力于通过数字化技术赋能商家。
  • 欢迎有志之士加入零售通技术团队,共创新的商业模式,诚招JAVA开发、客户端、前端、数据算法及测试开发工程师,联系邮箱:panlian.qingpl@alibaba-inc.com 或 pengcheng.yupc@alibaba-inc.com。


相关文章
|
1月前
|
机器学习/深度学习 人工智能 监控
软件测试中的自动化测试策略与最佳实践##
在当今快速发展的软件行业中,自动化测试已成为确保软件质量和加速产品上市的关键工具。本文将探讨自动化测试的重要性,分析不同类型的自动化测试工具和框架,并深入讨论实施自动化测试的最佳实践。通过案例研究和数据分析,我们将揭示如何有效整合自动化测试到软件开发生命周期中,以及它如何帮助团队提高测试效率和覆盖率。 ##
58 1
|
2月前
|
设计模式 前端开发 JavaScript
自动化测试框架设计原则与最佳实践####
本文深入探讨了构建高效、可维护的自动化测试框架的核心原则与策略,旨在为软件测试工程师提供一套系统性的方法指南。通过分析常见误区,结合行业案例,阐述了如何根据项目特性定制自动化策略,优化测试流程,提升测试覆盖率与执行效率。 ####
69 6
|
2月前
|
存储 监控 测试技术
测试脚本编写和维护的最佳实践有哪些?
测试脚本编写和维护的最佳实践有哪些?
124 50
|
1月前
|
监控 数据管理 测试技术
API接口自动化测试深度解析与最佳实践指南
本文详细介绍了API接口自动化测试的重要性、核心概念及实施步骤,强调了从明确测试目标、选择合适工具、编写高质量测试用例到构建稳定测试环境、执行自动化测试、分析测试结果、回归测试及集成CI/CD流程的全过程,旨在为开发者提供一套全面的技术指南,确保API的高质量与稳定性。
|
1月前
|
数据管理 测试技术 持续交付
软件测试中的自动化测试策略与最佳实践
在当今快速迭代的软件开发环境中,自动化测试已成为确保软件质量和加速产品上市的关键手段。本文旨在探讨软件测试中的自动化测试策略,包括选择合适的自动化测试工具、构建有效的自动化测试框架以及实施持续集成和持续部署(CI/CD)。通过分析自动化测试的最佳实践,本文为软件开发团队提供了一系列实用的指南,以优化测试流程、提高测试效率并减少人为错误。
65 4
|
2月前
|
监控 测试技术 持续交付
探索自动化测试在软件开发中的最佳实践
本文旨在深入探讨自动化测试在软件开发过程中的应用,以及如何有效地实施自动化测试以提高软件质量和开发效率。通过分析自动化测试的优势、挑战和最佳实践,本文为软件开发团队提供了一套实用的指导方案。
|
2月前
|
人工智能 供应链 安全
AI辅助安全测试案例某电商-供应链平台平台安全漏洞
【11月更文挑战第13天】该案例介绍了一家电商供应链平台如何利用AI技术进行全面的安全测试,包括网络、应用和数据安全层面,发现了多个潜在漏洞,并采取了有效的修复措施,提升了平台的整体安全性。
|
2月前
|
监控 安全 测试技术
构建高效的精准测试平台:设计与实现指南
在软件开发过程中,精准测试是确保产品质量和性能的关键环节。一个精准的测试平台能够自动化测试流程,提高测试效率,缩短测试周期,并提供准确的测试结果。本文将分享如何设计和实现一个精准测试平台,从需求分析到技术选型,再到具体的实现步骤。
150 1
|
2月前
|
前端开发 数据管理 测试技术
前端自动化测试:Jest与Cypress的实战应用与最佳实践
【10月更文挑战第27天】本文介绍了前端自动化测试中Jest和Cypress的实战应用与最佳实践。Jest适合React应用的单元测试和快照测试,Cypress则擅长端到端测试,模拟用户交互。通过结合使用这两种工具,可以有效提升代码质量和开发效率。最佳实践包括单元测试与集成测试结合、快照测试、并行执行、代码覆盖率分析、测试环境管理和测试数据管理。
73 2
|
2月前
|
Devops 测试技术 持续交付
软件测试中的自动化与持续集成:最佳实践与挑战
在快速迭代的软件开发周期中,自动化测试和持续集成(CI)已成为提高软件质量和加速产品上市的关键策略。本文探讨了自动化测试和CI的实施如何帮助开发团队提前发现缺陷、缩短反馈循环,并确保代码质量。我们将深入分析自动化测试的策略选择、工具应用以及面临的挑战,同时提供一些克服这些挑战的最佳实践。
53 0