简单聊聊智能硬件的固件测试



1 前言

去年10月份开始,有幸加入智能硬件团队,参与设备固件端测试,主要涉及的测试类型有移动端sdk测试,设备端固件测试,sdk与设备之间的蓝牙测试以及基于业务实际场景的功能测试。对于我这样一个固件测试新手来说,刚开始的时候难免会有点不知所措,因此我写下自己对固件测试的一点经验和总结,以便后期回顾。

2 简化后的大致框架

简化一下所要测试的对象模型,大致框架图如下图,手机app下发命令给智能设备,智能设备反馈各个操作细节的信息给app,app与硬件之间的交互通过蓝牙传输;手机通过网络传输将收到的必要信息存储至服务器。

图1 简化的测试对象
图1 简化的测试对象

固件测试主要工作是对移动端sdk和固件端sdk的测试。移动端sdk可理解为移动app与设备交互部分的api,包括安卓和ios,是交付给app开发人员使用的。固件端sdk是运行在智能设备上的软件。移动端sdk和固件端sdk之间使用蓝牙协议进行交互。sdk所在的位置标出,如下图:

图2 固件的测试范围
图2 固件的测试范围

3 移动端sdk测试

移动端sdk测试,可实施的测试有功能测试,异常测试,api测试,压力测试等。

功能测试

功能测试主要结合智能硬件的使用场景,利用sdk下发各种命令以及命令的组合,前提是将sdk命令写成可视化界面,输入命令参数,点击发送命令即可使用。

异常测试

异常测试主要移动端sdk和设备交互过程中模拟蓝牙断开连接,移动端断网断电等,设备断电重启等各种中断异常。

sdk api测试

sdk api测试显而易见就是针对sdk的接口测试,帮助测试接口边界值以及回归时起辅助作用。

压力测试

压力测试是设置sdk向设备下发的指令条数,做到不断地让设备执行各种指令,包括单指令和多指令的组合,观察移动端sdk运行的情况。

4 固件端sdk测试

固件端sdk测试,可实施的测试有功能测试,异常测试,api测试,压力测试等。

功能测试

功能测试主要包括硬件声光交互测试,功能按键测试以及结合智能硬件使用场景的功能点测试。

异常测试

异常测试主要测试设备工作过程中各种异常中断导致设备停止工作或设备断电重启,保证异常动作结束后,设备可恢复工作,以及设备异常时可进入相应的异常处理分支。

固件api测试

固件api测试是针对设备sdk的主要接口做测试,固件代码完全由C语言编码实现,接口测试没有框架可以利用,写起来难度比较大,只能由固件开发引出几个重要的接口,并在他们工程里配置的接口测试主函数里编写测试函数和测试用例。

压力测试

压力测试是设置设备执行指令条数,并做到不断地让设备执行各种指令,包括单指令和多指令的组合,观察设备运行的情况,通过的最基本条件是设备不挂机。此外,可以配合做一些功耗测试,需要利用到专业的设备,如万用表和示波器灯。

静态代码检查

固件代码完全由c语言编写,代码量大,很容易出现代码缺陷,因此必须引入静态代码检查,有效规避内存泄漏,空指针等问题。采用cppcheck和oclint这两个成熟的c语言检查工具来做静态代码检查,cppcheck不检测代码中的语法错误,只检测那些编译器通常无法检测到的bug类型,目的是只检测代码中真正的错误。而oclint检查包含了大量语法错误的规则,以cppcheck为主,oclint为辅,二者互补,相得益彰。

固件端排查问题:

在智能硬件跑测试代码的时候,可以让它输出串口的调试信息,将所有的运行的调试信息都保存下来,方便后面定位问题。
1、在测试代码中怀疑可能有问题的地方添加串口打印信息,输出一些变量的值,大致可以判断出来是什么地方有问题,然后深度排查;
2、特殊的调试工具,使用示波器看看引脚输出的波形是不是正常的,抓高低电平的波形;万用表查看板子上的硬件电路连接是否正常,测电压电流值,然后分析出来,可能是什么地方有问题。

5 蓝牙测试

蓝牙传输属于移动端sdk和固件sdk之间下发指令和传输数据的桥梁,蓝牙传输速率和性能可靠性影响着固件测试结果。蓝牙测试可从以下几方面入手:

蓝牙协议栈最大的手机匹配数

最开始我们采用的蓝牙协议是ble,ble是低功耗但传输速率慢。后来我们改用了spp蓝牙传输协议(特定的蓝牙厂商提供),它的优点就是传输速率快,但存在蓝牙配对溢出的问题。ios端的溢出表现为n台手机与一台设备连接配对,当n超过蓝牙协议栈的最大连接数(10个)时,第11台以后的手机与设备非首次连接时,需要将原有的配对信息先忽略掉,才能成功连上设备。
后来我们联系蓝牙厂商,将规则改为采用FIFO(先进先出)的队列规则存储第10台以后连接的手机,移除队列第一台配对的手机,保证最近连接的手机非首次连接是正常的。ble没发现此类问题,这个测试点仅供参考。


图3 协议栈队列示意图



图3 协议栈队列示意图


针对性测试手机蓝牙模块的数据收发情况

用特殊蓝牙工具(蓝牙厂商提供,包括pc端和移动端),测试较长时间内(1-2个小时)pc端向移动端不断发送发送数据包,发包间隔可调整,发包间隔影响数据发送速率,测试不同间隔下的数据收发情况,选择最佳发包间隔。

蓝牙断开重连等异常情况

主要围绕多台蓝牙涉笔信号干扰、远距离蓝牙自动断开、断电重启导致蓝牙断开等。

6 总结

在接触固件测试的短短半年时间内,自我感觉get到的固件测试的知识还挺丰富的,不过测试的原理还是和软件测试相差无几,以上是我在固件测试过程中总结出的一点经验,还有许多考虑不周全的测试点,还需要在后续的测试中继续加强经验和总结。

免费领取验证码、内容安全、短信发送、直播点播体验包及云服务器等套餐

更多网易技术、产品、运营经验分享请访问网易云社区


相关文章:
【推荐】 MySQL Bug剖析之Slave节点并行复制死锁
【推荐】 一个内部增长案例的分享

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 157,298评论 4 360
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 66,701评论 1 290
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 107,078评论 0 237
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 43,687评论 0 202
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,018评论 3 286
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,410评论 1 211
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,729评论 2 310
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,412评论 0 194
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,124评论 1 239
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,379评论 2 242
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 31,903评论 1 257
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,268评论 2 251
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 32,894评论 3 233
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,014评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,770评论 0 192
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,435评论 2 269
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,312评论 2 260

推荐阅读更多精彩内容

  • 1、通过CocoaPods安装项目名称项目信息 AFNetworking网络请求组件 FMDB本地数据库组件 SD...
    X先生_未知数的X阅读 15,934评论 3 118
  • 企业服务市场的互联网模式或产业互联网经济才刚刚起步。如同一股暖流漫过冰川,融冰时代刚刚开始。 与以往我们看到的投资...
    布托青阅读 692评论 0 6
  • 瘦弱的寒冷在炙热的大地上缓慢爬行 阴暗的忧郁在拥挤的城市明目张胆的穿行 疲惫带着沉重的双眼皮 拖着没有灵魂的躯体 ...
    柳小落阅读 213评论 0 2
  • 最近一直在关注理财问题,为啥?因为穷! 愿望清单:1.有一个属于自己的小房子,装成自己想要的样子,每一个家具都不将...
    快乐的曹小曹阅读 329评论 0 0
  • 随着生活节奏加快 我们的内心也愈加浮躁 经常会发一些“无名火” 可人是不会无缘无故愤怒的 我们之所以跟人生气 往往...
    温馨请放肆微笑阅读 98评论 0 0