华为消费者BG开发平台专家,2007年入职华为,一直从事软件平台的开发和研究,现为HUAWEI DevEco平台系统架构师,负责DevEco平台的产品架构设计、技术方案等。
HUAWEI DevEco Studio构建了一整套健全的测试服务,包含多种华为通过全球服务经验所积累的特有测试能力,如DFX诊断、多语言测试、安全测试等。本文根据华为专家熊小勇在2019年11月19日软件绿色联盟开发者大会发表的《开发者云测服务》主题演讲整理而成,会重点介绍华为DevEco平台及框架,包括绿标3.0测试、DFX问题定位能力、远程真机、质量数据分析服务等内容。详细解读如下。
-正文开始-
在应用开发过程,开发者大多会遇到以下三个典型问题:
开发阶段:如何便利获取新形态手机,及时进行应用适配?
测试阶段:如何获取专业的测试服务,提升用户体验?
上线之后:如何监控应用质量及时进行改进?
针对上述问题,华为提供了从应用开发到上线的全生命周期集成开发环境——DevEco Studio。DevEco Studio是一站式集成开发环境,提供开发服务、测试服务、发布服务、应用上线之后质量分析服务、技术支持,同时也承载了OpenLab开放实验室硬件资源的开放,主要是泛终端设备(真机(折叠屏),仿真机,成套测试环境…)。
DevEco Studio支持3类开发者,第一类是应用开发者,即普通App开发者。第二类是HAG服务开发者,HAG服务开发者可以通过平台定义服务或者开发服务卡片。第三类是智能硬件开发者,随着IOT时代来临,对于智能硬件开发者而言,智能家居设备互联性进一步加强,智能家居接入网络,可通过DevEco Studio平台集成开发环境去控制。
DevEco Studio平台到底是什么形式呢?目前DevEco Studio平台分两种形式,一个是PC端侧的,一个是云侧,采用端云协同的形式。
举个例子,在端上的Studio里创建一个项目,项目信息会自动同步到云端,在云端可通过Web网页看到项目信息。在Studio里面,针对某一应用机型来进行单步调试,通过端上的Studio连到云端,云端会连接到OpenLab的真机。开发者可在端上的Studio里面,直接远程调测云端的真机来进行单步调试,而且还能实时获取数据。当App开发完成之后,开发者通过端上Studio把App直接传到云端,云端会分发到后台实验室去进行测试,测试结果会同步给开发者。在Studio里,开发者也能获取到这个App上线以后质量分析情况。
DevEco Studio平台的云端服务,主要包括专业测试服务、精准的数据分析、硬件资源的开放三方面。
在专业测试服务里,重点推出了绿标3.0的测试、IPV6测试、游戏体验测试等;在远程真机测试版块,有折叠屏的远程真机测试、模拟器测试;在云测里,有DFX能力、多语言测试、兼容性测试、稳定性测试、功耗测试、性能测试、安全测试。
绿标3.0测试有基本的红线标准分别是安全性和兼容性,在此基础上增加了功耗、性能和稳定性测试,目前平台已经完全支持绿标3.0,也是软件绿色联盟官方测试平台。
针对IPV6检测,平台提供了一套解决方案,可支持IPV6/双栈检测,支持传输层/应用层抓包,识别IPV6链路/URL访问异常,支持按应用进程精准抓包,截图、日志信息等辅助问题定位。
为了更好的服务游戏开发者,方便开发者在华为手机上进行调优,华为推出了2种测试方式,一种是手动的,一种是自动的。手动的方式是做了一个游戏的装载器,可通过装载器把这个游戏拉起来,玩游戏的过程中,会自动在后台抓取这个游戏的数据。数据采集包括5个监测维度,分别是流畅性、触控、功耗、发热,网络时延。获取到数据之后,在云端进行大数据分析,分析完毕生成一份测试报告,根据这份报告进行调优。第二种是自动的方式,主要是基于AI+3D建模自动化游戏评测。通过AI游戏自驱动起来,针对游戏,做3D场景建模,也可定制场景测试。
端/云两种形式接入,真机流畅测试
APK自定义选择,在线安装
端云协同,Debug单步调测
操作调测,问题日志可追溯
支持折叠屏各状态测试
DevEco Studio平台在今年重点推出了折叠屏的远程真机,开发者可以在折叠、展开的情况下进行远程操作,分析应用的布局有没有问题,兼容性有没有问题,功能性有没有问题。同时也支持横向旋转,测试横屏时应用表现如何。
在云测领域,DevEco Studio平台不断优化,拓展了110多自动化测试项。在测试服务中,远程真机功能覆盖5代安卓版本、8代EMUI版本、5000+全系华为机型和14种典型分辨率,提供截图/日志/性能指标,可以充分满足开发者在开发、测试阶段的资源诉求。
为帮助开发者全面提升应用质量和体验,HUAWEI DevEco Studio构建了一整套健全的测试服务,其中包括华为特有的DFX能力,它主要通过系统侧日志的打点,采集和分析,来改进华为手机系统质量,也可以对应用的部分问题进行分析和定位,针对应用质量改进,我们这次开放了3个能力,分别是踩内存、内存泄漏、卡死/卡顿。
我们在系统侧对内存做了标记,当应用函数在申请内存的时候,就开始调用追踪,追踪的过程中,当应用出现堆越界、栈越界、野指针的情况时,可以直接定位到代码行,这是踩内存。
我们可以检测到2层的内存泄露,一个是C++的内存泄漏,另一个是Java的内存泄漏。针对内存泄漏的判断,在华为手机系统侧做了一个智能的分析,结合应用的行为,抓取到一些日志,直接定位到代码的函数名和代码行。
当一个应用发生ANR的时候,很难判断是应用本身发生ANR,还是系统原因引起的。传统的方法是大部分开发者抓取logcat日志,来分析它是卡死卡顿,但是效果不佳。而华为在系统侧提供了单独的日志,日志中带有当时调用接口发生卡死/卡顿的信息,是不是发生了ANR很清楚,这些是应用侧拿不到的;同时在系统中,华为通过一个多探针联合检测判决技术,结合用户的行为来判断是否卡死/卡顿。比如:当应用卡死/卡顿时,一般用户会狂点屏幕、Back键或Home键,华为会结合这些用户的行为来联合判决。这种检测的精度也很高,可以精确到2.5s以内的卡死和卡顿。
多语言服务主要为出海应用提供多语言规范性和禁忌的检查,满足海外用户的使用习惯和文化诉求。该服务可在云端进行APK检查,在线帮助您检查您所上传的APK是否符合各个地域的禁忌和多语言规范要求(字串资源存储规范性、未翻译、拼写错误),让开发者了解应用是否满足当地用户对语言和文化的诉求。
现在大部分的手机有用户体验改进计划功能,很多用户自愿参与到了华为手机的用户体验改进计划中,华为基于用户反馈的问题改进手机系统,同时在做大量数据分析挖掘后,也可以监测到一些应用方面的质量数据。
我们把应用方面质量上的数据从中抽取出来,开放给开发应用者,让开发者来改进应用的质量,这是一个非侵入式的手段。以前很多应用日志打点上报或者获取日志信息,是需要合入一个SDK的,而华为平台是不需要合入SDK。因为是从系统侧抓取的。另外除了这个App的质量数据以外,当这个应用调用了华为的某一个API,它的质量情况如何,开发者也可以获取到答案。比如说华为开放了一个人脸识别的API,应用把人脸识别的API集成了,集成之后这个API有没有调用?调用的时延是多少?另外调用的过程中有没有崩溃?这些疑问均可在通过数据中找到答案。
在数据上主要开放了5大维度,分别是质量方面的Crash和ANR,性能方面是启动时长、丢帧和启动卡顿。数据是华为手机用户实时系统运行数据质量反馈,方便开发者快速应对。覆盖华为全系机型,问题分布一目了然。另外数据分析是来源于亿级用户海量,准确评估性高。
除了上述作用之外,还可以进行对比分析,改进用户体验。主要表现在
不同App版本在同款手机上对比
某App版本在高中低端手机上对比
某App版本在所有机型上的性能表现,对用户的影响及趋势
除了数据分析之外,DevEco Studio也承载着硬件资源的开放,免费开放了OpenLab实验室测试环境资源。除了北京,在德国的杜塞尔多夫也有实验室。实验室目前的峰值能力是20万APP验证量/天;终端数量是5000+台,7*24小时在线;终端型号包括近2年华为全系机型+最新机型同步上线+谷歌原生手机(Q版本)。这些都是免费的,欢迎开发者使用。凭借着专业能力,HUAWEI DevEco Studio持续服务广大合作伙伴。目前的情况是测试应用数:66万;绿标评测数:16万;测试次数:3300万;累计发现问题:2400万。
技术并不是冷冰冰的代码和数学公式,活学活用才能发挥技术的应用价值。开发者善于借助平台/工具,有利于提升开发效率,降低软件开发周期。