随着物联网的快速发展,智能硬件产品已越来越多地出现在市场上,公司也在开发几款重量级的智能硬件产品,作为其中一个产品的QA,分享下软硬结合的产品的测试方法。
何为智能硬件,为什么智能硬件是趋势,可以看下面的图:
那么接下来讲讲智能硬件的测试。再看一个图:
这是传统互联网软件产品的架构,智能硬件的呢?如图:
图中可以看到,多了一个硬件的模块,服务器中多了一个处理硬件信息的模块,测试的类型多了,特别是硬件部分,应该怎么针对地测试呢?首先规划下测试类型,我认为主要包括以下几类:
系统测试
接口测试
重点测试
系统测试
这部分大家应该很熟悉。按照测试流程来走就好,需求分析、测试计划、测试用例及评审、冒烟测试、执行测试若干轮、回归测试、测试报告等步骤走完。主要测试的对象是以应用为核心,兼测试服务器及设备的功能。
目前大家主要在做的是这部分的测试,做好这部分的测试,产品80%的bug都能发现。
接口测试
以前的接口测试主要是app和服务器的通信,主要以http请求为主。
智能硬件产品的服务器承载两个端的请求,一般来说硬件产品与服务器会建立一个TCP/UDP长连接,定时发心跳包及其他通信内容包,另一端则是app端的接口。
以java为例,测试长连接的服务端,socket写一个客户端,用现成框架mina/netty写一个客户端等,具体代码就不给出了。http请求就不赘述,方法太多了。
这部分的测试最好和开发同时进行,但新项目的进度和需求缘故,一般都会等到产品稳定进行,这块发现的问题很多都不是严重的问题,但是一旦有个重要问题就会导致产品功能无法使用,好在服务端的bug修复都会很快。
核心测试
什么是核心测试?试想一下智能手环运动检测不准确,OBD会使静止的汽车亏电,智能血压计检测的血压不对等等问题,那么这个产品一旦上市就会失败,任何的bug修复也无济于事。所以这块的测试非常重要。
以下举几个核心测试内容的例子:
耗电测试,最简单是接一个万用表,实时查看设备的电量情况,但是你必须实时查看,也没有历史记录。最好是准备一个专用的功率电量测试工具,有交直流电,有报表输出,在各种配置下的耗电情况都能自动记录。这块主要针对手环、OBD等需要电池的产品。
GPS测试,户外的智能产品大部分都配备了GPS,GPS信号强度和周围环境有直接关系。隧道、高层建筑、天气等都会干扰GPS定位,另外设备启动关闭点也是GPS容易发生问题的时候。
干扰测试,很多智能硬件产品会插在其他设备上,如电视盒子、家居控制设备、汽车设备,一定程度上会对其他设备产生干扰,甚至影响其他设备的正常使用。
类似的功能还有很多,这些是智能硬件产品的核心,如果这些功能出现问题,产品就会死掉,所以这部分需要重点测试,投入最多的人力进去。
综上所述,智能硬件产品测试思想和以往的互联网测试还是有一定的区别,我们要更多的关注在硬件上,但又不能忽视了软件,两者相辅相成,也将是未来测试的新方向。