物联网测试地图

发表于:2017-11-06 15:06

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:林冰玉    来源:51Testing软件测试网采编

  物联网的出现,给测试带来了很多有意思的挑战,使得众多QA开始重新思考传统的测试过程。
  例如,我最近测试了一个产品,在这个产品中的移动APP会跟连接的机器产生会话。这两个设备各种各样的状态给测试场景的设计带来了特别大的挑战。下面给大家介绍一个很有用的物联网产品测试框架——物联网测试地图,它可以帮助我们管理物联网设备多种排列的复杂状态。
  物联网测试因素
  当我们测试简单的web应用时,通常要考虑的状态有:
  服务器宕机
  HTTP请求超时
  网速慢
  授权和认证错误
  测试任何互联网应用的时候,需要警惕这四种状态。对于移动应用,操作的是移动环境,需要关注额外的几种情况:
  离线模式
  在线模式
  杀掉Activity
  后台行为
  语言
  地理位置
  我们再看“连接的机器”所带来的状态多样性,通常还有:
  机器WiFi断开
  机器WiFi连接
  机器繁忙
  机器休眠
  这意味着即使只有上述给定的状态集,整个系统在任何时间点上可能会有96(4x6x4)种状态。
  由于系统中状态转换会引入附加的约束,这些状态都不能当做独立的实体。例如,状态从“离线”变成“在线”很可能触发一系列的事件。
  上述因素还仅仅是冰山一角。随着对规范的深入了解,把不同的状态跟逻辑场景结合起来将会更加的复杂。
  对于静态系统的可变数据集,已有的web测试技术可以很好的用来抽取测试场景,比如all pairs(开源的配对测试工具)、等价类划分、边界值分析法等。这些技术通过淘汰的逻辑来优化测试数据集。
  例如,all pairs技术会淘汰重复的数据配对组合。但是,对系统的可变状态设计测试场景时,这些技术是不可靠的,废弃的系统状态会使得系统通讯不畅。当然,这些技术对于物联网系统中的单个单元还是很适用的。
  因此,非常有必要搞一个物联网测试地图。
  可视化地图
  大家肯定都在地理课上看过地图。但我这里所说的地图是针对测试场景的,它列出所有潜在的系统因素,在测试某个特性时可以从中抽取必要的测试场景。
  产品的每个系统的n种状态在同一个可转动的圆环中列出,逻辑上相邻的状态在环中相互挨着。非功能需求(NFR)在测试复杂集成的时候很容易被忽略掉,于是把它们在一个环中单独列出。
  下图就是我所说的物联网测试地图:
  下面以一个例子介绍地图的使用场景,该例子仅涉及移动设备和机器交互部分,需要关注的环是设备、机器和网络。
  把移动设备和机器固定在WiFi连接的状态,转动网络环,可以得到下面这些场景:
  未授权用户尝试访问机器会在App上触发“访问被拒绝”的错误消息
  服务器宕机和服务器错误会触发相应的业务错误消息——“程序出错,请稍后重试”
  响应超时可能有两种情形:重发同一个请求并显示“正在加载”图示,或者显示上面那样相似的错误消息
  非法请求会触发消息“请更新你的App”
  继续保持移动设备的WiFi为连接状态,转动机器环:
  当机器是离线模式的时候,App应该显示“请检查机器的网络连接”
  当机器繁忙的时候,弹出警告“机器繁忙,无法完成请求”
  当机器休眠或者在另一个网络上的时候,应该显示“没找到机器”等类似的消息
  然后,机器调到正确的网络,应该恢复移动设备和机器的连接
  切换机器环为WiFi连接,转动移动设备环:
  当移动设备离线时,应该弹出对应的消息或者禁掉操作按钮
  当移动设备恢复在线模式时,App应该发送相应的请求去连接机器
  当移动设备的网络从WiFi切换到3G,应该有什么样的行为?
  当用户正在试图连接物联网设备的时候突然接到电话,将App置于后台运行,这时候还能收到完整的请求还是需要从头开始发送请求?
  安卓设备杀掉一个在后台运行了一段时间的App,用户的最后屏幕状态还会保存吗?
  有本地化需求的App要在每个场景层面进行验证
  就这样,多次旋转地图可以扩展产生多个场景。尽管有些场景可能不适合当前的特性,有些甚至跟业务需求无关,这个测试地图还是非常详尽的。
  在实践层面,对于有多个QA在测试同一个物联网产品的团队,地图可以作为大家共同参考的手册。这个地图把工具、设备、场景和协议的排列以易于理解的方式呈现出来,覆盖了测试场景设计这个独特的需求,是一种非常高效的合作方式。
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号