嵌入式软件测试研究综述
白晓晨 
生成PDF 清样下载 引用

复制成功

导出题录

参考文献( GB/T 7714-2015 ) 复制

白晓晨 ,. 嵌入式软件测试研究综述[J]. 软件工程研究,20254. DOI:10.12721/ccn.2025.157035.
摘要: 随着制造业领域对嵌入式软件的要求不断提升,嵌入式软件数量及规模不断增长,嵌入式软件质量尤为关键,所以嵌入式软件测试一直以来都面临着严峻的挑战。相比于运行在普通计算机上的软件,嵌入式软件在系统环境、测试方式等方面有较大不同,既具备软件性质又需要依托于硬件平台,目前嵌入式软件测试逐渐成为软件测试领域的一个研究热点。本文汇总了近十年嵌入式软件测试相关的研究文献,对其中重要的工作和测试技术进行了分析与阐述。总结了嵌入式软件测试需要克服的难题,并对嵌入式测试的发展趋势进行了展望。
关键词: 嵌入式软件;嵌入式软件测试;技术
DOI:10.12721/ccn.2025.157035
基金资助:

引言

嵌入式软件与嵌入式系统密不可分,嵌入式系统一般由嵌入式微处理器、外围硬件设备、嵌入式操作系统以及用户的应用程序4个部分组成,用于实现对其他设备的控制、监视或管理等功能。随着嵌入式软件使用范围的增加,对嵌入式软件质量和性能有更高的要求。而对于嵌入式软件质量的检测依靠的是嵌入式软件测试,所以人们追求软件质量的同时,对于软件测试的需求也在不断增长,因而对嵌入式软件测试工作的核心以及其关键技术的研究是十分必要的。

1嵌入式软件测试的应用现状

我国的嵌入式软件测试技术研究起步于“六五”期间,随着软件工程的研究而逐步发展起来。自20世纪90年代以来,我国开始引入国外嵌入式软件测试理论、测试方法,对软件测试工具的自动化测试方案等进行更加全面的关注与研究。当前我国各大高校、研究所及企业等,主要利用国外公司的嵌入式软件测试工具、测试技术,展开嵌入式语言汇编、自动化测试与管理的工作。由于起步较晚,国内嵌入式软件测试技术相比于国外领先水平还存在一定的差距。嵌入式软件系统的细节实现,与I/O配置、输入/输出信号等有着紧密关联性。随着不同软件规模量、复杂程度的不断提高,软件质量问题也逐年上升,因而只有持续优化嵌入式软件的测试质量,才能满足不同软件测试、验证的需求。随着我国软件产业的蓬勃发展以及对软件质量的重视,软件测试也越来越被制造业企业所重视,软件测试正在逐步成为一个新兴的产业。

2嵌入式软件测试技术

2.1宿主机软件测试技术

对于宿主机软件测试,一般包括静态测试、动态测试等技术,主要负责软件代码、软件编译逻辑错误的测试,能够对软件代码的错误信息做出自动审查分析。静态测试技术利用嵌入式软件的自动扫描功能,能发现不同嵌入式软件的代码错误、运行逻辑漏洞,每秒钟可以扫描上万行软件代码,相比于人工测试的实现速率更为快捷,适用于软件代码行数多、功能复杂的逻辑关系测试,但该测试技术容易发生词法、语法测试的误报情况。所以在宿主计算机软件测试过程中,要设置合适的软件代码测试节点,逐行、逐字符的扫描逻辑语句控制流,以发现软件的代码错误、漏洞问题。动态测试技术要在计算机软件运行过程中,选取单元测试、集成测试等技术,对应用程序软件运行逻辑、执行路径做出测试,通过字符、符号等软件语言指令的离散测试,审查软件开发结构、逻辑错误问题。而集成测试是单元测试后,对受测软件单元端口、逻辑路径的连接,做出及时准确的软件调用测试,包括对软件信号输入/输出、软件功能、系统内存转储等的多方面测试。

2.2故障注入

嵌入式软件的测试技术中,基于故障注入的方式在运用上比较广泛。故障注入作为一种仿真技术,人为地模拟目标系统运行时的故障,把硬件或者软件的故障注入目标系统当中。当目标系统带着注入的故障运行时,可以对系统运行的情况进行记录、分析,从而验证系统在遭遇故障时所做出的响应。这样可以为完善和改进对目标系统的设计提供重要的反馈信息。

2.3自动化测试

在自动化测试当中,测试语言是各种不同测试标准的形式体系,通过测试语言编写测试计划,测试系统将通过运行测试程序实现自动化测试。测试脚本指导着整个测试的过程,可以利用测试脚本实现测试用例的输入,驱动嵌入式软件的运行。如今使用的测试脚本可采用Python、Java等语言实现。

2.4白盒测试技术

相比于只关注输入输出结果的黑盒测试,白盒测试更适用于逻辑功能复杂代码量大的嵌入式软件,在已知代码结构的基础上进行测试用例的编写,通常需要编写测试脚本进行测试,对测试人员的代码熟悉度有很高的要求。其中的Unit test对嵌入式软件代码的掌握要求更高,并且需要模块化开发的嵌入式软件结构,对单一模块和函数编写脚本进行测试。

2.5仿真软件测试技术

嵌入式软件数据传输、功能测试的根本在于软件代码组合方式、逻辑实现的测试。而以嵌入式技术为主的仿真监测,可以突破传统软件复杂代码测试的局限性。围绕系统中动态变化、发展的代码数据,对海量数据代码资源进行仿真模拟,以及大量测试数据的集中化管理,帮助软件测试人员与开发者,清晰查看软件逻辑执行、功能实现的过程。通常将软件用于测试的数据代码,放置到严苛的软件测试环境中进行模拟测试,得出更为真实可靠的测试结果。

2.6验收测试

验收测试环节主要是由业务专家完成,通常开始于研发部门结束所有测试活动之后。验证测试主要是为了能够切实保障设备的嵌入式软件能够更好满足用户业务上的需求,这是一项由业务专家完成的一系列黑盒测试,也是最后一项质检活动。将嵌入式软件测试流程分为多个测试活动,检查软件产品在不同开发阶段出现的各项缺陷问题,缺陷问题通常会表现出不同的类型和特点。

3嵌入式软件测试难点

相比于互联网的纯软件代码,嵌入式软件需要根据硬件平台的不同来编写匹配功能,软件复杂程度高,嵌入式软件测试需要基于硬件平台的搭建才能进行,单纯软件的调试很难实施,对于技术人员的软硬件知识都有要求。而且相比于编码开发人员,测试人员需要站在全局的角度来思考测试方案改进测试方法,需要对嵌入式软件有一个全面的认识。

4嵌入式软件测试展望

在我国,一般的公司都是重开发轻测试,追求产品周期的缩短,对于产品质量的把控往往担负在开发人员身上,甚至存在把测试工作都放在用户那里去做的错误思想。开发软件追求“短”、“平”、“快”,不太考虑性能和功能的优化。

制造业发展到今天,如果还是用以前的思路、办法,企业的产品将不具备竞争力,维护成本大大增加,从而导致这样的企业生存极其困难。正是因为这个原因,嵌入式软件测试以往一直被中小企业所忽视,只有一些知名企业才有专门的测试人员。目前,更多的国内企业认识到测试的重要性,随着企业的技术实力不断提升,测试人员的需求也不断加大,对于嵌入式软件测试技术的研究也会不断发展,未来可以不依托于国外的先进技术,自主研发嵌入式软件测试工具。

结语

嵌入式软件已经逐渐和日常生活相互融合,而且将持续地对生活产生深远的影响。但是在社会发展的大环境下,嵌入式技术趋于复杂化,这就对测试人员提出新的要求,强调及时更新和完善嵌入式测试技术的迫切性,以及保持探索精神的必要性。只有这样才能使嵌入式软件测试的关键技术有质的提升,从而实现嵌入式软件向更好的方向发展。

参考文献

[1]叶远富.嵌入式计算机软件测试关键技术[J].电脑乐园·信息化教学,2018,(03):365.

[2]邓平,陈晶晶.嵌入式计算机软件测试关键技术[J].电子技术与软件工程,2017,(11):64-65.

[3]高峰,邓霏,陈泉根.基于分层模型的半实物仿真测试平台设计[J].计算机工程,2018,44(1):104-109,115.