公务员期刊网 论文中心 正文

嵌入式操作系统快速测试系统设计

前言:想要写出一篇引人入胜的文章?我们特意为您整理了嵌入式操作系统快速测试系统设计范文,希望能给你带来灵感和参考,敬请阅读。

嵌入式操作系统快速测试系统设计

摘要:当前嵌入式系统测试大多是对测试用例单独编码,通过仿真器逐一调试完成,效率较低。为提高嵌入式操作系统的测试效率,提出了一种通过在PC端界面操作快速编辑用例、目标板卡端统一的处理执行测试用例、简洁高效的通讯报文、测试信息采集、测试用例可重用且支持快速保存导入、自动识别测试结果等功能软件,实现嵌入式操作系统快捷高效的测试方法。解决现有嵌入式系统测试效率较慢的问题,有效地提高了测试效率和质量,减少因测试用例编码错误而引起的测试错误。

关键词:嵌入式系统;快速测试;界面编辑用例;自动识别;用例可重用

随着科技的发展,芯片领域技术日新月异,嵌入式操作系统也迎来爆发式的发展。目前嵌入式操作系统广泛应用于航空、电力、轨道交通等各个行业,不同厂家的嵌入式操作系统是否稳定可靠急需有效的测试检测加以保证。传统的测试手段,需要大量的测试编码和调试,且由于操作系统结构复杂,测试用例屡屡出现编码的失误造成的测试失效的问题,效率低、测试结果可信度低,难以满足当前环境下的测试需求。本文提供一种嵌入式操作系统快速测试方法及系统,通过在PC端界面操作、快速编辑测试用例、目标板卡端统一处理执行测试用例的方式,实现了嵌入式操作系统的快速测试。其中测试系统PC端与目标板卡端采用简洁高效的通讯报文通讯,测试用例采用XML脚本实现测试用例的快速导入和保存功能,测试信息逐一采集,统一回收,并且能够自动识别测试结果。测试系统免除了复杂的用例编码过程,以及仿真器调试过程,有效地提高了测试效率,减少因用例编码错误而引起的测试错误。

1测试系统框架设计

现有的软件测试分为白盒测试以及黑盒测试,而白盒测试又分为静态测试和动态测试[1]。本测试系统采用“白+黑”的动态测试模式,即软硬件结合的集成动态测试模式。测试系统硬件由嵌入式系统目标板卡、PC机、串口和网口线组成。测试系统软件组成:目标板卡端:测试流程处理软件、网口接收发送软件、串口处理软件、报文协议解帧软件。PC机端:网口报文收发软件、组帧软件、用例编辑软件、用例处理保存软件、测试信息收集软件。整体结构设计见图1。测试系统具有以下特点:1)快速的测试用例编辑方法,通过PC端界面操作实现测试用例快速编辑。2)测试用例采用XML格式脚本,实现了测试用例快速保存、导入,以及测试结果与预期结果自动比对识别。3)统一稳定的处理流程。目标板卡端采用统一的处理流程,免除了由人工测试用例编码失误导致的测试问题。4)采用了简洁而高效的通讯报文格式,实现测试用例注入解析处理,并且满足多任务同步执行的测试需求。5)独立处理的测试信息采集系统,逐一采集统一回收,减少由于测试信息收集对测试结果的干扰。

2目标板卡系统设计

常见的嵌入式操作系统由硬件CPU内核个数,可分为单核系统以及多核系统,为保证多核系统同步与互斥功能测试的有效性,以及测试的灵活性,测试系统采用了多任务用例设置。测试系统支持每一个用例多任务同步运行,每一个任务允许执行多个接口函数,满足测试用例编辑的灵活性,保证测试的全面性。具体实现方法如下:首先,对目标操作系统各个接口函数做标准化、信息化封装。把操作系统各个接口函数标准化命名封装,不同操作系统在此处封装后即可开展测试。封装函数记录系统函数参数,以及系统函数返回值等测试信息并保存,方便其它接口函数调用。其次,对上述封装后的接口函数统一编号,编号作为接口函数唯一的识别标志。封装后的函数参数统一为字符串指针,在函数内部解析该字符串对应系统接口各个参数,并加以判别,如有异常,记录错误信息并返回。对封装后的各个函数接口以函数指针的形式做函数指针数组。最后,把接收PC端的测试用例报文解析出来,对应创建各个线程,以及各个线程所执行的各个函数和参数,以字符串的形式分别传递给各个封装后的接口函数,并且对应执行,把测试信息收集返回给PC端。

3报文协议设计

通信协议是通信系统的基础,一个好的通信协议必须确保系统间信息传输的安全性、可靠性、迅速性[2]。因为测试系统采用PC端与目标板卡直连的方式,排除了其它源的干扰,所以简洁、高效是本报文协议设计主要考虑的因素。为保证多任务用例同时运行,必须保证报文简洁,解析高效快速,测试用例报文采用依赖TCP/IP数据流通讯协议的独立的报文协议设计,达到快速组帧、快速解析的目的。报文设计包含测试用例所有信息,如报文头、测试所需创建任务个数、任务编号、当前任务信息长度、当前任务执行函数接口个数、函数编号、函数参数、函数返回值、任务编号……以此类推直至包含所有用例信息。具体设计见表1。

4例编辑界面与用例脚本设计

界面设计也称UI设计(UserInterface),通过有效的UI设计,能够让相关的软件质量显著提升,也能进一步提升软件应用的便利性,提升操作的人性化设计[3]。测试系统界面设计采用VS2010加Qt工具开发设计,Qt图形界面仿真包包含了非常成熟的图形接口函数库。采用Qt设计界面移植性强、易用性高并且运行速度快,有效降低后期运行维护成本。用例编辑界面设计优先考虑用例编辑的简单易用性。测试系统采用测试用例动态创建、删除、保存,用例任务动态创建等统一标准化的模式,减少操作的复杂性,使测试用例的编辑简单而高效。测试用例任务中接口函数设置采用高度开放的自定义模式,满足测试用例的个性化设计,并且开放了异常用例的用例编辑,使测试更具广度和深度。测试用例中每一个执行函数都有预期结果判别,对函数返回值与预期结果作比对,实现部分用例的自动化测试。测试编辑界面见图2:测试用例脚本采用XML设计,XML技术是一项将类型和结构置于信息上层的技术。XML可以用来结构化、存储和传输数据。一个XML文档就是一组具有一个或者多个命名属性的结构信息项的集合。将XML与脚本相结合,使用XML作为测试脚本语言,可以利用XML的简明性、平台无关性以及大量第三方提供的XML分析、开发和验证工具,高效、快捷地开发出易维护、易修改、可重用的脚本[4]。测试用例脚本按照整个测试流程设计,采用四级节点设计。以每一个用例为主节点,每一个任务为二级节点,每个任务中执行的函数为三级节点,每个函数的参数、返回值和预期结果为原子节点。采用四级节点设计用例脚本,使测试用例脚本的保存和读取更加简洁高效。测试用例脚本实例见图3:

5测试用例设计和测试实例

测试用例设计,分为黑盒测试用例设计和白盒测试用例设计。黑盒测试用例设计又分为等价类划分法、边界值划分法、错误推测法、因果图法等,而白盒测试用例设计方法又分为逻辑覆盖法和基本路径覆盖法,或者分为语句覆盖、判定覆盖、条件覆盖方法。可以根据不同的测试需求采用不同的测试方法。我们以NucleusPLUS系统计数信号量接口测试为例,每一个系统调用都作为一个测试项,采用等价类划分、边界值等方法分别设计测试用例。将信号量看成一种资源,随着信号量的创建、申请、释放、删除等事件的发生,信号量资源的状态处于不断的变化过程中,信号量状态变化路径是无穷尽的,从中提取出“基路径”来设计测试用例。具体用例设计如下:1)用例设计两个任务分别为任务A、任务B。2)任务A创建计数信号量M,申请计数信号量N,释放计数信号量N,删除计数信号量M。3)任务B创建计数信号量N,申请计数信号量M,释放计数信号量M,删除计数信号量N。用例执行过程见图4:通过界面设计的测试用例,经报文组帧软件组帧后,通过网口下发给目标板卡系统端。上述测试用例组帧后的报文见表2。测试用例通过测试系统解帧执行,最终把测试信息返回至PC端软件,结果见图5。与传统测试用例编辑相比,测试系统的测试效率至少提高了五倍,并且避免了由于测试用例编码失误造成的测试失效等问题。在保障测试质量的同时,大大提升了测试效率。

6结束语

嵌入式操作系统一般具有实时性强、外部交互复杂、依赖特定硬件平台、系统资源贫乏等特点,这些特点导致嵌入式软件测试难度较大,测试手段比较特殊,使测试工作面临很大的挑战[5]。本文介绍了一种嵌入式操作系统快速测试的设计和实现,包括测试用例的快速编辑、保存以及部分功能的自动测试,但是仍有一些不足,例如如何精确掌控每一个任务执行的时间点等。

参考文献:

[1]张玮.浅析白盒测试和黑盒测试[J].无线互联科技,2013(6):136

[2]郑璇.“UI设计”课程教学内容和课程体系改革研究[J].科教文汇(中旬刊),2019(10):96-97

[3]何欢,徐中伟,喻钢,等.基于XML的安全苛求系统测试脚本生成[J].计算机应用,2011,31(1):281-285

[4]席光清,冯汉华,许晓鸣,等.一个电力系统通信协议仿真器的设计[J].微计算机信息,1997(1):15-18

[5]张建伟,叶东升.嵌入式系统测试的发展[J].单片机与嵌入式系统应用,2011,11(2):5-7

作者:王振 张超永 李亚爽 刘静静 李国杰 韩悦 单位:许继电气股份有限公司

相关热门标签