写点什么

如何解决移动 App 上架前的最后一公里?

  • 2015-12-14
  • 本文字数:2352 字

    阅读完需:约 8 分钟

和传统的人工测试相比,自动化测试具备包括节省时间和人力成本,提高效率,增加应用场景分析等等在内的优势。所以说,目前很多初创团队想要组建自己的专业测试团队应该不是明智的选择,在大的趋势下,众多移动 App 云测试平台拔地而起,在很大程度上已经能够帮助 App 开发团队解决测试上的瓶颈。百度移动云测试中心(MTC)不仅提供“自动化 + 人工 + 问卷调查”的测试组合拳之外,还有专业的人工测试专家团队帮助开发者解决移动测试上的难题。

12 月 12 日,在由百度开发者中心主办、InfoQ 协办的以“移动应用云测试,让你的 App 高深可测”为主题的百度技术沙龙活动中,来自百度开发者中心的移动测试专家就分享了百度在移动应用云测试的相关成果和进展,以及能为当下移动应用开发热潮做哪些实质性的推进。演讲嘉宾分别是百度众测和MTC 团队产品负责人施佳樑、百度平台测试部高级项目经理顾昕彪,以及MSG 手机百度平台化测试部测试架构师辛建康。

移动测试行业现状及解决方案

当前行业里移动App 的开发门槛越来越低,App 的种类和质量很难成正比。那么如何定义一款好的App 呢?施佳樑说,当然是要具备用户体验高、有逼格、没有Bug、稳定性和兼容性都很高、用户量大、能赚钱等等特性才好呢。但是说起来简单做起来难,整个成型过程离不开长期积累下来的“流程、工具和标准”的固定模式,而这些东西能够帮助开发者以比较低的成本、较高的效率开发一款满意的APP。

其次施佳墚还提到了,测试最终就是成本、效率和风险的权衡。目前移动App 测试可以分为开发自测、专业QA 测试、众包用户测试和真机自动化测试这几个类型。当然,这几种测试方式各有利弊,既有不同类型组合完成的,也有直接外包出去的测试方式。根据公司大小以及资金多少来确定使用哪一种测试方式。

最后一点施老师提到的关于监控,App 开发完、测试完发布以后,这个事情远远没有结束,更多的是要关注用户在使用产品当中到底能否正常使用,APP 在使用中的性能怎样,这些都是应用性能管理(APM)需要涉及的指标。

App 质量漫谈:“人工 + 自动 + 问卷”组合拳

来自百度平台测试部高级项目经理顾昕彪首先跟大家分享了移动应用市场迅猛发展的现状:移动应用占比上升,移动数据流量接近 60%;4G 用户成倍增长,4G 网络渗透率超过 20%;Android 平台优势明显,智能设备普及率上升等等。这些数据完全表明一个 App 的质量直接影响其口碑、宣传效果和发展,而兼容性、性能表现和崩溃率更是 App 质量的直观体现。一些数据也从侧面反映出测试团队的窘境:缺设备、缺技术、缺人。在设备、管理等硬件条件跟不上的情况下,光靠小团队自身的测试能力建设很难满足 App 快速迭代的需要。

这个时候的一些小团队就需要考虑使用云服务,来解决测试方面的难题。百度 MTC 拥有自己的质量积累,通过测试以及数据上的移动应用质量标准,通过不同的维度对外部 APP 进行自动化测试。MTC 的杀手锏“自动化+人工测+问卷调查”所具备的优势包括支持 Android 和 iOS,覆盖 10000+ 主流终端机型,1000+ 测试专员,能够为百度 140 多条移动应用产品线提供长期稳定的测试服务。同时顾昕彪也提到,App 质量本身分为 VE(验证)和 VA(确认)两个方面,仅仅靠自动化测试只能提高部分测试的效率,并不能完全替代人在测试里的作用。很多 App 虽然功能正确,但并未真正满足用户的需求,导致他们的发展受到了阻碍。为此,百度 MTC 专门提供了人工测试和问卷调研服务,通过用户的真实反馈为开发者提供有效的判断依据。

移动插件系统的质量保证

随着移动互联网一步步向各个传统行业渗透,移动化互联网的产业需求正前所未有的侵袭而来。由于业务线的融合,来自企业内部和外部的业务接入,如何快速有效的集成接入,内外部开发人员一致的协同开发,实现这一系列点需求的同时,又能对主 APP 安全保证,质量把控,这就需要移动平台插件化开发模式来解决这一问题。

辛建康也介绍了插件系统目前遇到的质量挑战:宿主兼容性(类冲突、崩溃 handler 注册、公共 SDK 使用冲突)、性能 & 兼容性(稳定性问题、多进程、OS 兼容性)和业务效率(对接插件方多,测试能力参次不齐;插件化模块 Bug 多,稳定性问题频出…)。面对这些质量挑战,解决方案肯定是有的,通过云监控收集,利用线上强大的分布式参数系统存储大量用户日志,将已配好的 code 在某一时间把日志抠出来就完成整个动态模块或者插件的下发。通过 MTC 这种非常强大的动态线下测试,可以保证用户基本功能在线下测试阶段是 OK 的。

有参会者提问说,如果宿主和插件在同一个进程内,插件异常怎么才能不影响宿主?辛建康回答说,插件本身性能问题不大,关键是为什么插件可以承担宿主做不到的事情。因为很多技术手段不能放在宿主里,放在宿主里可能有性能问题、稳定性问题就会造成大面积的问题。但是插件系统下,最大的问题是在于使用不当导致崩溃,可性能比较好,崩溃的时候里面有一套自我恢复系统,当发现有崩溃或者很多监控报警时,跟异常相关的监控会直接推动对应插件回滚,退化到 H5,所以安全稳定性上是没有问题的,同时尽可能的保证用户体验。

写在最后

像谷歌、苹果、微软等一些大的互联网公司都是非常重视移动应用测试的,百度在这一方面的投入相对也是巨大的,正如前面所提到的,MTC 主要是针对包括人工、自动化、性能、监控的广义测试为开发者开发 App 必须的工具,这也是为了更好迎合市场的需求。在最后的圆桌论坛上,有参会者问到由于手机系统和网络状况的不同,如何减少对测试结果的影响程度?顾昕彪回答说,MTC 很早以前就已经开始关注并着力解决这样的问题,在产品诞生之前每个移动端产品都有可能会面临这种问题,主要归咎于手机型号和网络强度等原因。MTC 平台则会做一些在信号很差、电量低之类条件下的模拟测试,为 App 打造最专业的测试流程,对于初创团队来说是一件事半功倍的好事。

2015-12-14 01:252132
用户头像

发布了 181 篇内容, 共 96.9 次阅读, 收获喜欢 207 次。

关注

评论

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

浅谈敏捷开发中的设计

czjczk

敏捷开发

原创 | TDD工具集:JUnit、AssertJ和Mockito (十六)编写测试-有条件执行测试

编程道与术

Java 编程 TDD 单元测试 JUnit

女朋友跟我吐槽Java中ArrayList遍历时删除元素的各种姿势

NotFound9

Java 架构 面试 编程语言 后端

如何更好的交谈(以英语为例)

董一凡

学习 生活

Java 走过的创新25年

田晓旭

Java25周年

Flink 1.10 SQL、HiveCatalog 与事件时间整合示例

Apache Flink

大数据 flink 流计算 实时计算

千万别学编译原理

池建强

编译原理

计算机超全核心技术知识

苹果看辽宁体育

后端 计算机基础

MyBatis之启动分析(一)

ytao

面试 mybatis

产品的本质,知道却看不到

Neco.W

产品 产品经理 需求 产品开发

一周信创舆情观察(5.25~5.31)

统小信uos

基础软件 操作系统 新基建

一文让你快速上手 Mockito 单元测试框架

mghio

Java spring 单元测试 Mockito

Docker 容器优雅终止方案

米开朗基杨

Docker

缓存与存储的一致性策略:从 CPU 到分布式系统

伴鱼技术团队

缓存 系统设计 cpu 系统架构 架构模式

这场大数据+AI Meetup,一次性安排了大数据当下热门话题

Apache Flink

大数据 flink 流计算 实时计算

如何挑选一份工作

池建强

求职 找工作

Mobaxterm (安装 、汉化、使用)入门教程

Geek_Offset

读懂才会用 : 带你见识 Redis 的 zset

小眼睛聊技术

redis 学习 程序员 架构 redis6.0.0

Shell 文本处理一则

wong

Shell sed grep

入门到放弃:理清前端技术概念

大伟

Java ecmascript 大前端 Node

2020年6月3日 对象与类

瑞克与莫迪

奈学教育:Hadoop源码编译全流程分享

奈学教育

分享一份阿里架构师 651 多个技术分支的脑图

奈学教育

大数据

我的个人知识管理方法

lidaobing

个人成长 知识管理 PKM

吉德热泵烘干机解放阳台,引领生活品质新风尚

infoq小陈

Kafka的生产者优秀架构设计

奈学教育

kafka 分布式

普通二本,毕业三年,北漂之后,我是怎么成为程序猿的。

why技术

个人成长 程序人生 随笔杂谈 北漂

CSS Tricks网站创始人作序推荐,这本书助你成为Web开发高手

图灵社区

CSS Web 开发 设计思维

JAVA后端学习路线

敖丙

Java 学习 程序员 Java25周年

手撕编译原理:汇编语言不会编

贾献华

Flink Weekly | 每周社区动态更新-20200520

Apache Flink

大数据 flink 流计算 实时计算

如何解决移动App上架前的最后一公里?_语言 & 开发_Xue Liang_InfoQ精选文章