基于HI的家用电器嵌入式软件功能自动测试平台的研究
2018-08-28王志辉张梦茹刘国光
王志辉 张梦茹 刘国光
珠海格力电器股份有限公司检测中心 广东珠海 519070
1 引言
嵌入式软件测试,从代码可见性角度分为白盒测试和黑盒测试。白盒测试即源代码可见;黑盒测试是代码不可见,也称为功能测试。从测试的状态上可分为静态测试和动态测试;从测试阶段上可分为模块测试、集成测试、系统测试、硬件软件集成测试[1]。家用电器嵌入式软件测试一般属于黑盒测试,重点测试阶段是硬件软件集成测试。本文研究的正是黑盒类的硬件软件集成自动动态测试。本自动测试平台的主要难点在于:一是根据家用电器产品种类的硬件接口特点,开发各种通用的采集或驱动下位机模块;二是建立一个简易通用的测试用例编制模型,并开发相应的编制测试用例的软件;三是选择一种通用性、可靠性强的软硬件通信平台。本文的研究是基于家用空调产品,设计研究出了一套通用性的家用电器嵌入式软件功能自动测试平台。
2 方案介绍
本方案包括两部分的设计:上位机软件和下位机各硬件模块。整体测试平台架构如图1。上位机主要实现的功能如下:①测试用例的编制、导入、解析等功能;②自动测试执行;③手动测试执行;④采集信息实时显示;⑤异常报告实时记录;⑥自动定制化出具报告。通过上述6点功能的设计可实现替代人工从编制完测试用例至出具测试报告中间的一系列工作。
下位机采用功能模块的设计理念。初步设计六大模块:DA模块、I/O采集模块、I/O输出模块、通信监控模块、遥控模块、电源控制模块。其中可分为通用模块和特殊功能模块。例如通信监控模块、遥控模块、电源控制模块等三个模块属于家用电器的特殊功能模块。通过上述6类模块的设计基本满足了家用空调产品所设计的硬件接口信号的采集。
上下位机通过网络通信进行数据交换,实现输入输出信号的闭环,从而实现自动化测试。
3 设计方案
3.1 硬件设计
本文第2部分中提到的硬件模块均基于同一硬件架构进行设计。即基于同一芯片LPC2134作为主控芯片、统一485通信接口、统一Modbus协议。如此设计可实现通信平台统一、程序设计可移植、核心电路可移植,很大程度上提高设计效率。硬件架构如图2所示。
图1 系统框架
图2 硬件电路架构图
图3 IO采集电路
由于主体电路相似度高的特点,下面以IO采集模块为例进行设计介绍。该模块采用LPC2134作为主控芯片。该芯片具备多达47个5V的通用I/O口[2]。本模块设计成24通道的电平采样。采集电路设计采用比较器芯片LM293ADR,该芯片可实现3.3V~12V的电平比较输入采样。具体电路如图3所示。为了实现与被测信号实现电气隔离,使用了TI公司的隔离电源芯片DCP010515B实现采样电路电源隔离,使用隔离芯片ISO7231C实现了采样信号隔离。
其他模块的核心电路基本和此模块一样。不同之处主要体现在接口电路。通过这样的设计思路和方案,可实现硬件设计的模块化、通用化,并可拓展进行硬件的二次开发,形成一个规范的硬件设计平台。
3.2 软件设计
上位机软件采用美国NI公司的LabVIEW开发平台。该开发环境是一款图形化开发语言,与常规编程语言有很大的不同,可以说专门为工程师开发设计的语言,专业性很强[3]。特别适合复杂功能的自动化测试软件的开发。
图4 软件部分逻辑框图
图5 系统参数配置文档
本自动测试平台软件部分可按逻辑结构分为四个阶段:通道配置阶段,用例设计阶段,自动测试执行阶段,测试结果保存阶段,如图4所示。
(1)系统参数数据库配置阶段
该阶段中,测试人员综合测试内容和检测信号,在通道配置信息数据库中配置相关的通道信息(如名称、通道号等),如图5所示。软件通过读取通道信息,发出相关信号可准确与硬件通道的通讯成功。这些通道被合理地按各个硬件模块划分了索引顺序和模块划分,软件对通道交互的数据整合处理起来就非常方便。与此同时,在通道更改的情况下,可直接更改配置信息即可,无需对软件有任何更改。
(2)用例设计阶段
用例设计阶段测试员结合需求文档使用用例编制模型设定的关键字指令和通道配置库中的参数进行用例的设计。系统采用了人性化的EXCEL编辑方式,通过独特的编程方法对用例进行处理。
用例编制模型主要是针对测试特点设计自动测试的对接模型,该模型包括水平扩展和垂直扩展两个阶段。通过水平扩展,增加用例模块中的参数;通过垂直扩展,增加用例模块,使用例集能够覆盖所有新增参数引入的组合。模型通过纵向模块的延伸和横向模块参数的延伸方法进行了用例设计关键字指令和指令参数的语法约定,将测试需求文档进行了Excel用例标准化。
(3)自动测试执行阶段
在此阶段中,设计了一套解析模型,用来划分模块,读取用例文档中的指令。这包括模拟工况指令、判断指令、计时模式指令、逻辑判断指令、公式计算指令、跳转指令等。根据这些指令,软件也做出相应的处理单元,使之独立处理。在这种情况下,软件的数据采集和指令发送就可设计成互斥,避免冲突。而且计时定时与其他模块并行处理,避免了时间的浪费,大大提高了效率。软件指令处理基本上是将数据交互的指令分别按一定顺序放到相关模块执行,结合通道数据库中的参数配置信息与相应的硬件进行通讯,再根据通信返回的数据在判断模块进行对比判断,这样最终就可实现自动化测试。测试界面如图6所示。
(4)测试结果保存阶段
测试结果主要设计了报告和测试记录两种形式。报告又设计分为自动出具报告和手动出具报告。即测试完成自动出具报告和中断测试临时出具报告。测试报告根据测试记录生成。测试记录即每条测试用例的测试结果的集合,其中每条测试记录包括测试过程数据,软硬件通信数据,测试分析和测试总结(具体如表1所示)。
测试报告和测试数据均可以Excel电子表格形式存储,便于查询。另外为了现场核查测试过程,回溯测试数据,还设计了历史查询功能。测试数据可以以曲线显示呈现。
表1 测试记录示例
图6 上位机测试界面
4 应用效果
该测试平台开发完成后,应用在家用变频空调软件功能自动测试。通过与手动测试对比,在同一套样机、同样的测试内容下,自动测试较手动测试平均缩短时间约45%。若是随着测试用例的标准化程度越高,测试效率还会进一步提高。另外,该测试平台在开发成本上也较采用购买NI采集模块的方式大幅度降低。本测试平台还存在部分功能缺失。例如家用电器显示的图像识别、嵌入式控制器故障注入测试等方面。也是需要后续完善的部分。
5 总结
该测试平台的设计与研究,提出了一种改变家用电器行业在软硬件集成测试阶段的功能自动测试的全新方案。既提高了测试效率,又解放了测试人员的重复性劳动。同时也对测试人员的水平提出更高的要求。