什么是物联网?
物联网是利用嵌入式电子、微芯片等技术将汽车、家电、医疗设备连接起来,收集和交换不同种类的数据,称为物联网。这种技术允许用户通过网络远程控制设备。
常见的物联网技术应用:
- 可穿戴技术:例如健康、心率监测、睡眠活动等等
- 基础设施:例如城市交通管理调度
- 医疗:例如监测患者体内液体水平,并根据需要启动液体转移等等
物联网技术
下面是物联网中常用的几种技术:
- RFID,即Radio Frequency Code,射频编码。扁鹊及EPC(电子产品编码)
- NFC,即Near Field Communication,近场通信,通常用于电子设备之间实现双向交互,目前在智能手机应用广泛,主要用于非接触式支付交易
- 蓝牙,即Bluetooth,在短距离通信场景中应用,主要用于可穿戴设备
- Z-Wave,一种低功率射频通信技术,主要用于家庭自动化、灯具控制,大家通俗所知道的智能家居这块
- WiFi,这是物联网最常用的技术,在局域网内,用于通信,文件传输、数据和消息等
物联网测试策略
下面我们看物联网测试常用的测试策略有哪些:
- 可用性,我们需要对物联网设备及应用程序的每一个功能、数据显示、数据处理、消息通知、警告信息等等各方面进行彻底的测试。
- 物联网安全,物联网是以数据为中心的,所有连接设备/系统都基于可用的数据进行交互,当涉及到设备之间的数据流时,总有机会获取到传输中的数据,从测试的角度来看,当数据在设备间进行交互时,我们需要检查数据是否受到保护/加密,还是从UI来看,我们也是需要确保有强密码进行保护
- 连通性,由于物联网是软硬复杂组网,并与人的关系更为密切,连通性起着至关重要的作用,所有的系统必须一直可用,并且可以与相关系统保持无缝连接。对于这些连接有两个非常重要的方面需要关注:
3.1 建立连接和运行时,设备的连接、数据传输和接收作业任务时应该是无缝的
3.2 关闭连接场景时,不管是主动还是被动关闭连接场景,必须有相应的通知或警报信息
最关键是不管是什么时候都不应该有数据丢失 - 性能测试,无论什么系统,都需要确保其具有足够的可伸缩性,所以性能测试是必备的测试策略
- 兼容性,从物联网系统的复杂架构来看,兼容性是必须的,需要兼容不同操作系统,同一类型操作系统的不同版本、浏览器类型及各自的版本、设备的生成、通信模块、甚至不同厂商的设备兼容等等
- 试点测试,就物联网而言,试点测试是必须的,只在实验室里进行测试是无法确保设备能正常的环境下运行的,所以在实际的环境下进行试点测试是确保物联网服务可用的必备步骤
- 第三方认证测试,对于很多物联网服务产品需要进行第三方认证测试,例如医疗系统,需要通过相关的监管机构要求的检测,只有这样才能确保该产品通过了相关监管机构的认证
物联网测试挑战
下面我们看下在物联网环境下的测试要面临着哪些方面的挑战。
- 软硬混合网
物联网是一种架构,它由各种硬件和软件组件紧密耦合而成的,不仅是软件的应用,硬件、传感器、通信网关等也起着至关重要的作用。
只有功能测试是不足以完成验证系统,在环境、数据传输等方面总是相互依赖的,因此与通用软件系统的测试相比,物联网应用的测试就显得更为复杂和乏味了。
2. 设备集成
由于物联网应用是硬件和软件的不同集合之间的体系结构,因此必须实时/接近实时的通信,当进行集成时,安全性、向后兼容性、升级等就会成为测试的一大挑战。
3. 实时数据测试
由于物联网应用的复杂性和特殊性,想要获得物联网系统的实时数据就显得非常困难或是成本巨大,但实时数据的测试又是确保物联网服务质量的至关重要的方向,因此这对于测试团队来讲是一件极具挑战的工作
4. 兼容性测试
由于众多智能众多的出现,物联网应用会分布在不同的平台上,例如ios、android、windows、linux等等,但我们不能忽略我们不拥有或不模拟设备上的测试,我们无法去在所有的设备上进行测试验证,即便现在有所谓的云兼容测试,但依旧无法满足我们实际兼容性测试的需要(一是直接成本不允许投入,二是无法投入这么大的工作量),所以物联网应用的兼容性测试也会是一个挑战
5. 网络可用性
在物联网中,网络连接起着至关重要的作用,因为物联网的基础设施是以更快的传输数据为基础的,所以我们需要在不同的网络环境下进行测试。
为了模拟不同的网络环境,我们需要改变网络负载、连接性、稳定性等,另外从长远来看,我们很难去预判出用户新场景的变化所带来的复杂性。
所以网络可用性的测试将是一个巨大的挑战。
测试工具
物联网测试过程中需要用到各式各样的工作,下面根据目标需求进行分类说明:
1. 软件
1.1 wireshark,这是开源的协议分析工具,是必备的神器,是最强大的分析工具
1.2 Tcpdump,这是与wireshark类似的工作,只是没有GUI,它是一个基于命令行,可以帮助我们捕获通过网络传输的tcp/ip和其他数据包
这两个协议分析工具,是从事物联网或网络通信领域必备的工具,但笔者以为,这是软件测试从业者必备的工具
2. 硬件
2.1 JTAG Dongle:这类似于PC应用程序中的调试器。这有助于调试目标平台代码并逐步显示变量
2.2 示波器:用于检查各种事件的时间戳,电源故障,信号完整性检查
2.3 软件定义的无线电:这是用来模拟接收机和发射机的一个大范围的无线网关
随着物联网的进一步发展,物联网测试将成为国内软件测试从业者职业生涯持续的基础领域之一。
支持IoT的小工具、智能设备应用程序和通信模块在研究和评估各种IoT服务的性能和行为方面发挥着至关重要的作用。
支持iot的设备和服务的糟糕设计会妨碍应用程序的正确功能,从而对最终用户体验产生负面影响。
小结
物联网测试方法可以根据其涉及的系统/体系结构而有所不同,但经典测试方法论是物联网测试的基石,所以测试人员应该更多的关注作为用户的测试方法,而不是基于需求的测试方法。
物联网测试可能是一项艰难/具有挑战性的工作,但对测试团队来说,确保这样一个由设备、协议、硬件、操作系统、固件等组成的复杂网络的质量也非常令人兴奋。