关于嵌入式软件测试关键技术的研究

期刊: 环球科学 DOI: PDF下载

罗辉联1 李海军1 张淑英1

(1.杭州雅全科技有限公司,浙江 杭州 310056)

摘要

随着时代的发展,各行业紧跟时代的步伐,引进新兴科学技术,提升自身的科技水平。其中,嵌入式计算机技术应用广泛,并在实际应用中不断完善性能。本文介绍了嵌入式软件的概念,并介绍了测试方法和质量保障措施。同时,分析了关键的检测技术,指出了测试难度大的原因,并提出了解决策略,以期为后续相关研究提供参考。


关键词

嵌入式软件测试;关键技术;研究

正文


随着新兴技术的广泛应用,嵌入式系统及相关技术应运而生。与人们所熟知的新兴互联网技术不同,嵌入式系统仅提供软件运行的环境,但不支持软件设计和新功能的添加。此外,嵌入式软件的开发环境和运行条件也有所不同,因此软件的检测工作具有一定难度。嵌入式系统应用范围广泛,因此,完善其功能和提高计算能力是必要的。工作人员应加强对嵌入式软件测试的重视,以确保系统的高效运行,进而推动整个产业的发展。

1. 嵌入式软件概述

嵌入式软件是运行在嵌入式系统中的软件,能够处理数据并与外部环境交互,发挥着核心控制作用。排除故障是确保计算机系统正常运行的关键,这直接关系到程序的响应时间。及时传输数据信息是嵌入式软件的核心功能之一。由于其硬件资源有限,设计时需要优化性能以降低成本,同时,它们体积小巧,确保其在嵌入式系统中有效运作。这使得嵌入式软件成为软件开发和测试中最具挑战性的领域之一。

嵌入式软件不能直接安装在开发设备上,这可能限制了其性能。要解决这个问题,需要对宿主机和目标机进行开发。宿主机负责编写、链接代码,并确定程序的运行环境[1]。代码编写和翻译通常通过交叉编译器来完成。在编译过程中,将目标数据整合,并将数据以文件形式保存,这便是链接过程。嵌入式软件的测试通常使用交叉调试器,由宿主机上的TargetServer和目标机上的调试代理组成。它们通过TCP/IP、串口或其他通信方式相互连接。交叉测试涵盖了任务级、源代码级和汇编级。通常,这涉及到将宿主机上的系统软件和操作过程直接下载到目标机的RAM中。调试代理在目标机上使用调试器代理控制系统的应用,在系统运行前就被固定在了目标机上的Flash等插件中,在目标机工作时自动启动,并执行宿主机上的调试器的命令,利用调试器下载应用程序并运行,同时将调试信息及时反馈到宿主机上。

2嵌入式软件测试的特征

开发嵌入式系统指的是协调软件和硬件之间的关系,并实现检测信息反馈的过程。嵌入式系统中,将底层驱动程序、检测程序以及将要被检测的软件联系在一起。由于宿主机的系统环境与目标机不同,所以工作人员要及时判断嵌入式软件的检测是在宿主机还是在目标机,避免在宿主机上检测无误后,在目标机上运行出现故障。

嵌入式软件的主要特征便是“嵌入”,其可以提升比其更大的系统工作性能,却没有办法在其他同样内存或性能相似的系统中工作,若被安装到所需系统中,其性能以及行为不可改变。嵌入式软件的正常工作离不开硬件,但是软件的检测难度会进一步提升,难以及时判断是嵌入式软件出现了问题还是硬件不能正常工作。

除此之外,嵌入式软件的主要功能就是及时反馈计算机系统的应用软件信息,但是其运行对时间的要求也较为严格,在嵌入式软件操作过程中,因为计算机系统中应用软件的信息较为复杂,并且其负责整个计算机系统的正常运行,掌握着整个计算机系统的资源配置与消耗[3]。因此,在检测完嵌入式软件的及时性后,就必须采取合理的方法检测应用程式复杂性,以及分析测试整个操作系统的任务调度等因素。伴随着时代的发展,检测工具主要包含以下四种性质,首先便是嵌入式软件具有检验性,可以检测出软件所需提高自身性能的方法。其次是侦错性,可以检测计算机系统中硬性其正常工作的因素。第三是全程性。软件的检测是保障其在计算机整个运行过程中充分发挥其作用,并不只是其中一个阶段。最后便是全面性。必须覆盖整个系统检测其技术问题。

3.嵌入式软件测试中宿主机关键技术

3.1静态测试技术

计算机的宿主机相关检测主要利用代码运行检测。现阶段,软件故障的检测方法包含走访调查以及人工进行审查评议等方式,伴随着软件规模的扩大,所利用的人力物力资源也相应的增加。与此同时,计算机的设备以及目录中的源代码的工作状态也是分散的,没有办法对软件进行检测。为了提高工作效率,解决以上问题,应该使用合理策略,收集软件系统的框图,并且将相关数据分类,方便嵌入式软件的检测。引进静态检测等相关方法,描绘出完整的软件运行流程、程序逻辑图以及计算机程序的分析路径,并且转化成为流程图和逻辑图,帮助工作人员选择合理的检测方法,提升被检测软件的覆盖程度,保障检测质量。在嵌入式软件静态检测过程中,关键技术的应用必不可少[4]。首先便是代码的检测规则,要保证标识符的长度在5~31个字符之间,并且指针开头为p。其次便是分析控制流数据,要增强对SWITCH语句等分支的重视程度,与此同时,仔细检查,保障RETURN语句后不跟随其他代码。进而分析析数据流数据,合理控制指针,并且保证其数据未发生改变。最后分析软件的度量,包含扇出数、局部变化的数据以及注释的数据等。

3.2动态测试技术

嵌入式软件的测试的主要目的是掌握系统软件代码在工作时的性能,并且了解系统中应用的内存分配状况以及代码的覆盖程度。在进行检测工作时,被检测的嵌入式软件的相关代码工作情况会被看做代码的覆盖程度,利用监测系统掌握代码的覆盖程度,实现软件检测数据的实时传输,全面了解检测的工作进程,及时发现检测工作中的问题,帮助工作人员及时解决问题,提升检测工作效率。代码覆盖程度的计算指标主要包含分支、判定的覆盖程度以及语句的覆盖程度等。依据系统程序的内存分配信息可以了解到内存分配是否不合理,程序是否会因为内存过小出现故障等,并帮助工作人员为优化内存获取有益的指导方针。动态化的嵌入式软件检测通常会利用黑盒测试和白盒测试等方法,多方面检测软件中的故障信息。黑盒检测的方法应用较为广泛,此种检测防止以满足软件的需求为基础,利用相关的业务信息,采取业务信息的输入等影响科学判断软件的正确性。相关检测系统接收到的信息是否准确,经过处理生成输出信息,保障信息的完整。实验数据表明,此种检测方式检测的数据较为准确,并且可以实行将随机测试、边界值测试等分布式测试,嵌入式软件的性能测试等都采用黑盒测试。白盒测试便是对嵌入式软件的驱动程序以及结构进行测试,掌握计算机程序内部的工作过程,经过检测可以了解程序内部运行是否依照说明书工作,与此同时,计算机程序内的相关检测程序,合理检验系统内部通路的运行过程。与此检测方法相关的还有逻辑覆盖程度的检验、运行代码是否符合规定的检验以及静态检验数据的分析等。嵌入式软件的数据模型准确度检验以及静态检验主要使用白盒测试的方法。

4.嵌入式软件测试中的仿真机关键技术

4.1获取测试数据

仿真机是目标机和宿主机联系的桥梁,并且其程序的性能比真实的目标机更完善,相较于目标机,其测试结果更加准确真实。由于检测数据的获取十分重要,但是现阶段,嵌入式软件利用仿真机整合检测的数据十分困难,并且部分嵌入式软件的检测功能都是利用代码工作的。所以,要利用科学有效的方式保障软件的性能以及安全,使所收集到的检测信息更加准确。当前,检测数据收集方法包含内存取数以及物理通道取数等[5]。物理通道取数使计算机主机和目标机二者使用USB等方式传输数据的方法。利用物理通道取数将数据通信软件和主机相连接,实时将监测数据上传。在此基础上,利用TICCS等开发工具的虚拟指数,简化检测环节的同时提高检测工作的效率。若计算机的目标系统并未健全以上数据收集的方式,便可以采取利用工具读取内存数据的方法收集相关数据。在保障内存空间充足的情况下,利用修改检测工具库,将输出的数据放入缓存中,检测工作过程中或者检测工作结束后,利用工具读取缓存的信息,并将其储存在主机中。以方便工作人员操作的视角看,读取内存数据的方法应用范围更广,可以收集多种调式开发工具中的数据。

4.2仿真技术

计算机系统中的嵌入式软件仿真技术实在互联网的基础上,开发数据整合储存平台,主要包括数据收集分析程序、软件控制程序以及总线仿真和实时仿真机等。利用仿真技术测试,可以了解工作过程中总线系统中所包含的基础数据信息。除此之外,还可以依据测试程序的不同,逐个分析程序中的电信号激励源仿真,保障检测的时效性。利用仿真技术检测,还可以分析现场总线的实际工作状态,工作人员可以更好的利用计算机软件工作,保障工作质量的同时提高其工作效率,还可以合理控制在线测评平台,确保软件测试工作顺利进行。

5.嵌入式软件测试中目标机关键技术

5.1故障注入技术

在目标机的嵌入式软件测试过程中,需要注意目标机的整体程序是否可以正常运行,检验软件之间的关联程度并掌握软件的基本信息,检测其是否安全。目标机的嵌入式软件测试结果可以将计算机系统的运行情况展现出来。计算机系统中的嵌入式软件在运行过程中,工作人员可以科学有效调整运行条件,保障其正常工作。但是,目标机需要拥有相关基础功能,并依照实现设置好的运行程序以及时间工作。故障注入技术主要是在目标机内部实行,并测试部分程序,科学检验目标机的性能,进而在计算机系统运行过程中展现软件状态。

5.2内存分析技术

计算机系统中的嵌入式软件,对内存的要求往往很严格。为了保障计算机正常运行,使用适应计算机系统的内存分析技术十分重要。在检查计算机是否有故障时,要注意内存的分配,部分程序分配的内存过小可能导致无法正常运行,进而影响计算机正常工作。所以,要充分利用内存分析技术,实现内存分配科学化。一般情况下,可以选择对计算机的硬件内存分析,但是此种方式耗费成本较高,并且对周围环境要求严格。对计算机软件内存分析时,要结合实际工作情况选用合理的测试方法。

5.3程序性能分析

嵌入式软件对计算机性能的检测是保障计算机运行质量的关键。总而言之,计算机设备的性能更齐全,嵌入式软件才可以充分发挥自身作用,将有效数据整合或者中断处理工作。所以,在嵌入式软件检测计算机性能过程中,需要以实际工作的需求为基础,调整代码优化的顺序。因为嵌入式软件的检测时间较短,所以要尽可能保障先将重要的程序进行优化[6]。引进程序性能分析等新兴技术,还可整合计算机中的各类数据,并将有效数据储存,实现数据信息的完全利用,改变程序优化顺序,提升数据检测的效率,保障程序优化的质量。充分发挥性能分析系统的重要作用,直观的查看程序各部分的优化时间,并以及程序的有效性排序,指引工作人员实现程序优化分析的科学化。在程序检测过程中,要先了解软件的代码,并进行分析,掌握计算机接口的工作效率。与此同时,还要融合插桩技术,在代码分析工作结束后,利用插桩技术将嵌入式软件和执行代码相结合,实行综合性的检测,进而从最终的测试结果中掌握代码的属性和数据信息覆盖的情况。还需要注意,在借助分析工具工作时,可能会影响计算机软件正常进行工作,导致软件无法使用。

6.嵌入式软件测试难度大的原因以及问题解决策略

6.1测试难度大的原因

嵌入式软件的检测技术并不完善,并且对环境要求较为严格,工作人员专业技术水平较低,未能充分发挥测试技术和测试工具的重要作用。

6.2解决嵌入式软件测试难题的策略

6.2.1加强真实硬件运行情况的监测

当检测嵌入式操作系统的硬件工作状态时,可以引进适用于目标机和宿主机二者的高级程序,开发宿主机程序,并在宿主机上操作并监测目标程序。在检测之前,要掌握目标机与素质机的信息,并分析二者可能存在的数值误差,避免出现错误。目标机可以以宿主上的监测信息为参考,进行硬件运行情况的监测。除此之外,还可以借助指令仿真仪,掌握硬件工作时的运行状态。

6.2.2采用实时性测试及交互式测试联用

在进行计算机系统中嵌入式软件的检测工作时,可以将实时性技术与交互性实验相融合,保障检测工作的工作效率。首先要保证功能的准确性,随后要确保时间的正确。但是对功能和时间上的可靠性加以综合评价,其可以克服嵌入式软件故障等检测的时间较长等问题,但是适应不了系统信息反馈的实时性等特殊情况。对目标机的检测可以使用指令性的方针机器,甚至引进更专业的编译软件。但是目标机的实时检测使用单元检测以及集成检测并不能充分发挥其作用。在软件的交互性检测中,人们可以利用代码,模拟数据的输入输出,在代码运行时,直接从文件中显示字符,和在交互式硬件的输入输出设备相似,还包含键盘以及鼠标等。

6.2.3加强全数字仿真技术的应用

数字仿真技术在嵌入式软件检测中发挥了重要的作用。通过引进计算机的仿真技术,开发计算系统中应用软件运行所需的平台,进而模拟嵌入式软件在运行过程所需信息数据。与此同时,还要掌握数据信息的特点以及变化规律,还可以对嵌入式软件的运行状态做出判断。

6.2.4专用设备问题及并发系统网络通信问题的解决

对于实验设备,我们必须按照实际工作情况设置设备的额定功率。如果专用设备可以使用,并且可以进行检测,可以使用实际仪器进行嵌入式软件的检测工作。若专用设备不能进行检测,能够通过一些软件来仿真所需要装置,进而提升检测效率。所在仿真工作过程中遇到了问题,要考虑是否是仿真设备运行顺序发生错误等因素。

结语

综上所述,嵌入式软件系统与现阶段生活联系密切,并且可以改善人们的日常生活。随着科学技术水平的提升,嵌入式系统技术亟待完善。因此,要优化改善嵌入式系统,提升嵌入式技术水平,在日常生活中充分发挥嵌入式技术的作用,进而推进各行业整体发展。

参考文献

[1]刘如松, 王辉. 关于嵌入式软件测试关键技术的研究[J]. 电脑编程技巧与维护, 2024, (03): 27-29+58.

[2]刘久安. 指纹验证定位器嵌入式软件开发及关键技术研究[D]. 中南大学, 2022.

[3]王泉, 杨天若, 朱大开, 邓庆绪, 郭兵, 陈铭松, 董云卫, 严义, 江建慧, 张凯龙, 谢国琪, 周俊龙. 智能嵌入式系统结构与软件关键技术专题序言[J]. 西安电子科技大学学报, 2021, 48 (06): 1-7.

[4]齐齐乐. 关于嵌入式计算机软件测试关键技术的研究[J]. 电子制作, 2021, (21): 99-100+78.

[5]许弋慧. 嵌入式计算机软件测试关键技术研究[J]. 电脑编程技巧与维护, 2021, (01): 43-44+63.

[6]吴玉凤. 关于嵌入式计算机软件测试关键技术的研究[J]. 信息技术与信息化, 2020, (11): 20-22.

 

 

 

 

 

 


...


阅读全文