深圳宝安做网站的公司,缓存 wordpress 加速,天津建设工程信息网怎么报名的,在常州 做兼职上什么网站0. 背景
作为国民级 App#xff0c;支付宝客户端需要为亿级用户提供多元化的服务#xff0c;因此应用的稳定性与可靠性面临巨大的挑战#xff0c;需要不断地完善和优化。
今天#xff0c;让我们站在服务质量的全方位监控与优化的角度#xff0c;从蚂蚁终端实验室的演进之…0. 背景
作为国民级 App支付宝客户端需要为亿级用户提供多元化的服务因此应用的稳定性与可靠性面临巨大的挑战需要不断地完善和优化。
今天让我们站在服务质量的全方位监控与优化的角度从蚂蚁终端实验室的演进之路展开探讨从借助使用开源的自动化方案到自研并逐步完善无线实验集群技术体系支付宝内部经历了怎样的业务场景演练以及相应的技术架构如何借助移动开发平台 mPaaS 对外输出。
1. 发展历程 总的来说 蚂蚁终端实验室从诞生到现在一共经历过三个阶段工具化、服务化以及中台化其每个阶段都有特点和意义
工具化阶段
该阶段主要以使用市面上主流开源软件为主如客户端开源软件 Appium 其覆盖的端为 Android 和 iOS通过这种开源工具和 App 测试流程结合的方式快速满足业务方的提测需求从而帮助业务方完成一般意义上的自动化测试工作如基本的功能测试、兼容性测试等。
服务化阶段
服务化阶段存在一个重要的背景支付宝着手前后端研发流程分离并逐步沉淀出独立的 App 端研发流程系统研发协作流程与 App 构建流程。在独立的 App 研发流程和系统的基础上终端实验室以一种服务化的形式支撑 App 的研发和协作 处理满足日常用户自动化工作外同时还担当着持续集成、日常发布前自动验包工作等 另外在日常发布发布提供质量数据支持如客户端代码覆盖率统计等。
中台化阶段
伴随着终端实验室的能力不断提升优化以及测试规模的逐步扩大服务上不仅需要满足蚂蚁金服体系 App支付宝、口碑、网商银行等日常测试需求而且还需要将能力扩散覆盖到整个阿里巴巴集团的业务。
随之而来的是实验室需要面临多样化的业务方需求和定制化功能如何在多元复杂的业务环境中与业务方或者说上游系统完成能力共建带着这个问题终端实验室逐步沉淀并着手建设中台化平台一方面让通用服务不断下沉另一方面抽象出标准 SDK 的方式让业务方根据自身业务特点建设特定的能力。
此外在建设平台化的同时终端实验室贴合支付宝业务场景的发展构建如网络实验室、扫码实验室等一系列真实实验室的能力。
经历了几年的不断发展终端实验室逐步完成了中台化的转变其端上覆盖了 Android、iOS 以及 IoT 设备服务上覆盖了通用能力、小程序准入、研发流程建设、真机租用以及用例管控等。 2. 技术生态
在了解完终端实验室的历程之后我们能够对其提供的服务有一个全面的认识。当我们去总结和分析这些服务时可以把这些具体能力分为三大块平台服务能力、客户端SDK 以及 实验室能力。 平台服务能力
平台服务能力的目标是聚焦“如何把蚂蚁实验室构建成一个更为开放的平台”因此我们需要考虑到如何让更多的业务方和上游系统一起参与能力共建从而将平台的建设思路分为 2 大部分设备实验集群和开放SDK。 1. 设备集群
蚂蚁实验室不仅包含数以千计的公用终端设备覆盖市面绝大多数手机终端帮助业务同学完成日常自动化测试工作而且提供了用户自建实验室的方式用户只需要根据自身业务场景特性进行设备采购、实验室部署便具备在自有平台上运行自有设备的能力。
从平台的开放性与部署动态化角度看目前设备集群能保证设备归属和业务场景做到充分隔离保证各业务在平台使用上能相互独立。另外面对阿里巴巴集团众多研发中心设备集群在部署上也支持多地部署、相互隔离。 2. 开放SDK
为了给上游系统和用户提供更为开放的能力帮助业务方根据自身需求完成能力建设。终端实验室提供开放的 SDK 能力上游系统只需在自己服务上接入 SDK就能够完成任务构建链路从用例管理、设备选择、任务执行到执行结果回调在此基础上用户就能够根据自身业务特点将业务数据进行多维度组合形成自己的能力输出。
客户端 SDK
终端实验室经过几个阶段的发展不仅提供 UI 自动化框架能力而且在一些复杂场景做了深入研究和落地的工作。在这里我们以令大家头痛的“App 兼容性验证”作为切入点结合目前常用的几种机器学习方案分析方案的优缺点最终形成了终端实验室的解决方案。
一方面伴随着移动互联网的快速发展目前市面上手机的品牌和型号层出不穷如何快速准确的验证 App 的功能在不同类型手机上运行有效性与稳定性的确是件困难的事情另一方面目前针对图片的机器学习技术日益成熟其图识别的准确性也完全能够满足日常兼容性的要求。
通常来说兼容性测试会采用两种方式1.图像相似度计算2. 无监督的异常点聚类。 这两种方式在使用方式和结果输出都有其优缺点
对于“图像相似度计算”来说其异常图片的识别成功率非常高但其前提条件比较苛刻用户需要对每一版 App 以及每一个业务点进行图片搜集和上传而往往每条用例可能会包含少则几张图片多则十几张图片对于几百、甚至几千条测试用例来说就算是一版 App 的期望图片搜集工作都是巨大的何况目前移动互联网普遍都是快速迭代发布所以导致了这种预先处理图片的方式是不太可行的下图是一般意义以图搜图的数据流另一种常用的方案是直接将同一业务场景下不同手机的一组截图交给无监督的异常点聚类算法处理这种方案的优点比较明显对于用户和平台来说没有增加的额外的工作量操作简单但带来的问题是计算出来的结果并不完全可信特别是在一些极端情况下如某一类异常图片总数较多的情况少数正常的图片反而会被识别成异常图片告知给业务方。对比以上两种技术方案终端实验室在兼容性异常图片发现上采用了更加灵活的方案通过手机端“异常目标检测”和服务端“异常点聚类”相结合的方式完成目标。
首先平台搜集常见异常图片并训练成模型植入手机端。
其次当用户执行兼容性测试的时候在手机端完成一部分“常见异常图片”的发现工作。
再次当任务执行完后服务端将剩下一部分图片交给““异常点聚类”处理并进一步是被不同的图片。
最后在整个执行任务结束后平台就能有效识别异常图片另外当异常图片未被有效识别的情况下又可以在平台上快速提交异常图片并交给算法逻辑继续学习形成新的模型从而在下一次任务执行过程中就能把这种新发现的异常捕获住。
通过这种灵活的方案一方面大大提升了异常图片检测结果的准确度另一方面在整个异常图片的发现上形成了闭环大大提升的兼容性测试的效能。 实验室能力
为了应对日益复杂的用户使用环境和不稳定的运行环境终端实验室不断去构建各种专项实验室尽可能在实验室环境里就把问题发现并推动研发流程去解决。同时伴随着 IoT 时代的到来面对种类繁多的终端设备如何能够通过实验技术的手段帮助研发同学提升效能是一个新问题也是一个比较有挑战的问题终端实验室通过托管 IoT 设备的方式让用户快速方便寻找设备并进行功能验证。具体技术方案是在原有的 Android/iOS 真机租用方案的基础上做了能力升级。
第一 将终端实验室上某一款手机和 IoT 设备做关联保证当浏览器通过 WS 远程操作手机打开摄像头就能够看到对应的 IoT 设备
第二通过 WS 读取 IoT 串口的 trace 信息并将数据以 WS 的形式推送到用户浏览器端
第三在宿主机上集成 IoT 设备操作的 SDK保证宿主机能够通过命令行或者 HTTP 方式操控 IoT 设备
第四宿主机集成语音转文字 SDK这样当 IoT 设备发出声音时就能够在页面上以文字的方式告诉用例。 通过这种远程 IoT 租用的方式用户就能够快速做作一台远程设备另外在给 IoT 设备发送指令的同时可以看到设备的相应信息视觉展示、声音展示以及实时日志信息从而达到快速验证的目的。 机械臂扫码测试智能机柜支持真机云测3. 借助 mPaaS 对外输出
以上介绍的蚂蚁金服终端实验室相应能力的构建与实践目前已经通过移动开发平台 mPaaS 对外输出一部分能力。 在 mPaaS 平台上我们将自动化测试框架真机调度管理场景化测试方案以及详尽的测试报告方案整合外部客户的现有业务场景和系统从而覆盖 App 开发期的各个阶段确保应用上线前获取充分测试发现 bug减少线上问题提高整体用户体验。
目前终端实验室不仅对内服务了包括蚂蚁金服体系下的支付宝 App、网商银行、口碑商家等同时借助 mPaaS 与大量生态合作伙伴一同共建能力包括常熟农商行、西安银行、泰隆银行等。由于篇幅限制很多技术要点我们无法一一展开欢迎大家通过技术文档或点击“阅读原文”进一步了解 mPaaS https://tech.antfin.com/docs/2/49549
| 活动推荐MTSC 2019 测试开发大会
MTSC2019 第五届中国移动互联网测试开发会将于 6 月 28-29 日在北京国际会议中心举行50 来自 GoogleBATTMD 等一线互联网企业的测试大咖分享精彩议题涵盖移动自动化测试、服务端测试、质量保障 QA、高新测试技术AI、大数据测试、IoT 测试等专题。
蚂蚁金服多位技术专家将在大会上分享精彩议题解密蚂蚁金服内部移动测试 2.0 演进之路、代码实时染色系统如何完成代码覆盖率检测等期待与你交流。
原文链接 本文为云栖社区原创内容未经允许不得转载。