当被问及到"什么是生活中必需的?"大多数人会回答道:"食物,住房,衣服。"但是在一个世纪以前人们的需求就是这样,人类已经进化演变到,让我们的生活必需品的需求尽量简化,便捷。我们已经停止使用开关来控制灯光,停止在售货亭支付收取费用,我们一直在开发使用智能设备来监控我们的生活,想要更有效地让所发明出的智能设备服务于我们。
我们是怎么做到了这一点的呢?
那么我们首先应该对此有个了解,接着再来学习怎么测试他们。
什么是物联网(IoT)?
IoT是将各种信息传感设备,如射频识别装置、红外感应器、全球定位系统、激光扫描器等种种装置与互联网结合起来而形成的一个巨大网络。其目的是让所有的物品都与网络连接在一起,方便识别和管理。
IoT示例
物联网在现实生活中的一些例子如下:
#1)可穿戴技术:
例如像Fitbit bands和Apple watches这种小的电子产品能够轻松与移动设备进行同步。
这些电子产品能够获取到心率、睡眠质量等保障健康水平的必要信息。还可以将这些信息发送到移动设备显示出来。
#2)基础设施与开发:
通过使用CitySense等应用,更容易获得户外照明的实时数据,并且基于这些数据,设置路灯的打开或关闭。还有各种诸如此类的应用,以便在复杂的城市布局中控制交通信号或停车有效管理。
#3) 医疗保健:
用于检测病人健康水平的应用不胜其数。根据不同病人的实际身体水平数据,规定病人在一天时间内的不同的药物控制量。有一些移动应用程序,如UroSense,它可以检测患者体内血液的流动状况,并根据其需要给病人输液。与此同时,这些数据还可以通过无线网传送给各利益相关者。
物联网技术
以下是一些在物联网中使用频率较高的技术:
1.RFID (射频代码标签)和EPC (电子产品代码)
2.NFC (近场通讯),用于实现电子设备之间的双向交流。主要用于智能手机在非接触式的支付交易过程中。
3.蓝牙:主要用于移动设备较近范围内解决问题,这主要用于穿戴式技术。
4.Z-Wave:这是一种低功耗射频通信技术,主要用于家庭自动化,家电灯具控制等。
5.WiFi:IoT最常用的技术选择。使用LAN能够无缝地传输文件,数据和消息。
IoT测试
举一个例子,在医疗保健跟踪系统中,能够使用仪器检测健康水平,心率,液体摄入等细节,并且通过设备将报告发送给医生。该数据记录在系统中,可以根据实际需要在系统中查看相关历史数据。医生可根据数据决定药物摄入量,补液。这也可以从医疗设备连接到的其他的设备上,进行远程操作。
要测试这样的架构,我们需要了解多种测试方法,如
IoT测试方法
#1)可用性测试:
我们需要确保使用的每个设备的可用性。所使用的医疗保障跟踪装置能够在医疗中的各个方面得以使用。它应该足够只能,不仅可以发出信息,还能够将错误的信息也发送出去,并做出警告等。
同时,系统应该能够记录所有事件流程提供给用户,以便提高清晰度透明度。如果不能的话,系统应该把它们推送到一个数据库来存储它。
#2)物联网安全测试:
IoT安全挑战,即IoT是以数据为中心的所有设备/系统连接的操作基于可用的数据,当涉及到设备之间的数据交流时,会容易在被转移时被访问或读取数据。从测试的角度来看,当从一个设备传输到另一个设备时,我们需要检查数据是否被保护或加密。无论什么情况下,都会有一个UI,都需要确保有一个密码保护。
#3)连接测试:
由于这是一种医疗保健解决方案,因此连接在整个环节中起着重要的作用。系统必须保持始终可以使用,并应与利益相关者无缝连接。所以在测试中有两件事非常重要:
一方面当连接UP运行时,连接,传输数据,从设备接收作业任务应该是无缝的。还有一种是连接断开情况。作为测试人员,我们也应该测试离线条件。一旦系统不可用,则必须有一个警报,可以提示医生,以便他们可以人工开始监视健康状况,而不依赖于系统,直到它起作用为止。
另一方面,系统中必须有一种可以在离线时间内存储其中的所有数据的机制。一旦系统上线,所有的数据应该被传播,确保在任何突然情况下数据不被丢失。
#4)性能测试
当我们谈论医疗保健领域的系统时,需要确保整个医院的系统具有足够的可扩展性。进行测试时,一次由2-10名患者完成的测试,数据会传播到10-20个设备。当整个医院连接,180-200例患者连接到系统时,传播的数据远远大于测试数据。所以,作为测试人员,我们需要确保系统执行一致性,即使添加的数据是可传播的。我们还应该测试监控程序来显示系统的使用情况,使用电量,温度等。
#5)兼容性测试
从物联网系统的复杂架构来看,兼容性测试是很有必要的。对于IoT兼容性测试项目,如多种操作系统版本,浏览器类型和相应版本,几代设备,通信模式(例如蓝牙2.0,3.0)都是必需的。
#6)试点测试:
只有在专业的测试环境下进行测试才能确保产品或者系统工作正常。但是,当暴露于实际的条件和场景中,情况就可能会有所不同了。测试人员应该预想到这种情况,他们应该使用应用程序并在系统上给出反馈,而这些反馈能够使系统在不同的环境下得出不同的应急方案。
#7)监管测试:
一个医疗保健系统需要通过多个监管合规检查点。考虑有的产品通过了所有测试步骤但在最终合规性检查(监管机构进行的测试)中失败的情况,在开发周期测试一开始时,就满足监管要求是一个很好的做法。同样也应该是测试流程的一部分。
#8)升级测试:
IoT是多种协议,设备,操作系统,固件,硬件,网络层等的组合。
进行升级时,无论是系统还是上述任何的相关项目,都应进行彻底的回归测试和采取策略,以克服升级出现的相关问题。
物联网测试挑战
测试人员在物联网测试中面临的挑战如下:
#1)硬件软件网格
IoT是一种结构性网络,与各种硬件和软件紧密耦合。不仅仅是硬件,像传感器,通信网关等也起着至关重要的作用。只有在功能测试中不能完全证明系统。而在环境,数据传输等方面这些总是存在着依赖关系。因此,与测试通用系统(只包含硬件和软件)相比,物联网测试是一项繁琐的工作。
#2)设备交互模块
由于这是不同硬件和软件组之间的体系结构,所以在测试过程中必须接近各种实际的情况进行测试。当它们相互融合时,诸如安全性,向后兼容性,升级问题等都会成为测试团队的挑战。
#3)实时数据测试
正如我们之前所讨论的那样,对于这样一个系统来说,试点测试和监管测试都是具有强制性的,所以得到这样的数据也变得非常困难。在测试团队中,获得监管点这是非常困难的。按上边的例子来说,如果系统与医疗保健有关,那么这一步骤变得更加困难。所以,这对测试团队来说也是一个很大的挑战。
#4)UI
物联网分布在各个平台(iOS,Android,Windows,linux)的设备上。现在,可以直接在设备上进行测试,但是想要在所有的设备上能够进行测试这基本上是不可能的。我们不应该忽略使用不同设备访问UI的可能性。这是一个不容易克服的问题。
#5)网络可用性
网络连接起着至关重要的作用,因为IoT是基于网络才能以更快的速度将数据传达出去,所以IoT架构必须在各种网络连接/速度下进行测试。为了测试这一点,虚拟网络模拟器主要是用于改变网络负载,连接性,稳定性等。但是,实时数据/网络又总是一个新的场景,测试团队要是不用长远的目光来看的话发展会遇到瓶颈阶段。
IoT 测试工具
在测试IoT系统时有很多工具可以使用。
可根据目标进行分类,分为以下几种:
1、软件
Wireshark: 这是一个用于监视接口流量,目标主机地址等的开源应用程序。
Tcpdump: 与Wireshark相似,只Tcpdump不过没有GUI。这是一个基于命令行的实用程序,通过网络发送或接收TCP / IP和其他数据包使用户信息显示出来。
2、硬件
JTAG Dongle: 这与PC应用程序中的调试器差不多,对调试目标平台代码并逐步显示变量很有帮助。
Digital Storage Oscilloscope: 用于检查各种事件与Time Stamps,电源故障,信号完整性。
Software Defined Radio: 用于模拟大范围无线网关的接收机和发射机
IoT在发展中国家市场有着越来越多的需求,有很多发展的机会,物联网成为测试人员在测试中的一种必要技术指日可待。
启用IoT的小工具,智能设备应用程序和通信模块在研究和评估各种IoT服务性能和行为方面发挥了至关重要的作用。服务设计不佳和使用设备不当都会影响到应用程序的正常运行,最终直接导致对用户体验不利影响。
总结:
IoT测试方法根据面对的系统和架构有所不同,测试人员应该更多地关注"测试用户"(TA-A-User)方法,而不是根据需求进行测试。IoT测试中的另一个主要参与者是集成测试,如果集成测试计划准确并且足够强大能检测出系统的缺陷,那么IoT就是成功的。IOT测试可能一项具有挑战性的工作,但对于测试团队来说,这是很有必要的,而测试各种复杂的设备、硬件、操作系统对测试人员来说也是能够激起他们的兴趣的。