写点什么

移动端和 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:001965
用户头像
蔡芳芳 InfoQ主编

发布了 798 篇内容, 共 544.6 次阅读, 收获喜欢 2786 次。

关注

评论

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

全面剖析PHP-FPM+Nginx通信原理

书旅

nginx 正向代理与反向代理 PHP-FPM

HTTP方式文件分片断点下载

xcbeyond

Java 断点续传 下载 Range

最受 IT 公司欢迎的 30 款开源软件

程序员生活志

开源

C++ 借来的资源,如何还的潇洒?

小林coding

c c++ 编程 编程习惯 内存管理

如何有效提高技能?我推荐《刻意练习》

老胡爱分享

个人成长 练习

5步教你完成小熊派开发板贴片

华为云开发者联盟

后端 开发工具 华为云 小熊派 开发板

对于一款软件而言,完备的功能固然重要,但交互体验也不该被忽视

Philips

Java 敏捷开发 UI .net core 交互设计

昨梦记

波波夫

【得物技术】乘风破浪—优雅代码四部曲

得物技术

Java 代码规范

C++ 互斥锁和条件变量的性能比较

小林coding

c c++ 编程 并发编程

初识WebRTC

soolaugust

WebRTC

面经手册 · 第5篇《看图说话,讲解2-3平衡树「红黑树的前身」》

小傅哥

Java 数据结构 小傅哥 红黑树 2-3树

KPI考核存在的问题

石云升

读书笔记 考核 KPI 数字化管理

python操作word文件

wjchenge

Python word

二叉树-四种遍历方式的 Java 实现

多选参数

二叉树 遍历

高并发,你真的了解吗?

华为云开发者联盟

负载均衡 软件 高并发 操作系统 服务器集群

架构到底是什么?

架构精进之路

架构

MECE分析法

陈磊@Criss

测者陈磊

我们是如何逐渐变普通的?

架构精进之路

个人成长 认知提升

PHPStrom安装Xdebug及使用

书旅

php Xdebug PHPStrom

一、GraphQL,你准备好了么?

星期35

SICP,我的函数式编程启蒙书

Kurtis Moxley

读书 函数式编程

Docker 禁止美国“实体清单”主体使用,Docker 开源项目应不受影响

程序员生活志

Docker 互联网热点

AI+云,数字金融掘金客户微细分

人称T客

技术分享丨数据仓库的建模与ETL实践技巧

华为云开发者联盟

数据仓库 数据分析 数据模型 GaussDB ETL算法

年轻的樵夫哟,你掉的是这个免费 8 核 4G 公网服务器,还是这个随时可用的 Docker 实验平台?

newbe36524

Docker 微服务 .net core ASP.NET Core

了解JS压缩图片,这一篇就够了

华为云开发者联盟

Java html5 vue.js 大前端 npm

面试官问:运行时的内存布局

Java小咖秀

Java JVM

学过 C++ 的你,你不得不知的这 10 条细节

小林coding

c c++ 编程 编程之路

实战分享丨MySQL 与Django版本匹配相关经验

华为云开发者联盟

MySQL 数据库 django 华为云

推荐一款可视化+NoteBook工具

数据社

大数据 可视化 Zeppelin notebook

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