百度专家谈智能硬件测试探索
01
—
那什么是智能设备呢?
简单的说就是将硬件和app连接,通过软硬结合的方式,让传统设备附加到互联网,让其拥有智能化,并且通过移动软件app连接智能硬件,来实现对硬件的远程控制,例如共享单车、智能音箱、智能插座等几乎应用所有行业。涉及面更是广泛,从硬件中包含的芯片、传感器、无线模组到网络通信,再到服务端和集成应用,如下图:
02
—
智能设备如何和云连接?
根据上图中数据显示,结合实际使用的智能设备来选择不同的通信方式,可知:快递柜可采用4G的模式连接,其内置网络模块,方便不同地点均可使用,且支持多个箱体同时连接使用;智能家居大都采用wifi模式连接,在一个环境处于同一个局域网内更方便使用等等
03
—
智能硬件如何和应用层app连接?
现在比较方便的是一键配置方式,主要是使用蓝牙、smartconfig、ZigBee和声波配置。
蓝牙配置:比如蓝牙耳机、蓝牙鼠标,只能支持点对点连接,且对设备和app距离要求严格。
ZigBee配置方式:无法直接接入网络,ZigBee不是网络协议,低带宽,低功耗的一般采用ZigBee,因此无法直接接入互联网中,需要通过网关设备转换成网络协议。
声波配置:其主要的原理就是手机放出经过编码加密的声音,智能硬件通过麦克风录音,解码解密,然后配置成功
04
—
终端app如何控制智能硬件?
其中第一步可以用ap模式、smartconfig、ZigBee等方式,下面以smartconfig方式举例:
了解了智能硬件和app的关系后,结合目前应用和设备的多样性,所以QA就要制定策略来满足不同产品的测试,对于其测试不仅是软件和硬件的结合,还有中间网络和云的关系,测试关注点与单纯的app和硬件测试是有区别的。需要了解更多的测试方法,来形成软硬结合的测试框架。
硬件方面
传感器测试
传感器相当于人“五官”中的鼻子,与射频识别器、条形码、读写器和全球定位系统组成人体“五官”
基础参数指标:灵敏度、精准度和稳定性等
性能参数:响应时间、衰减时间等
环境指标:温度、抗干扰等
可靠性:寿命、平均无故障时间等
网络连接测试
确保设备和网络连接是至关重要的,必须保证始终是可用状态。所以测试时有两个方面需要验证:
可靠性:连接可靠不丢包,运行正常时,数据传输、数据同步必须是可衔接的,即使无法做到实时同步,也要保证在用户反应时间可接受范围内。
容错性:设备离线时,一旦离线,必须给出用户提示,告知设备状态,让用户去检测;离线前添加的数据在上线后可以继续传输并使用。
硬件可用性测试
确保使用的每个智能设备可用,因为后续都是大批量生产,设备中要么有wifi模块,要么是蓝牙模块等,无法确保每个硬件都是完好且耐用的,所以测试时使用足够多的设备测试更能发现硬件是否有缺陷,尽量保证不同设备和数据的数据同步准确,硬件有问题时发出警告。
硬件性能测试
由于硬件必须连接网络后才能具备智能的功能,所以对于弱网连接时硬件的性能是QA需要关注的。
响应时间:智能硬件对于指令的响应时间
边界测试:在各种边界压力情况下(网络、存储等)的响应
压力测试:长期使用和反复操作后,可否正常使用(如智能家居对此要求甚高,用户购买后使用频繁且不会频繁更换)
升级测试
智能硬件是使用多种协议、设备、操作系统、固件和网络等组合,进行升级时都要进行彻底的覆盖,比如覆盖升级和跨版本升级
功耗测试
随着用户需求提高,都会倾向于购买不需要实时充电的设备,这就需要对设备的耗电量进行测试。
集成应用测试
硬件中包含传感器、wifi模块等各种都与软件网络紧密相连,而他们之间所有的协议或者指令传输都是基于网络。因此,与普通软件相比,测试时场景相对繁琐。
除了常规app的测试方法外(功能测试、UI测试、易用性测试、性能测试等),以下是智能硬件测试时需要重点关注的部分。
业务/功能测试
满足需求、测试业务的多样性
接口测试
接口返回显示正确且对接口返回的容错处理
安全/隐私测试
网络安全,数据加密,权限保护,隐私保护等
兼容/体验测试
兼容不同系统、用户体验角度查看易用性
网络测试
满足用户在不同网络情况下正常使用
性能测试
测试cpu、内存、电量、启动时间、FPS等
以上是常规app基础测试内容。
智能硬件和集成应用app交互部分
场景测试
设备联动,多场景组合
不同网络下app和智能硬件的通讯如办公网络和家用网络
服务器出错时,设备和app分别反应情况
多用户绑定一个设备或者一个用户绑定多个设备,数据传输或者指令发送是否错乱
设备网络和app网络的交错,比如设备联网但app离线、设备离线但app联网等情况时app的提示是否友好且容易理解
设备多种情况比如设备繁忙、休眠、网络连接错误、网络切换、弱网等时,app的显示。
App控制设备使用过程中,app状态,比如杀掉进程、后台运行、清除数据、切换网络(对要求在同一局域网的设备)等。
接口测试
常规接口主要是app和服务器的通信,智能硬件产品的服务器承载两个端的请求,一般来说硬件产品与服务器会建立一个TCP/UDP长连接,定时发心跳包及其他通信内容包,另一端则是app端的接口。不同的硬件交互方式不同,比如快递柜靠推送来传达指令,比如智能充电是靠socket协议来传达,为了保证通讯的及时和准确,QA需要同时验证两边的接口。
安全测试
因为app是通过路由器连接智能硬件的,而且授权过程目前都很简单,攻击者完全可以攻破网络,获取硬件的接入点,获取给智能设备发送的指令来控制硬件的行为。
所以测试过程中应该检测a、数据传输时是否加密或者被保护 b、设备身份的认证 c、授权
兼容性测试
鉴于设备多样、版本号迭代更新、市面上不同的手机和不同的操作系统都需要和硬件通信才能实现智能设备的价值,所以QA人员务必保证智能硬件投入市场后,可供不同家庭的人使用。
升级测试
智能硬件和应用双方其中一个升级时,都需要兼容对方不同的版本。
以下是排列组合各种情况的测试地图:
综上所述,智能硬件产品测试思想和以往的互联网测试还是有一定的区别,我们要更多的关注在硬件上,但又不能忽视了软件,两者相辅相成,和网络排列组合多种测试情况,将是未来测试的新方向。
作者介绍
田晓娟
负责网盘客户端双端开放平台的测试,网盘中接入三方硬件是一个从0到1的项目,所以对软硬结合方向的测试做了一个简单的总结。