APP下载

嵌入式软件静态测试方法研究

2020-12-21黄丹丹费玉婷

科学与信息化 2020年28期
关键词:嵌入式软件

黄丹丹 费玉婷

摘 要 随着社会的不断进步与发展,嵌入式软件的开发成为我国极为关注的一项工作,如何有效降低软件的开发成本,缩减软件的开发周期,提高软件的整体运行质量成为众多企业重点关注的一项问题。根据实际应用与探索表明:静态测试方式的运用可以有效提高软件代码的整体质量以及安全性,为软件的稳定运行提供保障。

关键词 静态测试;嵌入式软件;静态分析;代码审查

1嵌入式系统的概念及软件特点

嵌入式系统是指基于计算机技术,围绕应用为中心,可对软硬件进行裁剪工作的系统。其是专门根据相关应用进行打造的系统,对于功能、成本、功耗、可靠性以及体积进行严格要求,具有针对性的、专门的系统。嵌入式系统主要分为软件和硬件两部分。

嵌入式软件是指将相关的操作系统以及开发工具软件在硬件中进行嵌入,具体表现为:嵌入式的电子设备开发制造工作、芯片的设计制造工作以及嵌入式系统软件的开发工作等等。其主要具有以下特点:一是实用性的特点,嵌入式软件形成的作用便是为嵌入式系统进行服务的,因此其与外部的硬件通常具有极高的联系程度,同时嵌入式的软件都是基于不同的需求进行有针对性的开发,因此所有的嵌入式软件都有其自身特别的实用价值。二是适用性的特点,在一般的情况下我们可以将嵌入式软件当作是一种模块式的软件,特具有便捷、灵活等特点,其可以在嵌入式系统运行过程中保证自身的特性以及功能不会受到破坏。三是小巧性的特点,嵌入式软件受其嵌入部位的特殊性因素,其在设计过程中就要保障软件的体型相对小巧,且其整体资源占用量较小,代码相对比较紧凑,整体使用相对可靠[1]。

2嵌入式软件静态测试的方法

在以往过程中,对于嵌入式软件人们大多采用静态以及动态测试方法相结合的模式进行。但是动态测试方法在运行过程中存在极多隐患,例如:动态测试方法一般只有在软件已经编制完成并且运行过程中才能起到作用,用例质量对于测试的整体结果影响极大,并且其不能全面覆盖所有的运行途径,受到人为因素的影响相对较大。换句话说动态测试发现的问题不够全面,其过于局限于运行的整体现象,同时还需要一定的时间对发现的问题进行重现、调试以及定位工作,整体测试工作效率过低。静态测试则大大不同,其是一种相对高效、投入成本相对较低的测试方法,其在对嵌入式软件的程序途径以及静态结构进行全面分析时并不需要运行代码,其能够相对准确的发现代码存在的质量以及安全问题,大大提高软件代码的整体规范性以及正确性。一般情况下嵌入式软件静态测试的工作大致可以分为静态分析以及代码审查两部分[2]。

2.1 嵌入式软件的靜态分析

嵌入式软件的静态分析工作是指工作人员通过运用软件对需要被测源码的内容、结构以及格式在没有运营的情况下进行检测、分析的过程。经过多次的尝试人们发现一小部分的模块中往往会存在程序中绝大多数的错误,即大多数的源码遵循“二八定理”(是指程序中80%的错误大多是由20%的模块引起的)。当软件处于编码周期时,其由于没有形成完整的运行代码,因此不能进行动态测试,这时工作人员就可以通过静态分析的方法对这20%的模块进行标识、分析工作,静态分析方法对于正在处于编码周期的软件是极为重要的。同时静态分析工作可以提取软件代码中许多的内部信息(包括:编码违反的规章、子程序的模块、代码中存在的调用与被调用的关系以及扇入与扇出的数据等等),这些内部的信息可以为随后的代码审查工作提供辅助作用,因此静态分析工作进行的最佳时间段应该处于编译通过之后、代码审查工作之前。静态分析还可以从检查层次上来分为语法结构检查以及语义检查两类。语法结构检查是指工作人员对软件上的语法进行检查工作,主要代表是以编程所要遵循的规则的检测功能。语义检查是指工作人员通过运用数字定理所能提供的相关规则对软件进行动态分析的工作,主要代表是软件运行时错误检测的功能[3]。

2.2 嵌入式软件的代码审查

嵌入式软件的代码审查工作是通过借助人工的力量,运用代码检查单以及代码走查等方式对代码中存在的错误以及在开发过程中违反的标准进行查找、分析的行为。通过代码审查工作可以有效查找出部分工具无法发现的问题,包括:①检测代码是否能够依照相关需求的规格以及设计文件的有关要求进行,是否能够将软件的设计思路进行正确、合理的表达(包括对于不同种类以及函数进行正确的分类、分解,对于外部的接口进行正确的选择等等)。②检测代码的逻辑是否合理,设计的算法是否能够体现最高效,表达式是否正确以及逻辑变量是否选择正确,判断分支是否处理正确等等。③检测编码是否具有较高的可读性,是否能够准确表达标号、变量名以及函数名的意义,是否能够充分、准确的注释代码等等。但是代码审查工作依旧存在许多隐患,包括:其对于审查人员自身经验具有较高的依赖性,同时具有相对耗时且容易出错的特点,而且代码存在的错误会随着代码的复杂程度出现不同程度的掩埋现象,这时就要借助必要的静态分析工具来提高代码审查的整体高效性以及正确性[4]。

3结束语

综上所述,静态测试工作的进行不需要依靠代码的完整性,不需要代码运行就可以发现其存在的质量以及安全问题,而且能够对代码程序的全部路径进行全面的分析。工作人员可以在软件开发的不同时期,运用静态分析方法发现代码存在的具体问题,提高软件开发的整体效率,因此工作人员在进行软件设计及检测工作时,尽可能采用动态与静态测试相结合的模式进行相关检测工作,提高软件的运行质量。

参考文献

[1] 白首华,胡天彤.微型嵌入式软件静态缺陷预测系统优化设计[J].现代电子技术,2020,43(10):97-99.

[2] 王锐鑫,赵中华,沈国荣,等.基于模型的嵌入式软件开发研究[J].信息与电脑(理论版),2020,32(6):109-111.

[3] 刘颖辉.基于模型设计的嵌入式软件测试技术[J].科学技术创新,2019(33):80-81.

[4] 刘佳,杨永文,李金华.嵌入式软件单元测试方法研究[J].软件工程,2019,22(8):17-20,13.

猜你喜欢

嵌入式软件
基于ARM7TDMI架构的嵌入式软件逆向工程分析方法
浅析嵌入式软件技术的现状与发展动向
基于微信的移动学习平台开发与设计
计算机软件设计中的嵌入式软件设计分析
嵌入式软件技术的现状与发展趋势研究
嵌入式软件全面测试过程模型
基于模型检查的嵌入式软件构件化分析与验证
嵌入式软件在计算机软件开发过程中的运用
试论计算机嵌入式软件构件提取与组装技术
计算机软件开发过程及嵌入式软件的应用