嵌入式软件静态测试技术

2018-03-27 04:42
数字通信世界 2018年9期
关键词:测试工具嵌入式软件静态

张 林

(贵州航天电子科技有限公司,贵阳 550009)

1 嵌入式软件特点

嵌入式软件是嵌入在硬件中的操作系统和开发工具软件,它在产业的具体表现为:芯片设计制造、嵌入式系统软件、嵌入式电子设备开发、制造。其具有以下特点:

(1)实用性。嵌入式软件的是为嵌入式系统所服务的,所以它与外部的硬件的联系十分紧密,嵌入式是根据需求定向开发的,因此嵌入式软件都有特别的应用性和实用价值。

(2)适用性。一般可以将嵌入式软件可以看做为一种模块式软件,它能非常方便并且十分灵活的运用到各种嵌入式系统中,而不能破坏或改变它原有的系统特性和功能。使用灵活,配置优化,升级更换灵活方便。

(3)安全性。为单一的嵌入式软件开发病毒和木马开发成本较高、开发难度较大。

(4)小巧性。嵌入式在ROM、RAM或FI。ASH存储器中,而不是存储在磁盘在中。要求软件小巧,占用资源比较少,代码比较紧凑,可靠。

2 静态测试

静态测试是指不执行程序而去寻找代码中可能存在的错误或者评估代码的过程,其目的是代码的标准进行质量进行监控,其特点是不必进行动态地运行程序、可以人工检测、进行条件低、对测试人员的要求比较高。课静态分析的关键功能是检查软件的表示和描述是否一致,没有冲突或者没有歧义。它瞄准的是纠正软件系统在描述,表示和规格上的错误,因此是任何进一步测试执行的前提。静态分析覆盖程序语法的词汇分析,并研究和检查独立语句的结构和使用,静态测试主要的步骤包括代码检查、静态结构分析、代码质量度量等[1]。它可以由人工进行,充分发挥人的逻辑思维优势,也可以借助软件工具自动进行。

(1)人工测试:通过是人工阅读分析以及项目评审的文档、程序资料等。一些设计上的逻辑错误在机器上不易被发现,需要人工复查。人工复查的彻底,一般能检查出30%-70%左右的编码及编码的逻辑设计错误。

(2)计算机辅助分析:设计一些分析工具对被测程序进行静态分析,从静态分析中提取信息。如检查局部变量和全局变量、参数匹配、判断循环的嵌套、潜在的死循坏、不执行的代码、过程调用层次等等。

3 静态测试技术在嵌入式软件的优势

各大嵌入式行业比如医疗、汽车、铁路、航空航天等的软件开发者都会遇到校验软件问题(bug)有挑战的问题,接收用户或者质量检测部门的反馈的结果,有时候是昨天已经修复的工作可能产生行动问题。这或许不是一个bug而仅仅是一个逻辑错误或低级警告问题,这就会为不太重要的问题耽误大量时间,静态测试可以十分有效的解决这个问题。

由于传统的白盒测试工具会影响软件的真实性和实时性,此外还有缺点外部事件的激励很难进入、中断、输入输出事件无法按逻辑进行,无法构造闭环测试环境,基于宿主机/目标机的工作方式的‘白盒’测试工具及其目标机的地址空间难以做到对用户全部开发。

传统的黑盒测试测试工具同样也存在这样的缺陷,黑盒测试要求被测试软件的运行环境必须存在,目标硬件发生变化或未开发完全,就没办法对其进行测试,其次黑盒测试的成本十分昂贵,外部逻辑信号需要程序员编程并且需要专用计算机处理,多路信号的配置可能满足不了实际需要,而对采用黑盒测试工具的维护十分困难、容易损坏。

静态测试技术的人工检测可以充分的发挥人的优势,并且行之有效。解铃还须系铃人,由于了人与人之间的交流和思维的障碍而造成逻辑错误,通过逻辑思维去解决,十分有效,充分的利用了人的思维互补的情形,检验出错误的效果十分明显。

静态测试技术软件辅助的优势在于静态测试技术的软件Polyspace它提供了静态分析的完整功能,包括MISRA C和C++的编码规范检查;包括代码复杂度、堆栈大小估计等在内的软件代码质量度量和分析;C和C++代码中潜在的软件错误检查,例如程序、数据、内存和嵌入式软件信息安全等问题;对软件代码的安全性证明,即查找并排除所有可能运行时发生的错误[2]。polyspace对特殊的代码安全证明能力,可以帮助开发者实现相当于穷举式的嵌入式白盒测试效果,比如结合适当的流程用于嵌入式单元测试和集成测试阶段,可以极大的提高代码验证效率[3]。Polyspace如何提高你的效率:

(2)降低20%的测试工作,尤其是鲁棒性测试;

(2)减少40%的人工代码检查时间;

(3)避免软件错误的发布而节省百倍的查找和修复。

4 结束语

随着互联网的快速发展,基于硬件的嵌入式软件开发已经快速应用到人类的生活中,嵌入式的软件拥有了广阔的发展前景。在开发完嵌入式软件,如何解决嵌入式软件符合用户需求和软件质量的难题,嵌入式软件静态测试可能还有一些不足,随着技术的发展,嵌入式软件静态技术将越来越成熟。

猜你喜欢
测试工具嵌入式软件静态
最新进展!中老铁路开始静态验收
静态随机存储器在轨自检算法
基于人工智能的模块化嵌入式软件开发研究
Http并发连接测试工具
全景相机遥控器嵌入式软件V1.0 相关操作分析
浅谈响应时间测试分析方法
基于Eclipse的航天嵌入式软件集成开发环境设计与实现
航天嵌入式软件浮点运算误差分析与控制
福禄克推出先进的连接式测试工具系统
油罐车静态侧倾稳定角的多体仿真计算