物联网(IoT)正在席卷市场。将传感器和软件嵌入到物理对象中以收集数据并通过无线网络传输数据的能力为监控制造,远程控制设备和自动化创造了新的可能性。该技术也给开发人员带来了问题。它让测试过程更复杂,还需要考虑安全问题,这需要更多时间。
越来越多的物联网设备
支持物联网的设备已经发展到看起来像任何其他云应用程序。代码在与外部数据源(如测量温度或湿度)交互的依赖项上运行。
正是这些依赖关系使物联网设备难以测试。测试既复杂又昂贵,因为它需要协作和实时数据共享。增加测试复杂性的是物联网数据的种类和数量,数据源的多样性以及组件的复杂性。
使物联网测试复杂化的因素
在物联网开发方面,测试仍然是制造商和集成商面临的最大障碍之一。以下是与 IoT 设备测试相关的一些特定问题。
1、通信协议:IoT 设备使用多个通信协议,包括消息队列遥测传输 (MQTT)、可扩展消息传递和状态协议 (XMPP)、约束应用程序协议 (CoAP) 和高级消息队列协议 (AMQP)。这些协议连接设备和服务器,并促进数据交换。测试工具应该能够使用这些通信协议来测试应用程序编程接口 (API),并确保它们与设备配合使用。
2、多个物联网云平台:IoT 连接应用程序托管在云服务提供商 (CSP) 环境中,例如 Amazon Web Services (AWS) 和 Azure IoT。需要针对每个云平台测试物联网设备,以确保可用性。具有不同功能的物联网设备会生成不同类型的数据,例如发送到云的结构化和非结构化数据。随着越来越多的设备被添加到云平台,实时测试变得具有挑战性,因为必须跨不同的云环境测试多个设备。
3、安全和隐私威胁:物联网设备极易受到外部攻击,物联网网络攻击也很普遍。大多数用户不采取任何措施来保护他们的物联网设备,因为他们认为制造商已经纳入了安全措施。应该有一个强有力的安全策略。此外,还必须检查设备的功能和性能。必须检查设备密码保护,数据保护,数据加密,软件更新和固件升级。
4、多样化的设备:由于有这么多不同的操作系统和设备,因此不可能测试应用程序的所有可能的兼容性和功能组合。每个 IoT 设备具有不同的功能,并且根据环境和平台的不同,其性能会有所不同。理想情况下,设备应使用不同的设备进行测试,并且良好的测试覆盖率将包括最受欢迎的平台。升级是另一个挑战。升级后,应在所有平台上的目标设备上测试软件和固件更新,以确保它们正常工作。
5、网络可用性:物联网的好处是可靠和快速的数据通信。这需要始终在线的网络性能,但物联网设备肯定会遇到网络中断和配置问题。测试挑战是在每种可能的网络条件下充分测试物联网的可靠性和性能。
6、实时数据测试:数据量、种类和速度对实时测试提出了挑战。物联网传感器生成大量数据,这些数据是非结构化和复杂的,因此需要清理以进行最终处理。物联网测试将确保他们能够处理不同类型的数据。使测试更加困难的是,在数据量可能随时变化的世界中,获取、组织和评估这些数据之前,在数据崩溃之前。
这些只是与物联网测试相关的一些挑战。还有很多其他的,比如硬件质量和安全测试,以及缺乏标准化。
构建和测试稳定、高质量的物联网应用程序似乎是不可能的,但可以通过适当的准备来实现。如果您计划测试,将它们分解为较小的任务,并确保测试环境可以处理云和虚拟化策略,则物联网测试可能会更容易。