优酷APP响应式布局之测试方案 | 《优酷响应式布局技术全解析》第七章

本文涉及的产品
云解析 DNS,旗舰版 1个月
全局流量管理 GTM,标准版 1个月
公共DNS(含HTTPDNS解析),每月1000万次HTTP解析
简介: 本章介绍 优酷APP响应式布局之测试方案

上一章:优酷响应式在消费场景的落地 iOS | 《优酷响应式布局技术全解析》第六章>>>

作者| 阿里巴巴文娱技术 刘丽琴

响应式布局是在屏幕尺寸发生变化时,APP的页面、组件按照规则进行动态自适应,实现一套代码兼容多尺寸终端设备。响应式技术应用在多端上减少了开发人力投入,但是对于测试来说需要测试的范围相对扩大,要保障多端、多尺寸的APP质量,下面介绍优酷在响应式测试过程中沉淀的测试能力及方法。

一、测试面临的挑战

移动端主要测试类型包括功能测试、性能测试、稳定性测试、兼容性适配测试等,针对响应式测试主要难点在兼容性测试,原因是兼容性测试范围扩大,测试效率面临较大挑战。具体表现在以下几方面:
1)端类型增加,之前关注Phone端即可,现在要关注Phone、Pad、折叠屏、车机大屏
2)组件样式繁多,Phone端组件样式显示一种状态,现在不同屏幕设备、不同状态下组件呈现样式布局会有相应不同
3)系统交互多,包括分屏、浮窗、平行视界、系统转屏设置与响应式交互
4)测试对象多,需要考虑所有的页面、组件、弹窗功能遍历
5)多业务场景交互,比如全屏播放

二、技术实现分析

针对以上挑战,测试团队对优酷全端响应式适配进行深入分析,得出相应的测试点。主要从以下几方面进行分析:

响应式业务流程
image.png

如上图显示,响应式测试分为UI测试和数据处理逻辑测试两部分:

1) UI显示由响应式SDK完成
响应式SDK提供了在不同尺寸设备上通用的响应式能力,在屏幕尺寸发生变化时,页面样式、布局的UI显示也会发生相应的变化,这块主要关注兼容性适配测试。

2)数据处理逻辑由上层业务完成
数据处理主要进行了数据合并、数据过滤、数据映射及数据补全的逻辑处理,重点关注响应式和非响应式下数据处理逻辑的正确性。这块就需要构造各种不同数据进行逻辑覆盖验证。

除此之外,针对业界厂商目前支持的屏幕尺寸变化能力,需要考虑到不同能力下的交互测试:
1)系统支持旋转屏幕设置;
2)Android Pad支持分屏,部分华为Pad支持平行视界能力;
3)iPad支持浮窗、分屏能力。

三、测什么?

由以上的分析结果不难得出测试范围以及主要的测试点,另外一个重要部分,是需要对响应式开关进行测试,已确定及时止损的能力。

1、 测试范围

1)分层:SDK测试、业务层测试;
2)分端:Phone、Pad、折叠屏、车机大屏;
3)分平台:Android、iOS;
4)分能力:响应式开/关;
5)分机型:iPad分屏、浮窗能力,见下表:

image.png

2、 主要测试点

image.png

四、怎么测?

通过对响应式的测试分析,知道了测哪些,下面从功能测试、兼容性测试等方面来阐述怎么测。

1、 功能测试

功能测试主要验证数据处理逻辑在大屏端的正确性。数据处理逻辑主要对组件进行了数据合并、数据映射、数据过滤及补全,针对数据的构造主要通过mock的能力实现,确认大屏端逻辑处理正确。

同时,数据处理逻辑不能影响Phone端的组件页面,这部分测试主要进行回归测试,并且回归量相对较大,为了提高测试效率优酷打造了组件自动化测试方案。

2、组件自动化测试

image.png

该测试借助图像识别,能够很好的规避技术改造的影响,稳定性较好。从以上5个方面解决问题,通过设计测试场景,将线上引流数据清洗后自动构造所需组件数据,自动应用mock数据,基于魔镜算法服务进行相似度+配置化的UI对比。

本次组件测试,覆盖首页/频道页35个组件,正常、异常mock文件500+,dailybuild高频测试,在响应式项目中很好的保证了组件测试的力度和覆盖度。

3、兼容性测试

响应式测试难点在于兼容性测试,这部分要在多端、多系统、多尺寸上验证UI显示,测试工作量较大;针对兼容性测试优酷推出了优化后的兼容性测试方案,包括机型选择和测试平台:

机型选择

image.png

测试平台

为了解决兼容性测试成本问题,针对兼容性测试做了以下改进:

1) 通用脚本降低脚本编写成本、提高执行稳定性、快速开展业务测试
通用脚本基于scheme跳转能力,解决了业务入口触达稳定性问题;提供自动滚屏和基于元素查找的点击功能,还包含通用弹窗处理以及登录功能。

2)长截图能力解决了不同分辨率以及不同物理尺寸下图片验证的难点
长截图实现方式有两种,一种滚屏过程中截长图;一种滚屏截图,最后拼接成长截图能力。

3)图像验证解决人工检测问题
通过图像识别算法,智能筛选出可疑图片,大大减少了人工检测图片数量。

image.png

4、其他测试

1)稳定性测试
大屏端稳定性测试是很有必要的,特别是iPad端低端设备居多并且内存较Phone端也相对低,所以需要考虑这些设备上的稳定性问题。

2)性能测试
响应式方案会显示更多的图片和数据,其数据解析和图片渲染过程会对APP启动和流畅度,内存产生明显影响。

3)数据测试
第一,响应式旋转屏幕时,组件行数列数会发生变化,此时要保证不同数据处理下,埋点数据下发正常:
第二,响应式映射处理的组件埋点数据下发与映射前的组件埋点一致。

五、总结

针对响应式测试在功能测试、兼容性测试方面做了大量的研究,沉淀了组件测试方案和兼容性测试方案,即保障了响应式高质量上线,又提高了测试效率。

后续的响应式测试如何高效支持持续迭代对测试来说是一个新的挑战,主要在两方面:

一是,如何保证开发新的组件支持响应式
建立响应式编码规范,对代码进行静态扫描,对不符合的规范进行告警。

二是,如何高效保障sdk的增量修改的质量
响应式sdk开源后,将脱离APP独立存在,针对sdk单独的测试方案需要考虑开展单元测试和覆盖率分析进行保障sdk质量。

相关文章
|
1月前
|
安全 虚拟化
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力
在数字化时代,网络项目的重要性日益凸显。本文从前期准备、方案内容和注意事项三个方面,详细解析了如何撰写一个优质高效的网络项目实施方案,帮助企业和用户实现更好的体验和竞争力。通过具体案例,展示了方案的制定和实施过程,强调了目标明确、技术先进、计划周密、风险可控和预算合理的重要性。
42 5
|
1月前
|
Java 测试技术 持续交付
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
本文重点讲解如何搭建App自动化测试框架的思路,而非完整源码。主要内容包括实现目的、框架设计、环境依赖和框架的主要组成部分。适用于初学者,旨在帮助其快速掌握App自动化测试的基本技能。文中详细介绍了从需求分析到技术栈选择,再到具体模块的封装与实现,包括登录、截图、日志、测试报告和邮件服务等。同时提供了运行效果的展示,便于理解和实践。
95 4
【入门思路】基于Python+Unittest+Appium+Excel+BeautifulReport的App/移动端UI自动化测试框架搭建思路
|
18天前
|
监控 数据管理 测试技术
API接口自动化测试深度解析与最佳实践指南
本文详细介绍了API接口自动化测试的重要性、核心概念及实施步骤,强调了从明确测试目标、选择合适工具、编写高质量测试用例到构建稳定测试环境、执行自动化测试、分析测试结果、回归测试及集成CI/CD流程的全过程,旨在为开发者提供一套全面的技术指南,确保API的高质量与稳定性。
|
1月前
|
机器学习/深度学习 监控 安全
量化合约对冲策略交易app系统开发技术规则
量化合约对冲策略交易APP系统开发技术规则涵盖系统架构设计、量化策略实现、交易管理、风险管理、用户界面设计及性能优化等方面。通过模块化设计、分布式架构、数据持久化、策略开发、算法交易、回测优化、订单管理、持仓监控、资金安全、风险控制、实时监控、安全审计、界面设计、反馈机制、多语言支持、响应速度、资源优化和兼容性等措施,确保系统的稳定、安全、高效和易用。
|
1月前
|
域名解析 网络协议 测试技术
IP、掩码、网关、DNS1、DNS2到底是什么东西,ping telnet测试
理解IP地址、子网掩码、默认网关和DNS服务器的概念是有效管理和配置网络的基础。通过使用ping和telnet命令,可以测试网络连通性和服务状态,快速诊断和解决网络问题。这些工具和概念是网络管理员和IT专业人员日常工作中不可或缺的部分。希望本文提供的详细解释和示例能够帮助您更好地理解和应用这些网络配置和测试工具。
82 2
|
15天前
|
监控 搜索推荐 测试技术
电商API的测试与用途:深度解析与实践
在电子商务蓬勃发展的今天,电商API成为连接电商平台、商家、消费者和第三方开发者的重要桥梁。本文深入探讨了电商API的核心功能,包括订单管理、商品管理、用户管理、支付管理和物流管理,并介绍了有效的测试技巧,如理解API文档、设计测试用例、搭建测试环境、自动化测试、压力测试、安全性测试等。文章还详细阐述了电商API的多样化用途,如商品信息获取、订单管理自动化、用户数据管理、库存同步、物流跟踪、支付处理、促销活动管理、评价管理、数据报告和分析、扩展平台功能及跨境电商等,旨在为开发者和电商平台提供有益的参考。
23 0
|
2月前
|
测试技术 API 开发者
精通.NET单元测试:MSTest、xUnit、NUnit全面解析
【10月更文挑战第15天】本文介绍了.NET生态系统中最流行的三种单元测试框架:MSTest、xUnit和NUnit。通过示例代码展示了每种框架的基本用法和特点,帮助开发者根据项目需求和个人偏好选择合适的测试工具。
46 3
|
2月前
|
Web App开发 IDE 测试技术
自动化测试的利器:Selenium 框架深度解析
【10月更文挑战第2天】在软件开发的海洋中,自动化测试犹如一艘救生艇,让质量保证的过程更加高效与精准。本文将深入探索Selenium这一强大的自动化测试框架,从其架构到实际应用,带领读者领略自动化测试的魅力和力量。通过直观的示例和清晰的步骤,我们将一起学习如何利用Selenium来提升软件测试的效率和覆盖率。
|
2月前
|
Web App开发 安全 测试技术
软件测试的艺术:从代码审查到用户验收的全方位解析
【10月更文挑战第1天】本文旨在深入探讨软件测试的精髓,通过分析不同类型的测试方法—单元测试、集成测试、系统测试、性能测试和用户接受度测试,揭示其在软件开发生命周期中的重要性。我们将通过具体案例,展示如何运用这些测试技术来发现并修复关键缺陷,提高产品质量。同时,文章还将提供一系列最佳实践,帮助读者建立有效的测试策略,确保软件项目的成功交付。通过阅读本文,您将获得一套全面的软件测试知识体系,以及如何在实际应用中灵活运用这些知识,以提升软件开发的整体质量和效率。
63 2
ly~
|
2月前
|
域名解析 网络协议 Linux
如何测试 DNS 记录中的反向代理服务器是否生效?
本文介绍了三种测试反向代理服务器配置的方法。首先,通过命令行工具如 `ping`、`nslookup` 和 `dig` 检查域名解析是否指向正确的 IP 地址。其次,利用 Web 浏览器访问域名,验证页面加载正常且请求头信息无误。最后,借助网络抓包工具如 `Wireshark` 和 `tcpdump` 分析数据包,确保请求正确转发并返回预期响应。
ly~
176 2

推荐镜像

更多
下一篇
DataWorks