物联网的出现,给测试带来了很多有意思的挑战,使得众多QA开始重新思考传统的测试过程。

例如,我最近测试了一个产品,在这个产品中的移动APP会跟连接的机器产生会话。这两个设备各种各样的状态给测试场景的设计带来了特别大的挑战。下面给大家介绍一个很有用的物联网产品测试框架——物联网测试地图,它可以帮助我们管理物联网设备多种排列的复杂状态。

01 物联网测试因素

当我们测试简单的web应用时,通常要考虑的状态有:

  • 服务器宕机
  • HTTP请求超时
  • 网速慢
  • 授权和认证错误

测试任何互联网应用的时候,需要警惕这四种状态。对于移动应用,操作的是移动环境,需要关注额外的几种情况:

  • 离线模式
  • 在线模式
  • 杀掉Activity
  • 后台行为
  • 语言
  • 地理位置

我们再看“连接的机器”所带来的状态多样性,通常还有:

  • 机器WiFi断开
  • 机器WiFi连接
  • 机器繁忙
  • 机器休眠

这意味着即使只有上述给定的状态集,整个系统在任何时间点上可能会有96(4x6x4)种状态。

由于系统中状态转换会引入附加的约束,这些状态都不能当做独立的实体。例如,状态从“离线”变成“在线”很可能触发一系列的事件。

上述因素还仅仅是冰山一角。随着对规范的深入了解,把不同的状态跟逻辑场景结合起来将会更加的复杂。

对于静态系统的可变数据集,已有的web测试技术可以很好的用来抽取测试场景,比如all pairs(开源的配对测试工具)、等价类划分、边界值分析法等。这些技术通过淘汰的逻辑来优化测试数据集。

例如,all pairs技术会淘汰重复的数据配对组合。但是,对系统的可变状态设计测试场景时,这些技术是不可靠的,废弃的系统状态会使得系统通讯不畅。当然,这些技术对于物联网系统中的单个单元还是很适用的。

因此,非常有必要搞一个物联网测试地图。

02 可视化地图

大家肯定都在地理课上看过地图。但我这里所说的地图是针对测试场景的,它列出所有潜在的系统因素,在测试某个特性时可以从中抽取必要的测试场景。

产品的每个系统的n种状态在同一个可转动的圆环中列出,逻辑上相邻的状态在环中相互挨着。非功能需求(NFR)在测试复杂集成的时候很容易被忽略掉,于是把它们在一个环中单独列出。

下图就是我所说的物联网测试地图:

下面以一个例子介绍地图的使用场景,该例子仅涉及移动设备和机器交互部分,需要关注的环是设备、机器和网络。

1. 把移动设备和机器固定在WiFi连接的状态,转动网络环,可以得到下面这些场景:

  • 未授权用户尝试访问机器会在App上触发“访问被拒绝”的错误消息
  • 服务器宕机和服务器错误会触发相应的业务错误消息——“程序出错,请稍后重试”
  • 响应超时可能有两种情形:重发同一个请求并显示“正在加载”图示,或者显示上面那样相似的错误消息
  • 非法请求会触发消息“请更新你的App”

2. 继续保持移动设备的WiFi为连接状态,转动机器环:

  • 当机器是离线模式的时候,App应该显示“请检查机器的网络连接”
  • 当机器繁忙的时候,弹出警告“机器繁忙,无法完成请求”
  • 当机器休眠或者在另一个网络上的时候,应该显示“没找到机器”等类似的消息
  • 然后,机器调到正确的网络,应该恢复移动设备和机器的连接

3. 切换机器环为WiFi连接,转动移动设备环:

  • 当移动设备离线时,应该弹出对应的消息或者禁掉操作按钮
  • 当移动设备恢复在线模式时,App应该发送相应的请求去连接机器
  • 当移动设备的网络从WiFi切换到3G,应该有什么样的行为?
  • 当用户正在试图连接物联网设备的时候突然接到电话,将App置于后台运行,这时候还能收到完整的请求还是需要从头开始发送请求?
  • 安卓设备杀掉一个在后台运行了一段时间的App,用户的最后屏幕状态还会保存吗?
  • 有本地化需求的App要在每个场景层面进行验证

就这样,多次旋转地图可以扩展产生多个场景。尽管有些场景可能不适合当前的特性,有些甚至跟业务需求无关,这个测试地图还是非常详尽的。

在实践层面,对于有多个QA在测试同一个物联网产品的团队,地图可以作为大家共同参考的手册。这个地图把工具、设备、场景和协议的排列以易于理解的方式呈现出来,覆盖了测试场景设计这个独特的需求,是一种非常高效的合作方式。


  1. 此文发表于:TW洞见
  2. 英文原文请参考:IoT Testing Atlas

物联网测试地图(译)相关推荐

  1. 转:陈永康谈物联网测试

    https://blog.csdn.net/Testin123/article/details/84327263 物联网测试由低到高分为8层 一.芯片层 芯片的设计与制造已分工:晶圆的封测:在芯片测试 ...

  2. 物联网测试正面临四大难关

    物联网在度过了前两年的酝酿期与发展期之后,从去年多半都还只是概念性的想法,到今年已有许多真实产品与实际应用问世.而面对未来几年的发展性,市场专家均认为,物联网在未来几年至2020年前,肯定会出现高度成 ...

  3. 测试地图最短路径搜索(二):换个稍微复杂点的路径模板

    工具点此链接. 点击这里看下前面介绍的这种方案的基本原理. 测试地图最短路径搜索(一):把所有的辅助条件都铺到地图上 测试地图最短路径搜索(二):换个稍微复杂点的路径模板 测试地图最短路径搜索(三): ...

  4. 2015以色列物联网创业地图

    物联网,以及相关联的大数据.云计算.网络安全市场是继移动互联网之后的科技创新和创业热点,而以色列又是物联网时代硅谷之外的第二个创业圣地,有数据显示以色列的物联网创业公司数量已经超过300家. 近日投资 ...

  5. 物联网测试都有哪些挑战,软件检测机构如何保证质量

    当有人问"什么是基本生活必需品"这样的问题时,大多数人会回答"食物.住所.衣服".但是,这是一个世纪之前的情况.人类已经进化到开发出一些额外的生活必需品.我们已 ...

  6. 物联网测试完整解决方案 | 为你的芯片、模块、终端保驾护航

    来源:物联网智库 2017年被视为物联网商用元年. 窄带物联网标准正式冻结,国内运营商重点布局以及设备制造商的强力推动--自此,物联网规模化商用迈入了快车道. 然而,与传统的智能手机类似,基于NB-I ...

  7. python画江苏_Python 制作小游戏系列 - 中国省份测试地图

    这两天豆子在学习Python的pandas模块.这个模块可以很方便的处理各个格式的文本文件,结合前面学习的Turtle绘图模块,我们可以做一个检测记忆的小游戏,通过输入中国的省份名字,他会自动地在空白 ...

  8. 移动设备的配置测试(译)

    手机测试 手机软件应用在我们的生活中正逐渐流行起来.最近一个由安德里亚·史密斯在将来上发布的研究着重指出作为一个社会群体我们对我们的手机应用沉迷多少,以至于就像所说的"一些人承认一天用超过5 ...

  9. 测试地图长度和高度软件,‎App Store 上的“海拔测量仪-集指南针和GPS实时高度测距仪二合一”...

    海拔测量仪是一款外出旅游.户外达人必备的APP,拥有非常强大和准确的GPS定位功能,让你以最快的速度准确实时的获取到当前位置的的海拔.GPS位置.气压.经纬度坐标等信息,并且还内置指南针功能,这将是您 ...

最新文章

  1. 在抖音推荐算法组工作的体验
  2. 平行进化论再添证据 牙形刺远隔千里却发育模式相同
  3. Java - 排序大全
  4. win7系统如何开启udma功能
  5. K-th Number
  6. X264 输出的统计值的含义(X264 Stats Output)
  7. 中怎么提取时间中的月份_怎么提取图片中的文字?花上1分钟学会,轻松提取,按时下班...
  8. 设计没有标准,只有目标
  9. 设计模式的学习方法 | 摘自《图解设计模式》译者序
  10. 人体姿态估计的基本概念
  11. 2022-2028年中国有色金属市场供需前景预测及投资策略研究报告
  12. Ubuntu 安装 OpenRefine 并配置启动图标
  13. php 随机几率,php 随机概率程序算法
  14. 力扣随机数randX——透过现象看本质之二元独立随机分布
  15. ADS学习:统计分析——灵敏度分析、良率优化
  16. 如何使用python将中文标点转为英文标点?
  17. C++ Pointer指针
  18. mysql 中类似dateadd_MySQL查询中的DATEADD或DATE_ADD?
  19. 量化交易之vnpy篇 - 几种同步发单模式(中金所股指锁仓模式、最小单边轧差操作模式、双边同步模式,净头寸模式)
  20. Linux锁定账号,禁止登录系统设置

热门文章

  1. 江哥带你玩转C语言 | 06-C语言运算符
  2. Segmentation fault段错误出现原因分析及解决方法笔记
  3. 前雇员“叛变”,泄露了老东家 44.7 GB 的源码!
  4. ABAP中生成GUID、UUID的方法汇总
  5. android通过sd卡升级步骤,安卓手机用储存卡怎么升级具体步骤 ????
  6. 封号令人头秃:金融类应用谷歌上架问题
  7. 互联网早报:字节跳动内测抖音拍卖 拟用于珠宝、酒水、奢品等类目
  8. PHP开发者必备的50个库/框架【2019】
  9. 华为NE40E安全防御体系结构
  10. C++解析JSON格式数据