应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿、白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好……
我们发现,如今测试人员的需求已经不只是停留在应用层面的测试数据了,而是需要数据背后的根因。但业界的图形栈测试,绝大部分都只提供应用层面的数据,有一部分可以深入系统层分析,但仍无法触及硬件这一层的测试分析。
HarmonyOS图形栈测试技术,不仅可以深入系统层分析,帮助开发测试者得到数据背后的根因,还能触达硬件层的测试分析。那它是如何做到的呢?让我们一起揭秘HarmonyOS图形栈测试技术。
一、HarmonyOS 图形栈全貌
众所周知,图形是操作系统里面非常核心的模块,和内核、编译器等模块一起作为操作系统的底层基座,不仅如此,它还是体现竞争力的关键模块。但因为图形栈非常复杂,所以需要构筑一套完整的测试技术才可以保证其质量和竞争力。
图形测试分析毫无头绪HarmonyOS图形栈测试技术帮你解决
应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿、白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好……
我们发现,如今测试人员的需求已经不只是停留在应用层面的测试数据了,而是需要数据背后的根因。但业界的图形栈测试,绝大部分都只提供应用层面的数据,有一部分可以深入系统层分析,但仍无法触及硬件这一层的测试分析。
HarmonyOS图形栈测试技术,不仅可以深入系统层分析,帮助开发测试者得到数据背后的根因,还能触达硬件层的测试分析。那它是如何做到的呢?让我们一起揭秘HarmonyOS图形栈测试技术。
一、HarmonyOS 图形栈全貌
众所周知,图形是操作系统里面非常核心的模块,和内核、编译器等模块一起作为操作系统的底层基座,不仅如此,它还是体现竞争力的关键模块。但因为图形栈非常复杂,所以需要构筑一套完整的测试技术才可以保证其质量和竞争力。
中间一层则是我们图形栈操作系统的核心能力,如组件、JS 引擎、ArkUI的三棵树(Component树,Element树和Render树)、自研2D引擎、自研3D引擎、动效、手势、布局等。这一层与右边测试部分的系统层对应,包括图形栈关键耗时函数解析和图形栈优化方案可见的能力。
最下面一层则是HarmonyOS 1+8+N设备需要横跨的两个部分:操作系统和硬件设备,需要对其进行兼容支持,这一层与右边测试部分的硬件层对应,包括跨系统对比测试能力、跨设备测试能力和硬件SOC分析能力。
我们图形栈的测试能力不只是停留在应用层的体验KPI,它可以将体验KPI指标进一步分解成系统级别的耗时函数、以及硬件级别的SOC分析能力,并最终提供优化方案(后文将举例说明)。
了解完整体架构后,我们再进一从2D图形栈应用和3D图形栈应用两个角度去了解图形栈测试技术:
二、2D图形栈应用
图2 是HarmonyOS ArkUI开发框架,对应右边的三层结构,最底层是接口层测试,中间层是组件层测试,最上层是应用层测试。接下来我们会给大家重点介绍负载模型、系统分析案例和应用分析案例。
图形测试分析毫无头绪HarmonyOS图形栈测试技术帮你解决
应用开发以后无法知道性能瓶颈的根因是什么?滑动卡顿、白块产生的原因是什么?代码写完之后,不知道如何优化让它表现地更好……
我们发现,如今测试人员的需求已经不只是停留在应用层面的测试数据了,而是需要数据背后的根因。但业界的图形栈测试,绝大部分都只提供应用层面的数据,有一部分可以深入系统层分析,但仍无法触及硬件这一层的测试分析。
HarmonyOS图形栈测试技术,不仅可以深入系统层分析,帮助开发测试者得到数据背后的根因,还能触达硬件层的测试分析。那它是如何做到的呢?让我们一起揭秘HarmonyOS图形栈测试技术。
一、HarmonyOS 图形栈全貌
众所周知,图形是操作系统里面非常核心的模块,和内核、编译器等模块一起作为操作系统的底层基座,不仅如此,它还是体现竞争力的关键模块。但因为图形栈非常复杂,所以需要构筑一套完整的测试技术才可以保证其质量和竞争力。
图1 图形栈整体架构
如图1所示,左边部分是HarmonyOS图形栈的全貌,其中最上面一层是渲染前端,包括2D类应用、3D类应用和重负载的游戏视频类应用,这一层与右边测试部分的应用层对应,包括体验KPI和负载模型能力。
中间一层则是我们图形栈操作系统的核心能力,如组件、JS 引擎、ArkUI的三棵树(Component树,Element树和Render树)、自研2D引擎、自研3D引擎、动效、手势、布局等。这一层与右边测试部分的系统层对应,包括图形栈关键耗时函数解析和图形栈优化方案可见的能力。
最下面一层则是HarmonyOS 1+8+N设备需要横跨的两个部分:操作系统和硬件设备,需要对其进行兼容支持,这一层与右边测试部分的硬件层对应,包括跨系统对比测试能力、跨设备测试能力和硬件SOC分析能力。
我们图形栈的测试能力不只是停留在应用层的体验KPI,它可以将体验KPI指标进一步分解成系统级别的耗时函数、以及硬件级别的SOC分析能力,并最终提供优化方案(后文将举例说明)。
了解完整体架构后,我们再进一从2D图形栈应用和3D图形栈应用两个角度去了解图形栈测试技术:
二、2D图形栈应用
图2 是HarmonyOS ArkUI开发框架,对应右边的三层结构,最底层是接口层测试,中间层是组件层测试,最上层是应用层测试。接下来我们会给大家重点介绍负载模型、系统分析案例和应用分析案例。
图2 ArkUI开发框架
对于一个新的开发框架,在没有海量生态的应用进来之前我们是如何验证这个平台的测试能力的?
我们最初设想的是构建足够多的场景来覆盖和验证整个ArkUI框架,比如三棵树(Element树、Component树和Render树)、布局/动效、手势、2D渲染引擎。但因为不存在穷举的方式去覆盖所有业务,所以我们提出了负载模型的概念。
2D负载模型到底是什么?
我们选取了Top200的应用,对应用进行基于场景的分类,并提取特征, 然后形成了8大类常见用户场景(图3),如购物类、图库类、视频类等,同时也抽象出6大类负载,比如资源加载、图层叠加、负载布局 。