关于嵌入式软件测试技术分析

时间:2022-10-22 09:22:30

关于嵌入式软件测试技术分析

摘 要 随着嵌入式技术的不断发展,嵌入式系统多个规模及复杂性有所提升,从而促使软件的可靠性遭受巨大的挑战。文中以嵌入式软件测试技术为研究视角,介绍了嵌入式软件测试流程。

【关键词】嵌入式 软件测试技术 分析

嵌入式系统是指把设计完成的多项功能的硬件和软件紧紧耦合在一块儿,以此监控、管理或辅助其他设备的正常工作。嵌入式软件是以嵌入式硬件平台为基础,把用户预期目标引入计算机系统。该软件的主要特征为功能单一,嵌入式系统无法同时载入多个程序,通常情况下只会执行某一固定程序。同时该系统有严格的约束力,系统对于成本、可靠性、功耗等要求严格,所以一般的嵌入式软件可以裁减,便于更好的使用。

1 简述嵌入式软件测试的特点

嵌入式系统会对所处的环境做出相应的反应,可以在特定的时间内算出结果。开发嵌入式软件必须设定相对应的开发环境,给予相应的软硬件且确保软件的实时性。嵌入式软件的开发环境与测试工作都与一般的软件存在差异。嵌入式软件又称作为交叉测试,测试的目的是确保嵌入式产品可以满足用户的实际需求。嵌入式软件与普通软件测试的区别如下:①嵌入式软件测试与其相应的测试环境有着必然的联系,嵌入式软件测试中对其软、硬件的兼容性有严格的要求。②嵌入式软件测试必须保障软件系统的安全性和可靠性。必须把系统的实时响应问题考虑在内,嵌入式软件测试严格规范响应的时间。③嵌入式软件测试过程中必须对内存泄露、碎片等问题尽早展开测试,防患于未然。

2 嵌入式软件白盒测试技术

白盒测试技术就是根据程序内部逻辑结构为视角设计测试用例。白盒测试技术也被称为结构测试技术,白盒测试技术主要包含词法语法分析、插桩分析等。

2.1 语义分析

进行语义分析之前要先把语法、词法进行分析,词法分析的目标就是要识别程序中的各个单词,此时应对对源程序由左至右、由上至下逐个字符展开读入操作,通过构词规则判定单词符号。语法分析必须以词法分析为基础,主要目的识别程序内的关键字、语句、函数等,以此判断逻辑结构是不是正确。通过语法分析后源程序在结构上是否规范,此时要检查上下文的性质,这就是语义分析,也是审查源程序类型阶段。

2.2 程序插桩技术

程序插桩技术是借助被测程序中穿插探针操作,根据探针的返回数据来完成测试目的。最常使用的插桩办法是在程序中穿插输出语句,以此获取程序的数据流、控制流等信息。编译通过的代码展开插桩,在宿主机上进行编译。若编译通过则转移到目标机上执行,目标机则把执行过的数据返回至宿主机中,采用宿主机对这些数据进行处理。

2.3 覆盖率分析

软件系统代码的覆盖率是恒定一个代码可靠性的重要指标。覆盖率分析可以消除城市过程中的结构化测试。覆盖率分析采用程序插桩技术来完成。嵌入式软件的覆盖率分析大多需要借助其他工具完成。

3 嵌入式软件测试流程

3.1 创建测试环境

现阶段,日常使用的嵌入式软件系统形式各样,Nucleus PLUS因自身的良好性能、开放的源代码得到更广泛的应用。该软件系统在国内用户日益增多,系统主要包含内核、文件系统、浏览器等多个模块,。在Window环境下采用Visual C++6.0建立仿真平台,仿真平台作为最佳的嵌入式软件平台、,可以把用户给出的调试方法形成嵌入式目标代码转移至仿真平台之上,随之进行合理的调试操作。依照设定的配置环境和程序库编译整个嵌入式程序,这时生成的程序得以在仿真平台上正常运行。仿真平台进行调试操作是以VC++IDE环境为基础,这操作搭配Rational TestStudio测试工具,设置相对应的编译器及其他环境变量,这时就可以通过该测试工具对需要测试的对象进行检测。

3.2 嵌入式软件测试步骤

设置检测需求是进行测试操作的基础,设置的测试需求必须明显标出所测对象的功能、性能等一系列指标;随之整理收集测试需要的各项资源,创建最佳的测试环境。依照嵌入式软件的规格判定测试的特性,做好测试之前的工作。做好上述准备工作之后,依照测试环境的实况引用测试用例,对嵌入式系统的工作情况情况和结果进行记录。

3.2.1 测试目标代码的覆盖率

实施白盒测试的时候,可以运用代码覆盖分析工具检测哪部分代码已被执行,通过插桩技术实现整个测试工作。插桩是以测试环境为基础嵌入硬件,或者在执行代码增设软件。根据总结分析结果可知,哪部分代码没有执行操作,使用PureCoverage对目标代码的覆盖率进行检测。开展检测时,要先设定合理的测试目标,例如:整个程序模块内的独立路径必须执行一次操作;对逻辑判断出现的2种情况则各进行一次操作;测试内部数据的有效性等。根据设定测试目标的情况,选取最合理的测试用例,完成目标代码的相关检测操作。

3.2.2 检测系统的内存情况

因多数嵌入式系统内存受到一定的限制,内存分析工具能够动态处理内存分配中存在的错误。若错误引用动态内存之后,形成的错误通常无法再现,失效内容也不能再次追踪,运用内存分析工具能够快速检测存在的错误因素和部位。现阶段,普遍使用的内存分析工具可以划分为硬件、软件两大类,软件内存分析工具在一定程度上影响着代码的执行功能,左右着整个系统的实时性能;一般硬件的内存分析工具价格昂贵,只使用在设定的状态下。采用Rational Purify对目标代码展开测试,判断所测代码的读写内存情况。Purify能够快速测试需测的对象,及时发现人工测试无法发现的内存操作错误的情况。

3.2.3 检测嵌入式系统的功能

采用RationalTestStudio系统下中的Robot录制脚本对嵌入式软件测试其功能、稳定性能。使用Robot下的GUI录制脚本功能把需要测试对象的功能脚本进行测试。通过等价类化分法判定设计的情况确保使用最合理的测试用例,随后使用脚本编辑器调整录制脚本,运行中测试该脚本情况。根据用户的实际需求和测试结果可知,这一嵌入式系统在功能及稳定性上可以满足用户的实际需求。测试过程中,图形处理模块可以发现系统运行中的问题,并给予相应的调试,从而得出该系统通信系统受限存在问题。

3.2 评判嵌入性软件

在仿真平台上进行测试后,可以帮助用户及时错误并作出相对应的处理,对设置的测试目进行回归测试,根据测试结果可以看出,该嵌入式软件在一定程度上提升了自身的稳定性、可靠性能。在仿真平台下测试之后,这一嵌入式软件移植到硬件仿真平台和目标机器上测试运行状况,该软件的稳定、可靠的正常运行,说明基于仿真环境下测试软件非常有效。实际测试嵌入式软件时,如果没有专业的嵌入式测试工具,采用普通测试工具也可以完成对嵌入式软件的测试。创建仿真平台进行测试不仅使测试人员更加了解测试环境,有助于设计合理的测试用例,合理应对测试人员与设计人员出现的资源利用冲突的情况。采用Rational TestStudi的PureCoverage测试目标代码的情况,在未设定源代码的状况下精确定位错误,有助于开发人员及时修改错误。

4 结束语

目前,嵌入式系统在人们的日常生活中发挥着重要的作用,随着嵌入式系统的日益复杂,需要测试人员坚持不懈的努力,根据嵌入式软件的特点给予相应的测试,及时发现嵌入式软件的缺陷。文中基于仿真平台对嵌入式软件的内存、覆盖率、性能等方面进行测试,确保嵌入式软件的质量和可靠性。

参考文献

[1]杨阿辉.嵌入式软件的可信测试技术分析与设计[J].鸡西大学学报:综合版,2011,11(9):56-58.

[2]陈佳豫,孔德柱,刘金国.基于蝴蝶模型的星载嵌入式软件测试策划[J].光学精密工程,2011.

[3]王博,白晓颖,贺飞等.可组合嵌入式软件建模与验证技术研究综述[J].软件学报,2014,25(2):234-253.

[4]刘啸滨,郭兵,沈艳等.基于ARM处理器的嵌入式软件能耗统计模型[J].电子科技大学学报,2012.

[5]孙凯,龚建军,康佳等.反应堆控制和保护系统嵌入式软件的组合测试[J].核动力工程,2012,33(1):56-59,77.

[6] 殷永峰,郑本焘,陆民燕等.基于UML实时扩展的嵌入式软件测试用例生成技术[J].系统工程与电子技术,2011,33(3):694-699.

作者简介

包玮琛(1984-),男,蒙古族,辽宁省大连市人。硕士学位。现为重庆航天职业技术学院讲师。主要研究方向为软件工程。

作者单位

重庆航天职业技术学院 重庆市 400021

上一篇:巷道破碎煤岩体注浆加固的可行性分析 下一篇:云计算安全保障要点