浅谈软硬一体测试
一、引言
随着移动互联网时代的爆发,传统的软硬件分家的模式逐步被市场淘汰,终端厂家不再单纯的通过生产终端产品模式,而同步掌控操作系统、开发大量应用和服务来产生盈利,这种构建“终端+软件+服务”全产业链的业务体系,我们称为软硬一体商业模式。
“智能硬件”、“万物互连”等名词也时常出现在智能终端厂家(如各大手机厂商)、传统家电行业、新生代的物联网企业中,伴随着互联网和大数据的技术的高速发展,传统的硬件产品也被赋予了不同的定义。
二、概念
基于引言部分,我们谈到当前的软硬一体商业模式打造出来的产品,称为“软硬一体产品”,之所以称为“软硬一体”产品,在于产品包含了硬件设备本身,更包含了运行在硬件上的应用和云端的服务——白话来讲,就是厂家给客户提供的不仅是电子产品的器件和外壳,同时还提供了跑在这些硬件上的应用代码和云服务器上提供的服务代码。
三、分类
硬件测试主要对电子元器件、硬件设备、电子设备载体,通过各种辅助设备进行可靠性和性能的检测。
软件测试通过模拟使用者的用法、环境对系统或软件进行功能、性能、稳定性等测试,验证输入输出的准确性以及应用逻辑的准确性等。
针对软硬一体产品的测试验证,在某种程度上也同样区别于传统的软件测试和硬件测试。
软硬一体产品因囊括了硬件、应用、服务等一整个系统,其验收测试除了原有的软硬件测试以外,在测试场景和测试对象上还需要重点关注下面这些部分(传统软硬件测试覆盖不到的部分): 对于测试方案,当前业界有两种理解形式,分别是测试实现方案(基于软硬件交互测试理念)和测试耦合方案(基于软硬件产品一体化协同的测试理念)。
四、测试实现方案
在19年的测试开发大会上,小米的测试经理分享了一套软硬一体测试方案,即代表了当前业界基于软硬件结合的测试实现方案。 此方案解决我们测试过程中减少测试人员的主观干预,同时又要达到相应的场景覆盖率。
传统的测试模式:
这种测试方案,可以有效解决测试人员人工操作的人力、效率以及减少人为主观干预等问题。
同时局限性也很明显,例如测试类型窄;测试数据不完整;外部软件实时传输效率差、帧率不达标;外部软件运行本身影响移动端设备的性能这些问题。
解决传统测试模式局限性,使测试数据更准确、更客观,实现模拟用户操作又不影响移动端设备性能的自动化软硬一体方案。
整体测试架构采用的基于硬件,通过软件实现操作,完成业务端测试操作,并在前端进行显示。
系统架构
方案来源: 2019年 MTSC小米分享
通过机械手模拟用户操作点击、滑动、抓取等,高速相机对测试样品实时监控,高帧率录制case,达到完全替代人工的测试方案。
测试可以覆盖:
同时这套软硬一体化测试解决方案还可以完成对测试数据分析工作,通过对比标准进行分类统计,输出轻量级的测试报告,可实现功能:
1、对比标准判定
2、客观评分标准判定
3、版本趋势追踪分析
五、测试耦合方案
除了上面大家接触过的软硬件结合的一体化测试实现方案外,在当前智能终端交付方式的环境下,形成的软硬件协同作战模式,也就是软硬件耦合方案,我们的测试同样以软硬件耦合协同交付。
在这里需要引入另外一个概念,可以更好的理解软硬件一体化,那就是嵌入式系统架构,当前市场上的电子设备基本上都应用的嵌入式系统架构开发。
嵌入式系统结构分层
从嵌入式层级架构我们可以看到,业务的应用场景是建立在系统ROM上,同时通过硬件平台进行实现,但是需要让硬件平台乖乖听话,就需要BSP对其进行精准的驱动,以此相关联耦合的工作模式即催生了软硬件一体化的思维,同样我们建立在嵌入式系统架构的测试验收也就是软硬一体测试体系。
嵌入式分层验收方式(软硬一体测什么)
从硬件层往上看,通过硬件原理图我们需要关注验收的基本分为三个部分:
驱动层验收(BSP,包括硬件抽象层HAL),可以简化为理解成硬件的运行需要配置寄存器等读写操作,如通过I2C对寄存器进行读写操作,所以驱动层的验收主要集中在配置接口:
操作系统层的验收即ROM验收偏底层系统测试,目前大部分厂家很少对底层进行大量开发(除芯片或者操作系统公司),所以测试验收基本也处于对底层系统功能实现,但也有少量开发,比如利用系统时钟,在不同时间片内处理不同的任务,针对这类修改,需要响应的测试覆盖:
1.功耗测试(各类时钟唤醒是否符合预期)
2.时钟唤醒业务运行启动及退出是否符合预期
3.底层ROM各模块功能验收
应用层APP测试验收基本上是现在大部分产品测试的传统验收方案,此处就不作详细描述,现有的测试方案已经能够满足产品需求。
软硬件协同理念(软硬一体协同流程建立)
通过对嵌入式层级进行测试拆解分析后,再回顾我们的软硬件测试理念,就需要进行优化,软硬件一体化协同随之生成。
嵌入式架构中的硬件层和驱动层的验收,就很多依赖于软件的配置,在测试验收过程中,需要依据软件配置逻辑,同样在软件测试过程中也需要检测硬件器件呈现的效果和性能。
软硬一体化测试流程的解决方案可以按照如下维度进行:
1.建立系统化测试机制和流程
2. 建立过程信息共享平台
3. 建立定期沟通和协同机制
4. 系统稳定性和可靠性的测试流程
六、总结
本文对当前软硬件一体化概念进行简单描述,把当前业界使用的两类软硬件一体化测试方案作了简单介绍,并不涉及详细测试方案设计。
文/技术中心测试技术部 刘健