物联网是一个包含大量网络设备、传感器和计算基础设施的庞大系统,到2020年,通过物联网相互连接的的设备可能会达到500亿台,环境传感器、运动检测器、冰箱和恒温器都将能通过Wi-Fi、蓝牙、ZigBee、4G LTE等技术在物联网系统中相互连接。 那么,面对种类如此繁多,规模如此庞大,环境如此复杂的物联网系统,测试人员都有哪些挑战,必须具备哪些技能呢?
最近, Zephyr的副总裁Francis Adanza 在Dzone上发表了一篇文章,介绍了物联网系统在数据安全、不确定的网络连接和各种各样的嵌入式系统方面带来的全新挑战,以及测试人员所 必须具备的5项技能 。
在物联网环境下,各种传感器、监测设备以及智能终端可以通过多种协议接入网络,用户对这些设备的使用方式和使用环境也无法确定,因此为了保证设备运行的稳定性和可靠性,测试人员需要对产品进行灰盒测试。 也就是说测试团队不仅需要像白盒测试那样验证应用程序的功能,还需要像黑盒测试那样深入其内部结构, 为了做到这一点, 测试人员必须尽可能多地收集与设备API、第三方服务以及连接协议等内容相关的信息,精心设计测试用例,以便于覆盖尽可能多的用例场景。
嵌入式开发一直是一个比较低调的技术领域,相对于Web开发和企业级开发而言,嵌入式开发似乎很少在互联网上发出声音。但是随着智能手环、智能手表和智能眼镜等穿戴式设备的兴起, “嵌入式”这一概念迅速地以燎原之势再次成为了当今科技界的热点之一。
但不可否认的是,虽然嵌入式概念至今已经过了长足的发展,到目前为止依然没有拥有像iOS和Android这样知名的、被良好维护的操作系统和支持工具。虽然流行的Ubuntu和Debian都为ARM架构的自带MMU(Memory Management Unit,内存管理单元)设备进行过安装包的开发,但是对于开发者而言依然需要掌握交叉编译等基础技能才能入门嵌入式开发,而作为这一领域的质量把控者,如果物联网测试人员没有一定的嵌入式知识,依然无法做好全面的测试工作。
物联网实现了万物互联,其设备形形色色,规模空前庞大,协议各不相同,环境错综复杂,这意味着测试人员无法针对每一种设备,每一种协议,每一种使用环境构造全面的测试用例,即使理论上能够实现也需要付出极大的成本。为此,测试人员必须具备仿真的能力,常常需要在单一的物理设备上创建各种各样的虚拟设备和虚拟网络,从而模拟各种不同的用例场景,以达到测试的目的。仿真不仅能够节约时间和金钱,还具有物理环境所不具备的扩展性。
在虚拟桌面基础设施领域有一种现象称为“启动风暴(Boot Storm)”:所有人都试图在同一时刻(通常是早晨)登录他们的VDI解决方案,以致于后端系统响应很慢,用户体验很差。那么对于物联网来说情况是怎样的呢?
很多情况下,我们会面临同样的问题。例如,在智能家居领域,用户上班后家里的各种联网设备基本处于关闭或者待机状态,这时候数据流很小,后端系统几乎没有压力,但是当用户回家之后,接入家庭WiFi网络的各种设备便会运转,例如电视机、电脑、Pad和手 机,正如这时候通常会产生用电峰值一样,数据峰值也会在此时产生,从而对后端系统造成极大的压力。同样的情况在智能交通领域也会存在,例如因为上下班而造成的堵车高峰,因为节假日而造成的高速瘫痪。 这对于大部分物联网测试团队而言都是新的挑战。
物联网潜在的数据安全问题是众所周知的,但正如尼古拉斯·埃文斯在《Computer world》里所提到的:对于物联网供应商来说,安全通常是后考虑的问题。在物联网普及并渗透到人们的日常生活之前,或许可以这样做,但是随着大众对物联网的认可和使用程度越来越高,这已经成为了一个亟需解决的问题。如果说在物联网的发展前期,供应商需要通过创新吸引用户,那么在后期就必须通过稳定性和安全性留住用户。但现实情况是,面对规模如此庞大、种类如此丰富的设备、应用和服务,人们很难实现一种有效而又全面的防护策略。对 物联网测试团队 而言,这无疑具有极大的挑战 。
感谢董志南对本文的审校。
给InfoQ中文站投稿或者参与内容翻译工作,请邮件至editors@cn.infoq.com。也欢迎大家通过新浪微博(@InfoQ,@丁晓昀),微信(微信号: InfoQChina )关注我们,并与我们的编辑和其他读者朋友交流(欢迎加入InfoQ读者交流群 (已满),InfoQ读者交流群(#2) )。