我们已经不再使用开关来控制灯光,已经不再在报刊亭支付提交收费,我们一直在智能地监测我们的健康状况,更有效地跟踪车辆的移动,还有很多在列表中。
什么是物联网(IoT: Internet of Things)?
物联网是利用嵌入式电子器件、微芯片等连接车辆、家用电器、医疗设备,收集和交换不同种类的数据,被称为物联网。这项技术允许用户通过网络远程控制设备。
物联网在现实生活中实施的一些例子如下。
- 可穿戴设备。
可穿戴设备,如Fitbit手环和苹果手表,很容易与移动设备同步。
这些有助于捕捉必要的信息,如健康、心率监测、睡眠活动等。这些也有助于将数据、通知从移动设备上显示出来。
- 基础设施和开发。
使用CitySense这样的应用程序,更容易获得实时的户外照明数据,并根据这些数据,打开或关闭路灯。还有各种应用程序,以便在复杂的城市布局中控制交通信号和停车场的可用性。
- 医疗保健。
有许多应用,以便监测病人的健康状况。
根据基准数据,这些服务可以控制一天中不同时间的药量。有一些应用程序,如UroSense,可以监测病人体内的液体水平,并根据需要启动液体转移。同时,数据可以通过无线方式传输给各利益相关方。
物联网中使用的技术
以下是物联网中最常用的几项技术。
- RFID[射频代码 Radio Frequency Code]标签和EPC[电子产品代码Electronic Product Code]。
- NFC[近场通信 Near Field Communication]被用来实现电子设备之间的双向互动。这基本上是针对智能手机的,主要用于进行非接触式支付交易。
- 蓝牙。这是在短距离通信。主要用于可穿戴技术。
- Z-Wave。这是一种低功率射频通信技术。这主要用于家庭自动化、灯具控制等。
- WiFi:这是最常用的物联网选择。在局域网上时有助于无缝地传输文件、数据和信息。
测试物联网
让我们举一个医疗健康跟踪系统的例子,其中仪器监测健康、心率、液体摄入的细节,并向医生发送报告。这些数据被记录在系统中,在需要时可以查看历史数据。
医生可以根据这些数据启动药物摄入和液体补充。这可以从医疗设备所连接的任何设备[电脑或移动设备]上远程触发。
-
可用性。
- 每个设备的可用性。
- 足够便携,可以移动到医疗的不同部分。
- 足够智能,不仅可以推送通知,还可以推送错误信息、警告等。
- 记录所有的事件,以便向最终用户提供清晰的信息。如果它不能做到这一点,系统也应该把这些事件推送到数据库中存储。
- 显示通知和处理显示的问题。
- 显示数据、处理数据、从设备上推送工作任务方面的可用性应该被彻底测试。
-
物联网安全。
- 物联网是以数据为中心的,所有连接的设备/系统都是基于可用的数据来操作。
- 当涉及到设备之间的数据流时,数据在传输时总是有可能被访问或读取。
- 设备传输到另一个设备时是否受到保护/加密。
- 有用户界面的地方,我们需要确保有密码保护。
-
连接性。
- 必须一直可用,并应与老板和用户有无缝连接。
- 连接性,数据传输,从设备上接收工作任务,在连接正常运行时应该是无缝的。
- 连接中断的情况。不管系统和网络有多强大,都有可能出现系统断线的情况。作为一个测试人员,我们也应该测试离线情况。一旦系统在网络上不可用,必须有一个警报,可以提示医生,使他们可以开始手动监测健康状况,而不是依赖系统,直到它恢复。另一方面,系统中必须有一个机制,可以在离线期间将所有的数据储存在其中。一旦系统上线,所有的数据都应该被传播出去。在任何情况下都不应该有数据丢失。
-
性能。
- 2-10个病人进行测试,数据传播到10-20个设备。
- 180-200个病人被连接到系统时,被传播的数据要比测试的数据大得多。
- 作为测试人员,我们需要确保系统的性能是一样的,即使增加的数据被传播了。
- 测试监控工具,以显示系统的使用情况、电力使用、温度等。
-
兼容性测试。
- 多个操作系统版本,浏览器类型和各自的版本,几代设备,通信模式[例如,蓝牙2.0,3.0]是物联网兼容性测试的必要条件。
-
试点测试。
- 在实验室测试才能确保产品/系统工作正常。但是,当暴露在实时条件/步骤/场景中时,这可能会适得其反。
- 系统被暴露在真实领域的有限数量的用户面前。他们使用应用程序并对系统进行反馈。
合规测试。
-
升级测试。
- 物联网是多种协议、设备、操作系统、固件、硬件、网络层等的组合。
- 当进行升级时,无论是对系统还是对上述任何涉及的项目,都应进行彻底的回归测试/采取战略,以克服与升级有关的问题。
参考资料
- 本文涉及的python测试开发库 谢谢点赞!
- 本文相关海量书籍下载
- https://www.softwaretestinghelp.com/internet-of-things-iot-testing/
物联网测试的挑战
- 硬件-软件网
物联网是一个架构,它在各种硬件和软件组件之间紧密耦合。不仅仅是软件应用系统,硬件、传感器、通信网关等也发挥着重要作用。
只有功能测试并不能帮助完全认证系统。在环境、数据传输等方面总是相互依赖的。因此,与测试通用系统[只有软件/硬件组件]相比,它成为一项繁琐的工作。
- 设备交互模块
由于这是一个不同的硬件和软件的架构,它们必须实时/近乎实时地相互交谈。当它们都相互集成时,诸如安全、向后兼容、升级问题等就成为测试团队的挑战。
- 实时数据测试
正如我们前面所讨论的,试点测试/监管测试对于这样的系统是强制性的,要获得这样的数据也变得非常困难。
作为测试团队,获得监管检查点或让系统部署在试点是非常困难的。如果像我们的例子一样,系统与医疗保健有关,这一步就变得更加艰难。所以,这对测试团队来说是一个很大的挑战。
- UI
物联网分布在属于每个平台的设备上[iOS, Android, Windows, linux]。现在,在设备上测试可以做到,但在所有可能的设备上测试几乎是不可能的。
我们不能忽略用户界面从我们不拥有或模拟的设备上被访问的可能性。这是一个难以克服的挑战。
- 网络可用性
网络连接起着至关重要的作用,因为物联网是关于数据一直在以更快的速度进行通信的。物联网架构必须在所有类型的网络连接/速度中进行测试。
为了测试这一点,大多使用虚拟网络模拟器来改变网络负载、连接性、稳定性等。但是,实时数据/网络总是一个新的场景,测试团队不知道从长远来看瓶颈会在哪里发展。
物联网测试工具
-
软件。
- Wireshark。这是一个开放源码的应用程序,用于监测接口的流量,源/目的主机地址等。
- Tcpdump。这是一个类似于Wireshark的工作,只是它没有GUI。这是一个基于命令行的工具,帮助用户显示在网络上传输或接收的TCP/IP和其他数据包。
-
硬件。
- JTAG加密狗。这类似于PC应用中的调试器。这有助于调试目标平台的代码,并一步一步地显示变量。
- 数字存储示波器。这是用来检查各种带有时间戳的事件,电源中的故障,信号完整性检查。
- 软件定义的无线电。这是用来模拟大范围的无线网关的接收器和发射器。
对我们周围的发展中世界来说,物联网是一个不断增长的市场,有很多机会。当物联网成为测试人员在发展世界中生存的必要条件时,时间并不遥远。
启用物联网的小工具、智能设备应用程序和通信模块在研究和评估各种物联网服务的性能和行为方面发挥着重要作用。
启用物联网的设备和服务的不良设计会阻碍应用程序的正确运作,并反过来对终端用户的体验产生负面影响。
小结
物联网测试方法可以根据所涉及的系统/架构而有所不同。测试人员应该更加专注于 "测试即用户"[TAAS]方法,而不是基于需求的测试。
物联网测试的另一个主要角色是集成测试。如果集成测试计划足够准确和稳健,能够抓住系统中的缺陷,那么物联网就是成功的。
物联网测试可能是一项艰难/具有挑战性的工作,但是,对于测试团队来说,对如此复杂的设备、协议、硬件、操作系统、固件等进行认证也是非常令人兴奋的。