嵌入式终端设备的一种自动化测试技术

时间:2022-04-16 05:08:27

嵌入式终端设备的一种自动化测试技术

【摘要】本文主要探讨一类嵌入式终端设备的自动化测试技术。鉴于嵌入式软件依赖硬件运行的特殊性,本文提出一种自动化测试的模型――U模型,本模型提供了嵌入式系统自动控制和自动测试的一种解决方案。

【关键词】嵌入式系统;自动化测试;U模型

1.自动化测试概况

1.1 趋势

自动化测试实际上是软件测试的一种,以往的测试工作都是通过测试工程师手工执行测试用例完成的,而自动化测试则是通过执行测试程序自行完成并自动检验测试结果。随着当前测试技术的发展,自动化测试越来越多的出现在人们的视野里,越来越多的吸引更多的科技人员的目光。由于自动化测试可以大大节省测试劳动力,节约测试时间,大量缩短项目周期,为公司节约很多研发成本,对企业经营带来极大的效益。因此,越来越多的企业开始重视和发展自己的自动化测试技术。

1.2 现状

我们工作中接触的嵌入式终端为无线通信领域终端,具备语音通信、数据通信等业务功能。该种设备对于极限距离的业务测试要求非常严苛,需要经过成百上千甚至成千上万次的测试和长时间(往往是连续七天以上)连续不间断的运行,来验证产品的可靠性和稳定性,如果仅依靠人工操作,将会非常消耗人力,而且几乎是不可能完成的任务。因此探求一种自动化测试方法迫在眉睫。我们所研发的通信设备属于嵌入式终端设备,对于嵌入式系统的自动化测试,在业界也是非常少见。在此,我们提出一种自动化测试模型――U模型,来实现嵌入式终端设备的自动化测试。

2.自动化测试模型

2.1 U模型提出

图1 U模型

根据我们的研究,提出了一种命名为U模型的自动化测试技术。如图1所示,左边框图属于控制系统,控制PC为一台工作中使用的个人电脑,上面安装着windows操作系统。处于顶层的业务测试程序是根据测试被测系统功能、性能、各种质量属性等测试用例编写的测试脚本。处于第二层的控制台软件自行开发编写的软件。右边框图属于被测系统,处于顶层是被测业务是我们将要测试软件特性,处于第二层的是被测软件的应用程序,处于第三层的是被测系统所使用的操作系统。再往底层一点则是控制系统和被测系统都支持的通信接口驱动和通信硬件接口。

2.2 U模型原理

接下来我们来介绍一下U模型的工作原理:

(1)业务测试程序负责下发测试指令以及检验被测系统的表现是否符合预期,相当于软件测试中的测试用例的一样。

(2)控制台软件是一款在PC上自行开发的软件,它包括对业务测试程序的解释执行功能、脚本工程的管理功能和脚本编辑等功能。另外,还负责把测试程序下发的指令通过调用成windows操作系统API的方式,封装成底层通信接口能使用的数据帧。

(3)Windows操作系统,控制台软件运行在其之上,使用它提供的各种操作系统服务,特别是I/O管理服务。

(4)通信接口驱动实现通信接口硬件初始化、数据存储、数据发送、数据传输和数据接收等。

(5)通信硬件接口是PC机上的通信接口支持类型,一般为串口、网口、USB口等。被测系统上也需要有同样的接口类型。

(6)在被测系统中,各层软件的作用其实与PC控制系统上差不多,在此就不再赘述。值得注意的是,被测系统的业务应用处理程序或者被测功能模块,在接收到控制系统下发的命令后,会给予一定响应(比如某些设备状态、参数的改变,或者返回指定的数值给控制系统)。这些响应的信息通过被测系统的通信接口返回给控制系统。这样就完成了控制系统和被测系统的交互。

另外,还需要事先定义好一个命令集以及各条命令所带来的所有可能的预期结果。这个命令集和它们所返回的预期结果是业务测试程序需要使用和检验的,正是这些命令集和结果集构成了自动化测试用例集。

通过以上的系统建模,我们就可以通过测试脚本与被测系统完成交互、监控和测试了。由此,可以达到测试被测系统的目的。

基于以上的讨论我们可以看到,U模型中各层完成的功能各自不同,缺一不可,每个系统中都是高层使用底层提供的服务完成本层的工作。控制系统和被测系统上运行着两个不一样的操作系统,实际上也完成了不同操作系统之间的数据通信。

3.项目应用

根据上面提出的U模型,我们搭建了一个自动化测试平台,硬件上包括个人工作电脑PC机和待测终端设备A,两者通过通信接口――串口来完成通信及数据交换。如图2所示:

图2 应用组网图

同时,我们开发了一个控制台软件,其操作界面如图3所示。

从图3中可以看到,左边红色框中的“业务测试脚本列表”是一系列测试脚本文件的树状图,实现的是脚本工程的管理,在脚本执行完成后,到底是成功还是失败,会有结果状态显示在被执行脚本的后面。中间红色框为“脚本编辑和查看区”,实现的是脚本编辑和查看功能。最右边的框是“脚本输出区”,是调试脚本的输出和执行结果输出显示的地方,这里也有一个结果统计功能,比如本次测试执行了多少个脚本,成功了多少个,失败了多少个,都会在这里有所体现。在这个控制台软件界面上,我们开发了语音业务测试脚本,实现了语音通话的各种业务的自动化测试。

图3 控制台软件界面

另外,在被测的终端设备上,我们定义好一套命令集以及返回值列表,命令集比如重启命令、读取工作模式命令、设置音量大小等等,约100多条命令。返回值列表是对一系列命令的返回值定义了特殊的含义,比如0表示操作失败,1表示操作成功等。这样一个命令集以及返回值列表来自于测试工程师,由测试工程师提供所需要使用的测试命令及返回值,由控制台软件开发工程师和终端软件开发工程师来共同实现。

完成以上的工作,一个嵌入式终端设备的自动化测试平台就搭建完成了。在这个测试平台上,我们的测试工程师开发了语音业务测试脚本,实现了语音通话的各种业务的自动化测试。在完成业务测试脚本编写和调试之后,就可以根据测试任务勾选上所需要执行的脚本,直接执行就可以了。

4.推广意义

U模型这种测试技术,具有通用性,可以广泛应用到各种嵌入式系统终端设备的自动化测试中去。把自动化测试引入的项目中去,既可以大大节省人力成本,又可以完成手工无法完成的穷尽测试,对产品的质量把控可以更严格,对于提升产品质量具有伟大的意义。

参考文献

[1]黄鹏,廖红华,嵌入式系统综述[J].电工技术,2006.

[2](美)DanielJ.Mosley,(美)BruceA.Posey.软件测试自动化[M].邓波等,译.机械工业出版社,2003.

作者简介:

韦卉(1981―),女,广西梧州人,大学本科,软件测试师,现供职于广州海格通信集团股份有限公司,研究方向:嵌入式软件测试。

吕金华(1982―),女,广东江门人,大学本科,软件设计师,现供职于广州海格通信集团股份有限公司,研究方向:嵌入式软件设计。

上一篇:如何做好国有农垦企业职工思想政治工作 下一篇:云计算在高校计算机实验室建设中的应用探索