写点什么

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

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

关注

评论

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

珠宝行业电子秤串口程序开发

108518

珠宝行业erp 珠宝天平 电子秤

gRPC学习之六:gRPC-Gateway集成swagger

爱好编程进阶

Java 面试 后端开发

Java-8新特性:学习如何使用Lambda表达式(二

爱好编程进阶

Java 面试 后端开发

Java-String-对象,你真的了解了吗?

爱好编程进阶

Java 面试 后端开发

Java字符串转码

爱好编程进阶

Java 面试 后端开发

Java 线程池原理分析

爱好编程进阶

Java 面试 后端开发

Java学习路线图(如何快速学Java)

爱好编程进阶

Java 面试 后端开发

自主研发,自主可控,星环科技“魔方底座”全面升级!

星环科技

星环科技创始人孙元浩:数据连接一切,开启融合数据云时代

星环科技

行业分析| 互联网医疗的发展

anyRTC开发者

音视频 实时通讯 在线医疗 远程问诊 互联网医疗

深入浅出聊Taier—大数据分布式可视化DAG任务调度系统

袋鼠云数栈

大数据 开源 分布式 前端

重磅!业界首个云原生批量计算项目Volcano正式晋级为CNCF孵化项目

华为云开发者联盟

云原生 Volcano 批量计算 cncf

Github神作!2021Java秋招高级面试指南,吃透至少阿里P6

爱好编程进阶

Java 面试 后端开发

HCIE云计算--灾备

爱好编程进阶

Java 面试 后端开发

Java程序员福音!蚂蚁+字节

爱好编程进阶

Java 面试 后端开发

使用APICloud & 科大讯飞SDK快速实现语音识别功能

YonBuilder低代码开发平台

前端开发 语音识别 APP开发 APICloud 科大讯飞

Java面试-volatile的内存语义

爱好编程进阶

Java 面试 后端开发

SFTP是什么协议?优势有哪些?与FTP有什么不同?

行云管家

运维 ftp sftp

天翼云发布基于欧拉双版本的自研操作系统——CTyunOS

天翼云开发者社区

应对“反洗钱”,银丰新融反洗钱自主监测系统为机构保驾护航

华为云开发者联盟

数据库 分布式架构 GaussDB 反洗钱 鲲鹏云

java进阶篇02、注解、反射与动态代理

爱好编程进阶

Java 面试 后端开发

基于Feature Flag的下一代开发模式

字节跳动数据平台

字节跳动 AB testing实战 ab测试

学习管理管理系统解决方案

低代码小观

学习方法 企业管理 企业管理系统 教育管理 CRM系统

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子

爱好编程进阶

Java 面试 后端开发

Java面试必备:阿里首发面试通关宝典震撼开源,文档

爱好编程进阶

Java 面试 后端开发

哪家堡垒机好用?过来人指点一下!

行云管家

数据库 数据安全 堡垒机

无聊科技正经事周刊(第2期):线上马拉松你会参加吗?

潘大壮

程序员 周刊 科技周刊

ForkJoin实现分而治之

爱好编程进阶

Java 面试 后端开发

Java8的这些集合骚操作,你掌握了嘛?

爱好编程进阶

Java 面试 后端开发

Java岗开发3年,公司临时抽查算法,离职后这几题我记一辈子(1)

爱好编程进阶

Java 面试 后端开发

TiDB 6.0 的「元功能」:Placement Rules in SQL 是什么?

极客天地

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