摘要:随着数字化时代的到来,大量系统架构复杂、功能日益强大的嵌入式系统正不断进入市场,应用也日趋复杂,这对嵌人式软件的开发技术和测试技术提出了更高的要求。嵌入式系统的专用程度较高,所以对其可靠性的要求也比较高,为了保证系统的稳定性,避免由于其可能出现的失效而导致灾难性的后果。基于嵌入式软件自身的特点,如实时性、开发工具昂贵、CPU种类繁多等,传统的软件测试理论不能直接用于嵌入式软件测试,因此买本文对嵌入式软件的测试技术展开探讨。
关键词:嵌入式软件;测试技术方法;测试流程
1.嵌入式软件测试结果准确度的影响因素和基本测试特性
软件能否正常运行取决于软件的质量和软件的性能,为保证软件的功能和性能就必须对软件进行测试。对于一般的嵌入式软件的测试主要有对测试环境要求高,嵌入软件的时效性要求高以及功能的检验外还包括其他项目的测试的特点。具有这些特点的主要原因是嵌入式软件测试环境包括被测试软件的内部环境也含有测试的外部环境,在两种环境的共同作用下才能够准确的判断软件的性能。除去满足软件功能的测试还必须在软件开发阶段进行特定平台上对软件进行覆盖率(度量测试完整性的手段)分析和GUI(Graphical User Interface 计算机软件与用户相互交流的方式)测试。
2.嵌入式软件的测试技术方法
2.1单元测试。只有验证完软件设计的最小单元后,才可以顺利地进行下一步测试。单元测试主要对白盒测试技术进行有效应用,使单元可以达到最大覆盖率,同时还可以发现存在于编码中的错误。
2.2集成测试。主要是将那些由单元测试过的模块根据结构形式组合成一个系统进行综合测试。可以发现存在于设计体系结构与程序框架中的错误。
2.3确认测试。确认测试必须是嵌入式软件运行在真实的硬件目标环境中,主要测试嵌入式系统是否由于测试环境的移植而受到影响。由于受到硬件目标环境资源不足、测试结果输出方式等限制,嵌入式软件的确认测试一般采用黑盒测试方案。
2.4系统测试。把系统中的所有测试软件与一些硬件、数据库等资源进行综合,测试计算机的应用系统。可以保证系统功能和安全性与我们的要求相符合。
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.3评判嵌入性软件
在仿真平台上进行测试后,可以帮助用户及时错误并作出相对应的处理,对设置的测试目进行回归测试,根据测试结果可以看出,该嵌入式软件在一定程度上提升了自身的稳定性、可靠性能。在仿真平台下测试之后,这一嵌入式软件移植到硬件仿真平台和目标机器上测试运行状况,该软件的稳定、可靠的正常运行,说明基于仿真环境下测试软件非常有效。实际测试嵌入式软件时,如果没有专业的嵌入式测试工具,采用普通测试工具也可以完成对嵌入式软件的测试。创建仿真平台进行测试不仅使测试人员更加了解测试环境,有助于设计合理的测试用例,合理应对测试人员与设计人员出现的资源利用冲突的情况。采用Rational TestStudi的PureCoverage测试目标代码的情况,在未设定源代码的状况下精确定位错误,有助于开发人员及时修改错误。
结束语:嵌入式软件的测试主要是为了保证嵌入式软件系统的高可用性和高质量。嵌入式系统的特殊性,使得嵌入式软件的测试在整个软件的开发过程中都占有非常重要的地位。因此,在具体的嵌入式软件测试过程中,应该根据嵌入式软件自身特点,开发具有针对性的测试工具来提高嵌入式软件测试的效率和质量。
参考文献
[1]刘颖,祝宇林.嵌入式软件测试技术与方法[J].信息技术.2013.
[2]杨杰.关于嵌入式软件测试技术分析[J].城市建设理论研究.2015.
[3]蔡东华,张素芬,肖志成.探究嵌入式软件测试技术[J].数字技术与应用.2015.
论文作者:石义园
论文发表刊物:《建筑学研究前沿》2018年第3期
论文发表时间:2018/5/15
标签:测试论文; 嵌入式论文; 软件论文; 环境论文; 代码论文; 功能论文; 内存论文; 《建筑学研究前沿》2018年第3期论文;