物联网设备软件测试:关键挑战与解决方案
“苏珊·哈里斯独自在家,突然门锁、窗户猛然关闭、电话停机。苏珊被入侵者困住——但这不是普通暴徒。入侵者是名为Proteus的计算机,一个学会推理的人工大脑。并以此恐吓……”
1977年电影《魔种》讲述AI失控故事,对人工智能对人类危险的描述虽带戏剧性,但对家庭自动化及其潜在故障有敏锐洞察。
从医疗、家庭自动化到交通、油气行业,物联网(IoT)快速增长。Gartner研究预测2020年将有204亿物联网设备联网。
当你在智能手表看电影、让家里升温到舒适温度、或许与烤面包机谈判什么叫“烤焦”时,请为测试者留一份心思。那些在关起门来辛劳、确保设备真正按预期工作的男男女女。
那么,测试物联网设备时软件测试者面临什么挑战?
首先,显而易见的——安全吗?
安全性
快速搜索物联网会带来大量讨论安全担忧的文章。但与其担心水壶在监视你,不如关注将新设备或可被攻破的设备加入受信网络的真实担忧。笔记本电脑可装软件保护,但物联网设备支持薄弱。许多设备有默认用户名密码,普通用户从不修改,使其脆弱。
测试者还须考虑物联网设备对互联网安全的更广影响。只需回顾Mirai僵尸网络攻击,利用数码相机、录像机等设备导致美国大片互联网中断,瘫痪Netflix、Twitter、CNN、Reddit等网站。
对测试者而言,设备间数据流、数据加密、测试软件完整性(若自动化)均为关键关注点。
有时测试者只能依赖用户保护网络。但廉价路由器常含较少安全措施,这给物联网测试者带来另一问题:复制设备将运行的环境。
复制环境
测试网站时,测试者易在主流浏览器、笔记本、平板、手机运行页面,基本覆盖90%用户使用场景。
然而,物联网设备复制用户环境难得多。设备用于家庭还是工作?网速快慢?网络上还有多少未知设备连接?设备需离开再重新加入网络吗?
抛开技术层面,设备将放在什么家具上?Apple HomePods曾被记录在处理过或上漆木桌留下白圈。虽非软件测试者严格问题,但显示环境多样性让测试者复制条件极具挑战。
因此测试者必须确保深度理解产品,尝试在测试中涵盖尽可能多的不同场景,包括设备如何与其他设备协作。
与其他设备协作
兼容性测试一直是测试者痛点,但在物联网世界成无数挑战。看看支持IFTTT设备上可创造的看似无尽交互——棋盘走位太多,无法分析测试每个设备每个版本每个环境。
测试者着手解决此任务的唯一途径:聚焦最流行操作系统与通信方式(如蓝牙)、最流行设备,使努力覆盖面最广,再转向小众项目。
成本
另一挑战或许最显而易见——成本。测试网站等简单事物相对快速廉价。但在不同环境、不同集成下测试物联网设备成本极高。时间是大因素,因测试者须覆盖众多基础,另一问题是可能需要专业测试软件。一些研究暗示:开发者缺乏代码安全审查、物联网App缺乏彻底测试,导致测试极其复杂。复杂带来成本。
电源与备份
不同于“关机重启”这一最常见IT解决方案,某些物联网设备在突然断电时会挣扎。测试者需确保测试设备断电后如何变化——特别是医疗或工业领域设备。
随无线充电增长这将少成问题,但在那之前变量须考虑。考虑智能入侵报警或安防摄像头,若系统因Bug、断电或断连失效,它们本质上就无用了。
设备如何甚至是否备份是另一问题,特别是考虑新或更新软件如何响应旧数据。
更新
固件是许多物联网设备不可或缺部分,开发者最爱推送新更新。但对测试者,更新可能带来巨大Bug头痛。标准电脑漏测Bug通常能简单测试修复、在造成太大损害前解决。但物联网设备漏测Bug可能有更深远生理后果。
看Nest恒温器2016年1月问题。前年12月软件更新导致Bug耗尽部分恒温器电池,致系统停用。最终公司推出九步修复,但彻底测试本可挽救用户寒颤与公司面子。
所以虽我们不面临家园变成魔种AI Proteus的危险;若软件测试者不采取适当预防,确实冒着被留在寒冷中的风险。
物联网技术