AICon全球人工智能与机器学习技术大会8折特惠,购票立减¥960! 了解详情
写点什么

探秘百度移动应用质量管理与数据分析

2017 年 12 月 28 日

移动互联网时代,吃喝玩乐、办公支付等等各种应用都在抢占移动 APP 市场,在流量为王的今天,移动 APP 虽然竞争激烈前景一片大好,但也有让开发者和运营人员十分头疼的事情,那就是缺乏贯穿完整移动生命周期测试的解决方案和运营策略指导。如何快速处理移动应用的碎片化测试、利用大数据分析指导移动运营策略是长盛不衰的话题。

76 期百度技术沙龙,聚焦移动应用“产品质量“与”数据价值“,来自百度的技术专家从功能测试、兼容测试、安全测试等方面出发,为大家分享完整移动生命周期测试解决方案,以及如何通过多样化的数据分析、洞察用户行为来指导制定 APP 运营策略。

百度 MTC 移动云测试 **** 中心

人力成本逐年高升、测试团队人力不足、测试体系搭建成本高、测试设备适配困难……这些都是当今移动测试普遍面临的困境和挑战,百度 MTC 移动云测试中心,是业界领先的移动应用一站式测试服务平台,覆盖移动 APP 开发完整生命周期的各种测试解决方案,百度 MTC 高级产品经理张晓晓,现场分享了百度 MTC 如何助力 APP 质量提升。

移动应用测试种类比较碎片化,不过总体上可以分为两类:

  • 一类是比较依赖于技术和设备的自动化测试,大家经常做的兼容测试、安全测试、远程真机调试等都属于自动化测试,针对这类测试,百度提供了上千台调试真机,覆盖 800 款主流机型,基本上可以保证市面上的真机覆盖和主流测试方案;

  • 另一类是比较依赖工程师经验的人工测试,包括移动应用用例测试、Bug 探索测试、海量用户体验等,这类测试无法完全依赖测试设备,需要人工介入,百度众测社区拥有 10000+ 的测试专员以及 400 余位测试专家,覆盖 300+ 不同城市和多种网络环境,能够比较快的帮助开发者解决测试过程中遇到的不可控问题。

以开发者比较关心的兼容测试为例,百度的测试专员在拿到测试包后,首先会编写用例和脚本,然后将测试包发送到真实的上千台手机上进行安装、启动、运行和卸载操作,利用自动化工具,将在运行过程中遇到的崩溃、闪退、UI 适配等兼容问题进行记录分析,最反馈到测试报告中。整个测试流程下来,用户只需将测试需求和测试包提供给百度,其他的测试流程和测试报告则由百度一手提供。

人工测试方面,除了基础的辅助设备和测试环境,比较考究的就是测试工程师的经验和能力,百度众测社区建立了比较完善的测试专员培训体系,通过众测学院能力培养、MTC 技术支持、精准人员协同分工以及持续质量监控四个维度,保证人工测试的精准性与准确率。下图为百度 MTC 人工测试的整体工作流程,除了常规的测试用例设计和执行之外,百度也设置了三重审核机制,通过内部与外部的连通审核,将测试结果进行进一步的保证。

据张晓晓介绍,除了传统的 APP 测试,从 2016 年下半年开始,百度也一直在尝试支持硬件方面的测试,如目前比较火爆的智能单车、甚至需要场测的智能楼宇和智能家居测试,百度都有比较好的支持和案例。同时,百度也希望和整个测试社区强强联手,打造更加智能、全面的测试解决方案。

百度 MTC 私有云解决方案

某些移动测试对数据保密性要求较高,尤其是对于一些还未上线的新功能 APP,信息私有化、定制服务是某些企业在做第三方测试的第一需求,为此,百度 MTC 制定了企业版的私有云解决方案,通过独创的本地化移动 APP 测试,为企业迅速搭建一个内网真机自动化测试实验室,实现测试数据私有,设备远程管理等功能,助力企业互联网转型。百度首席移动云测试解决方案专家李明,为现场的观众全面讲解了百度 MTC 企业版私有云解决方案。

2012 年百度世界大会上,百度正式发布 MTC 移动云测试产品,构建了以 UI 自动化测试为主的测试解决方案,随着技术的推进与发展,百度逐渐集成了性能测试、安全测试、兼容性测试等多个维度的自动化测试,并开始对企业市场提供私有自动化测试服务,2016 年,百度 MTC 私有方案 1.0 正式推出,引起业界极大的关注。为了辅助测试效率,百度 MTC 今年私有方案 2.0,在 1.0 的版本上,丰富了更多的测试工具,包括程真机调试、脚本录制回放以及一些第三方的工具接口,建立起更专业的自动化测试工具集。下图为 MTC 私有云方案 2.0 版本的系统架构图,标红的地方为新增功能和接口。

整个 MTC2.0 的版本,在自动化测试方面提供了七大块的测试解决能力,包括脚本功能测试、兼容测试、安全测试、性能测试、网络测试、遍历测试、脚本录制。每一项的测试功能对应的作用和测试不尽相同,但都不可或缺。

  • 脚本功能测试:指自定义脚本在云端真机回放,支持 Robotium 、Appium 和 Uiautomator 等主流自动化测试框架;

  • 兼容测试:主要在选定机型上安装、启动、monkey、卸载等环节,验证不同手机品牌、操作系统版本、屏幕分辨率下的兼容适配;

  • 安全测试:在文件检测中检查 dex、res 文件是否存在源代码、资源文件被窃取、替换等安全问题,漏洞扫描,后门检测等;

  • 性能测试:模拟典型使用场景,精准获取 APP 多维度性能参数,覆盖启动时长、电量、流量、CPU、内存等 9 大性能指标;

  • 网络测试:支持在不同网络环境下的兼容测试,包括 2G、3G、4G、WiFi 等网络环境模拟;

  • 遍历测试:按照树状结构,自动遍历 APP 控件,覆盖各种异常分支,遍历功能全,小概率 bug 无所遁形;

  • 脚本录制:包含功能测试脚本录制、编辑、回放、调试,支持 Robotium,Appium 和 Uiautomator 等测试框架 ;

APP 自动化测试私有部署方案实践

演讲最后,李明以百度 MTC 为某一权威的科研与试验检测机构部署的自动化方案为例,讲解了百度 MTC 如何实现企业私有化的方案部署。

**【客户痛点】** 承担大量的科研及测试任务,公司各类型的移动应用建设存在开发周期短、版本迭代更新快、迭代更新后缺少回归测试和业务场景模拟测试,随着移动设备及其操作系统不断升级发展,现有的移动应用暴露出功能不完善、性能稳定性不足、智能设备兼容性不强、安全漏洞防护不够等问题。

**【解决方案】** 百度 MTC 基于私有云的移动 APP 测试解决方案,采用中央机房 + 地方机房的分布式部署方式,将项目,用户,应用,脚本设备集中调度管理、资源共享、安全保密。同时,百度 MTC 提供了一整套服务于全集团移动 APP 测试需求的测试标准,包括功能测试,兼容测试,性能测试,遍历测试、安全测试,弱网测试,极限测试,远程真机调试等,以便于统一和规范测试流程和质量。

“一框多用”Android 通用脚本测试解决方案

Android 常用的脚本测试框架主要有 UiAutomator、Robotium、Appium 等,但是都各有各的弊端,混合脚本测试基于封装后的 UiAutomator,结合图像识别和 OCR 技术,可以全面支持各类应用场景。百度高级测试开发工程师洪至远,围绕常见的脚本测试、等主题内容分享了“一框多用”Android 通用脚本测试解决方案。

如何选择支持各类场景的测试 **** 脚本

一个常规的自动化测试流程里,工作人员需要首先编写脚本然后在本地测试,测试完成后再上传到自动化测试平台收集结果。在本地测试之前,测试人员需要选择一个合适的测试框架编写脚本,目前,业界主要的框架包含 appium、Robotium、UIAutomator 三种,但这些框架各有优劣,下图为常用框架的优劣对比,我们可以很清晰的看到这三大框架的性能及适用场景。

  • 首先,Robotium 框架可以进行黑盒测试,并且对控件识别做得比较好, 有一套插装机制,可以实现其他的自动化测试。不过,它的缺点也非常明显,原生上不支持跨进程,需要对 APP 进行重签名,这会导致部分测试无法运行,这是比较致命的。
  • 第二个 Appium,它支持跨平台,包括安卓和 iOS ,而且支持的安卓版本十分全面,高版本、低版本都有各种方法解决。但也有一个致命缺点,稳定性不足,稳定性对于测试环境的重要性不言而喻,因此,这个框架也并不完全适合。
  • 最后是 UIAutomator,是谷歌开发的框架,本身也有很多优点。首先它是原生的,有一个很优越的特质就是支持跨进程界面的获取。不过 UIAutomator 本身不支持安卓 4.1 以下系统,对非原生界面支持较差。

经过比较,百度选择了对原生界面支持较好的 UIAutomator 框架,同时,为了保证性能的运行,百度在此框架基础上做了系列优化实践。

优化实践一:脚本执行易受干扰

在选择完成测试脚本后,测试流程中还是会碰到比较多的问题,这里面最常见的就是权限的弹窗干扰,程序在运行过程中突然出现一个干扰然后脚本就挂掉了,这种问题十分常见也让测试人员十分头疼。

弹窗干扰主要分为两种,进程内的弹窗和进程外的弹窗。针对进程内弹窗百度的解决方案是在 UIAutomator 基础上做一套封装,检测是否有弹窗逻辑,然后通过脚本逻辑进行清理;进程外的弹窗则需要通过夹杂方案,比如 UIAutomator 支持跨进程操作,这样进程外的操作可以直接通过 UIAutomator 给识别,并且给点击掉。

优化实践二:非 Native 场景脚本支持较差

一般的非原生场景包括 WebView、游戏、PopupWindow 等,这些场景很大的一个特点是界面元素识别较难,比如像 PopupWindow 这样的安全键盘,它在页面基础上加了一层 Window,识别过程的焦点安全键盘上,导致安全键盘元素完全无法获取、识别。

不管是通用的元素识别方案还是目前流行的图像识别方案,在操作和性能上都有一定弊端,百度将这两种方案结合起来,在 PC 端是统一的 API,使用混合脚本测试解决方案。图像相关的一些操作直接在 PC 端上执行,元素识别则可以将操作进行封装,然后在设备端写一个空的测试脚本,这个空脚本的作用主要是暴露 http sever 服务,通过 APP 可以进行直接的访问。在 PC 端的访问封装之后,发送到设备端,设备端对操作进行一些解析,再到清道夫 SDK,最后到 UIAutomator,做到整套设备端元素识别,这样就形成了一个比较完整的测试流程。

优化实践三:脚本编写比较耗时

目前,一般脚本的编写工作大多还是人工编写,在测试任务比较重的情况下可能会出现响应不及时的问题,这部分问题可以采用录制工具解决,通过录制工具把测试脚本记录下来,自动生成脚本,提升编写效率。

上图为百度录制工具的整体解决方案,整体的框架分为三个部分,安卓设备、录制工具服务端以及前端界面。主要工作集中在服务端,前端界面包括操作的模块,图像展示、代码生成这都是服务端上的。服务端主要提供几个功能,界面解析,生成对应的元素路径,前端界面通过点击操作过来之后,根据 Dom 树结构拿到元素路径,生成唯一代码,返回到前端这边,前端拿到现成代码,把脚本编译执行。这样,整个脚本的录制过程就实现了。

百度统计高级分析平台如何助力细化数据分析与营销

一个成功的产品,除了稳定、安全的系统性能,还需要一个精细化的数据分析来指导运营工作,才能抓住用户心理,进行广泛的推广和应用。百度高级产品经理夏艾萱,就如何利用百度统计高级分析进行精细化数据分析与营销展开了深入分享。

夏艾萱介绍到,百度统计是国内最大的网站流量分析工具,能够告诉用户,访客是如何找到并浏览用户的网站,在网站上做了些什么。今年,百度统计全新推出了高级分析平台,引入了交叉分析、百度大数据用户理解等功能。企业可以通过更多深入的分析方式,深入理解用户与产品,从而改善访客在产品应用上的使用体验,进行精准推广与营销。

上图为百度统计高级分析平台的整体功能框架,从下至上,最底层是数据实现层,依靠大数据的 online 综合处理技术,组合行为数据的同时,对用户意图进行挖掘;倒数第二层是数据接入层,百度使用了无埋点技术,能够降低工程准入门槛,同时提供多样化 API 接入服务,来适配企业个性化监控分析需求;倒数第三层为最核心的数据分析层,提供数据的分析能力,如常见的内容筛选、多维度自定义分析、漏斗、行为流、留存分析等,以及带有独家归因分析的智能预警;最上层是实际的应用层,除了日常的监控、A/B Test,百度还提供了独有的用户理解、搜索词统计等功能,同时支持元数据的 API 导出,拥有极强的工程可扩展性,帮助用户更好的利用这些信息定制运营策略。

随后,夏艾萱以一个实际案例讲解了百度是如何通过高级分析平台支持客户进行精准营销。下图为百度统计为某客户提供的营销数据分析,客户希望通过对人群的理解和人群的触达进行更好的营销活动,在此需求上,百度统计提供了两个能力,一个是通过用户线上行为洞察真正的活跃用户分布以及这些活跃用户的属性;第二个是知道精准用户分布后,引导进行线下活动的策划,然后通过数据整理出线下活动的效果以及用户对活动的反馈,通过线上线下同步走的方法,实现人群的精准定位、管理和营销。

总的来说,百度统计高级分析平台就是通过对整个用户目标进行大数据画像、意图分析,然后监控渠道投放效果,最后做用户留存分析、移动热力图等营销策略优化,实现整个市场扩展的优质渠道的选择,进而进行场景化的支持,这也是目前不少客户去实际落实产品与应用的方式。

百度移动统计改版重磅上线

之前讲解了百度统计如何利用大数据帮助客户做精准营销,那么,针对功能和界面有别与传统 pc 站点的移动 APP 来说,百度是如何帮助客户做好 APP 数据的统计与分析的呢?百度移动统计产品负责人梁殊疑,从数据高效采集、数据智能分析以及数据赋能增长三个纬度,分享了如何帮助移动运营人员实现用户洞察及精细化运营。

说起数据采集最大的痛点,效率算是当之无愧。反复的沟通、工程埋点效力低,以及漫长的发版的更新过程都会使得大大拉伸数据采集的过程,消耗运营人员大部分的精力。针对这个问题,百度移动统计推出了可视化埋点解决方案,所谓可视化埋点,是指 APP 接入全埋点的 SDK 后,即可实现对 APP 所有标准组件的预埋点,同时用户在同步了 app 界面的电脑端圈选想要监控的事件,该事件的埋点配置文件直接下发,随后即可在前端看到圈选的事件的数据,这样,就可以大大减少技术的开发成本,提高了埋点效率。

如何精确衡量数据分析是运营策略指导的重要前提,百度移动统计在这方面除了提供常规的追踪报表,也提供了灵活性更高,纬度指标更全面的定制报告功能。而对于数据如何赋能增长这个话题,百度则采用用户分群的方式帮助客户找到了产品价值点,即按照用户的某种行为特质先将人群进行划分,然后做精准的营销和转化。

交易全链路数据驱动企业营收增长

增长智能是指利用现代的大数据和人工智能技术,高效发现和解决商业问题,以实现快速的、可量化的商业收益增长。来自 Ping++ 的大数据总监夏苏敏,作为最后的分享嘉宾,详细讲解了如何利用交易全链路数据驱动企业营收增长。

在讲如何营收增长之前,夏苏敏为现场观众科普了一个在营销领域非常重要的概念——用户生命周期价值。下图为一个移动应用用户生命周期价值的流转图。当一个新的用户进入 App 的时候,这个用户的天然特性就是高流失风险,并且忠诚度很低,假如是商品类 APP 的话,只要完成一次支付交易,这个流失风险就会下降到一个比较低的水平,但依然会保持一个比较低的忠诚度。如果用户在很长的时间内没有完成下一次的交易,由于低忠诚度的属性,就会导致回到高流失风险的状态,如果这个状态持续太久,这个用户可能永久性流失。

因此,想要留住用户,需要让用户保持在一个低流失风险的状态。那么,提高用户的忠诚度就显得非常重要了。夏苏敏现场分享了提高“增长智能”的四大解决方案:量化目标、策略制定、数据打通以及效果监测。量化目标是指分析出用户的忠诚度、流失风险是什么,然后对用户进行精准的分群,在数据打通环节,通过结合百度移动统计获取的 APP 行为数据、用户画像数据与 Ping++ 的交易数据,实现了从行为数据到交易数据的全链路闭环,行程数据互补。以指导探究用户行为特征,分析用户真实需求,制定用户营销策略促成交易,最后进行效果的监测与追踪,以便及时优化和改进。

之后,夏苏敏通过为某汽车售后企业制定的流失用户挽回策略为具体案例,详细讲解了如何用大数据分析,提升企业营收增长。首先量化目标,对人群进行用户画像和近期消费意图分析,分析后发现在育儿阶段的人群占到 58%,然后制定用户策略,组织策划一场城市周边亲子自驾游活动,用户报名之后,现场通过活动促销产品,提高营销量。同时,运营人员也能借助现场交流,搞好与客户之间的关系,提高用户忠诚度和转化率。

2017 年 12 月 28 日 18:022117
用户头像

发布了 24 篇内容, 共 81257 次阅读, 收获喜欢 0 次。

关注

评论

发布
暂无评论
发现更多内容

Malagu 框架介绍

木香丘

云计算 开源 Serverless 架构 框架

LeetCode题解:226. 翻转二叉树,递归,JavaScript,详细注释

Lee Chen

LeetCode 前端进阶训练营

架构师训练营第四周作业

尹斌

Hazelcast IMDG 带你瞬间进入内存计算的时代

张磊

分布式计算 内存管理 分布式缓存 分布式内存网格

spring-boot-route(九)整合JPA操作数据库

Java旅途

Java Spring Boot jpa

架构师训练营第 1 期第 4 周学习总结

好吃不贵

极客时间架构 1 期:第 3 周代码重构 - 命题作业

Null

3. CocoaPods 命令解析 - CLAide

Edmond

ruby ios objective-c CocoaPods PackageManager

缓存服务-技术专题-解决方案

李浩宇/Alex

架构师训练营第三小结(9.28-10.4)

zjzj2017

第四周作业

极客大学架构师训练营

发几张国庆的照片

亨利笔记

容器 k8s Harbor 镜像

Redis-技术专题-基础介绍

李浩宇/Alex

单例模式

魏小龙

Python 为什么不支持 switch 语句?

Python猫

Python 编程

架构师1期-代码重构作业

ltl3884

极客大学架构师训练营

架构师训练营第三周学习总结

Gosling

极客大学架构师训练营

2N方定点算法

刀斧手何在

php 数据库 分布式 算法 后端

如何高质量学习与正确运用设计模式

木香丘

学习 设计模式 实战

架构师训练营第三周课后作业

Gosling

极客大学架构师训练营

【第三周】代码重构

云龙

深入剖析go中字符串的编码问题——特殊字符的string怎么转byte?

Gopher指北

go golang 后端 string utf-8

Redis-技术专题- 热点Key如何解决

李浩宇/Alex

爆赞!这份《Java核心宝典》绝对是面试复习的最佳选择

Java架构之路

Java 程序员 面试 编程语言

实用威胁建模指南(一)

亚伦碎语

敏捷 安全设计 系统安全 #威胁建模

入行架构师之前,这7项技能你要先了解一下

Java架构师迁哥

架构师训练营第 1 期第 4 周作业

好吃不贵

极客大学架构师训练营

架构师训练营第三周作业(9.28-10.4)

zjzj2017

Serverless 多云解决方案 Malagu

木香丘

云计算 Serverless 架构 云原生 Malagu

架构师训练营第四周学习总结

尹斌

有这些要素,架构才完整

北风

架构 架构师之道 架构方法

探秘百度移动应用质量管理与数据分析-InfoQ