写点什么

移动端和 Web 端测试覆盖策略

  • 2017-06-27
  • 本文字数:2408 字

    阅读完需:约 8 分钟

Eran Kinsbruner 认为,测试团队需要将测试工作与应用程序在不同销售区域市场的使用模式进行匹配,以满足消费者在所有数字媒介上都能流畅使用应用程序的期望。他制定了一套以数据为驱动对移动终端进行测试覆盖的方法和指标,通过综合考虑设备特性(如上市时间、屏幕参数)和一些测试相关准则来得到不同设备型号和操作系统的测试组合。

Eran Kinsbruner 作为 Perfecto Mobile 公司的移动业务布道者,在 2017 年春季的在线测试大会上发表了题为“根据业务情况建立合适的移动测试实验室”的演讲。InfoQ 正在通过访谈记录、摘要和文章的方式对大会的内容进行报道。

InfoQ 在 Eran Kinsbruner 演讲结束后对他进行了采访,探讨如何制定移动终端测试覆盖策略。

InfoQ:为何测试覆盖如此重要,为什么我们应该关注测试覆盖?

Eran Kinsbruner:当前数字媒介的复杂程度是前所未有的。桌面浏览器如 Chrome 和 Firefox 每个月都会发布公测版本或正式版本,而移动设备和操作系统版本也以同样的节奏不断地推出市场。每次新版本发布不仅仅会给实验室带来挑战,需要开发和测试团队对其进行针对性测试,识别回归测试内容并保持测试能够通过,而且还会引入新的特性和功能。现状是,消费者希望在所有数字媒介上都能流畅地使用应用程序功能,无论是移动智能手机、平板电脑、桌面浏览器还是物联网设备(IOT)。为了满足客户的期望,开发团队需要一个时时更新的测试实验室,以匹配不同销售区域市场的使用模式。倘若忽视测试覆盖,会影响客户口碑和市场竞争力。

InfoQ:如何衡量移动终端测试覆盖程度?

Kinsbruner:移动终端测试覆盖程度很难衡量,这就是为什么我制定了一套基于市场使用情况分析的方法,从不同角度看待市场上的移动设备。

要衡量移动终端测试覆盖程度,需要通过分析客户使用情况挑选出在应用程序销售区域使用人数最多的前 30 款移动设备。同时确保该列表中包含不同操作系统版本和设备上市时间(最新的、最受欢迎的、旧版的)的充分排列组合。

对于 iOS,我们认为当前有 3 个操作系统版本(iOS 10、iOS 9 代表旧版、iOS 11 Beta)应该包含在前面提到的待测移动设备列表中。问题是有些设备只支持 iOS9.3.5 或更早的系统版本(iPhone 4S、iPad Mini),一旦 iOS11 正式版推出,iPhone 5、5C、iPad 4 支持的操作系统也将停留在 iOS 10。对于 Android,情况就更复杂了。开发人员开发应用程序时必须跟进最新的操作系统版本,而要运行最新版本就必须使用 Nexus 或 Pixel 设备。其余的 Android 操作系统则遍布不同的 OEM 厂商且流行程度也各有不同。虽然三星和 LG 等厂商一直试图跟上 Google 的步伐,但也直到最近才在他们的高端设备上支持 Android 7.0——而这时距离 Android 7.0 发布已经过了将近六个月。为了更好地衡量和维护对市场上移动终端的覆盖程度,我制定了一套分为基础、增强和扩展三部分的 3 层方法论,并为每个销售区域制定了一个包含 32 款移动设备的列表。这些列表是基于前面所说的方法制定的,即综合考虑设备特性(如上市时间、屏幕参数)和一些测试相关准则来得到不同设备型号和操作系统的测试组合,基于数据驱动测试的方法对移动终端进行测试覆盖。该列表包括当前使用较多的移动设备和操作系统、旧版本的设备和操作系统,还有基于市场调研结果将来可能会流行的新平台。按照这个列表进行测试得到的结论对于开发人员和测试人员来说都是非常有意义的。

InfoQ:如何尽可能全面地测试终端用户体验?

Kinsbruner:提升用户体验的唯一方法,是尽可能地模拟用户真实使用环境、用户使用应用程序数据的过程和用户的基本面貌。应用程序开发人员应该要能根据分析结果和应用程序用户故事定义一套终端用户基本面貌,如:

  • 个人信息(性别、年龄段等)
  • 位置信息
  • 基于位置的网络情况(所支持地区的主要运营商)
  • 后台应用程序
  • 电池电量使用情况

一旦开发团队设置好上述条件,这将成为完美的测试配置,根据上面提到的方法选择合适的测试设备列表后就可以在这些移动设备上对应用程序执行真正的用户体验测试。

InfoQ:对于应该选择哪些移动设备和操作系统版本进行测试,你有哪些建议?

Kinsbruner:我强烈建议使用与市场数据相关的现有分析结果(如上述报告和列表),并坚持每季度对这些数据进行验证和修正。此外,我坚信凡事预则立,因此我也建议创建新的或利用已有的移动终端市场日历对即将发布的设备、操作系统版本或浏览器等进行预测。在上述报告中,我提供了自己创建的移动端和 web 端的日历,其中还包括操作系统版本的使用情况,可以指导用户何时应该将测试切换到最新的重要操作系统版本上。对于测试覆盖最重要的是要了解用户、了解市场,并确保测试实验室能够尽可能的模拟用户和市场。

InfoQ:如何改进移动端和 web 端的测试?

Kinsbruner:为了加快发布速度、增强创新性和竞争优势,你需要实现自动构建,自动化应尽可能涵盖工作流程中的各项测试,如功能测试、用户体验测试、性能测试等,并更快速地将结果反馈给开发人员。测试实验室应该保证移动终端的最佳覆盖程度,同时保证自动构建过程可以在无人值守的情况下正常运行,以确保流程的流畅性。每一次代码变更都应该触发一定级别的测试在部分平台上执行,同时返回给开发人员的结果必须可靠且有一定的预见性,以便开发人员做出正确的决策。技能和工具套件显然是整个测试过程的重要组成部分,而这些需要根据应用程序功能、团队技能等进行选择。如今的移动端测试环境中存在各种开源测试框架,而这些框架之间又有很大的区别,与此同时测试计划经常包含一些复杂的测试场景(如前面所说的用户体验测试),因此测试团队可能需要利用多个框架来实现整个测试计划的自动化,或者先进行全面分析后再决定匹配度最好的测试框架。

查看英文原文 Strategy for Mobile and Web Test Coverage


感谢张卫滨对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-06-27 19:002496
用户头像
蔡芳芳 InfoQ 总编辑

发布了 850 篇内容, 共 624.4 次阅读, 收获喜欢 2826 次。

关注

评论

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

性能优化手记下篇之【计费】

鲸品堂

性能优化 运维

企业竞争利器——知识管理

小炮

【网络编程知识】什么是Socket?概念及原理分析

呆呆敲代码的小Y

7 个 Flutter 开源项目,让你成为更好的 Flutter 开发者

坚果

6月月更

springboot,vue,es,activiti数字知识库管理系统

金陵老街

Vue springboot ES Activiti 知识库

探究Presto SQL引擎(3)-代码生成

vivo互联网技术

sql presto antlr4

java培训 @Autowired 的实现原理

@零度

JAVA开发

SAP 云平台 ABAP 编程环境的前世今生

汪子熙

Cloud 云平台 SAP abap 6月月更

【Python技能树共建】字符串方法

梦想橡皮擦

6月月更

软件设计本质

GalaxyCreater

架构 设计模式 架构师 系统 软件设计

Fabric.js 精简输出的JSON🎫

德育处主任

FabricJS 6月月更

Web Service进阶(五)SOAPBinding方式讲解

No Silver Bullet

6月月更 SOAPBinding

fomo3d区块链分红游戏系统开发(案例演示)

开发微hkkf5566

如何使用物联网低代码平台进行模型管理?

AIRIOT

物联网 低代码开发

spring4.1.8初始化源码学习三部曲之一:AbstractApplicationContext构造方法

程序员欣宸

Java spring 6月月更

Linux驱动开发_视频广告机开发、Linux进程编程介绍

DS小龙哥

6月月更

知名巧克力全球召回,区块链帮你摆脱“甜蜜陷阱”

旺链科技

区块链 产业区块链 食品安全 食品溯源

【愚公系列】2022年06月 面向对象设计原则(一)-单一职责原则

愚公搬代码

6月月更

PHP开发者福音,支持CRUD代码生成且前后分离的tp6+Vue3后台管理系统开源啦!

妙码生花

php typescript Vue3 thinkphp Pinia

WordPress 常规设置

海拥(haiyong.site)

WordPress 6月月更

AssertJ 的异常(Exception )断言

HoneyMoose

C#入门系列(七) -- 循环语句

陈言必行

C# 6月月更

微软成为规模化敏捷组织的16个关键因素

ShineScrum

敏捷 谷歌 规模化敏捷

【100个 Unity踩坑小知识点】| Unity中的 Development build 详细解析

呆呆敲代码的小Y

GIT 小白的指令合集

甜甜的白桃

git 版本管理 6月月更

重点亦难点?三个案例看数据分类分级如何有效有序进行

美创科技

数据分类 数据安全

中兴新支点加入龙蜥社区,共建操作系统开源新生态

OpenAnolis小助手

开源 龙蜥社区 合作 CLA 中兴新支点

Junit 测试中如何对异常进行断言

HoneyMoose

浅谈JavaScript原型和原型链

大熊G

JavaScript 前端 6月月更

建木持续集成平台v2.4.1发布

Jianmu

DevOps CI/CD 开源项目 gitops 自动化运维

移动端和Web端测试覆盖策略_方法论_Ben Linders_InfoQ精选文章