李鼎
(江苏省淮阴商业学校,江苏 淮安 223003)
嵌入式计算机在目前的计算机行业中,是一种非常先进的技术。它不是一种通常意义的计算机,而是针对某一个项目而专门开发的计算机。通过运用嵌入式计算机,可使工作效率获得极大的提升。被安装在嵌入式计算上面的软件,被称为是嵌入式软件。通常情况下,需要结合工作需求,完成嵌入式计算机软件的功能,这样才能对正常运作计算机软件提供保障。将嵌入式软件测试系统应用于网络计算机硬件平台中,能对合理的软件配置项、执行单元指令、集成不同软件系统提供保障。在电子通信、国际军事和航天航空等行业中引入嵌入式软件测试,能够有效减少网络系统故障,避免出现各类安全事故。
作为计算机系统的一种,嵌入式计算机主要是结合特定的功能和技术开发和设计。通过紧密结合和统一利用嵌入式的系统与计算机技术,由此最大化地满足客户多样化的需求。因此在该软件的开发过程中,既可以对计算机的特定功能给予满足,还能有效管控成本。并且与实际需求相结合,促进工业生产效率和产品质量的不断提高,因此广泛运用于市场中。
该软件能够很好地管理、控制和监视整个网络软件系统的运行状况。通常将其划分为三个不同的层次,使既定的数据传输管理服务、计算机软件指令控制得以有效完成。美国 Wind River System 公司开发的VxWorks 嵌入式软件系统,是国内普遍使用的嵌入式软件产品。遵循各项任务要求,如输入、输出和运算等,使计算机软件测试的处理工作能够在短时间内完成,为顺利开发应用用户程序和计算机内部高效任务调度提供保障。
为了对软件的应用质量和应用可靠性提供保障,需要多次反复测试软件,通过分析,对嵌入式软件应用质量和应用可靠性提供保障。同时,嵌入式软件目标机与主机在处理器和操作系统等方面的差异比较明显,因为特性复杂,因此有着更加复杂的嵌入式软件。一般情况下,这里所说的宿主机,具体是指一些较为通用的计算机,包括微机和工作站。将具有嵌入式系统通讯的宿主机与目标机进行严格划分,是发挥目标机作用的关键。而纵观嵌入式计算机软件测试的应用范围,在自动化、空导弹、工业等方面,应用也非常广泛。但是为了便于数据从宿主机向目标机传输,对宿主机的网络性能和硬盘的要求也越来越高。宿主机主要功能是开发、运行和测试软件,对软件测试的操作系统进行承载,并营造计算机软件测试环境。目标机能够对多种应用环境进行模拟,具有极强的能力负责计算机软件测试,及时发现存在于计算机软件中的各种问题[1]。
目前针对嵌入式软件测试理论、测试方法的逐步引入,我国开始逐渐加大了研究和关注力度,不断完善软件测试工具的自动化测试方案。而新形势下,我国通信行业、网络研究所和各大高校等,主要是开展自动化测试与管理的工作。同时,我国也开始自行研制 GESTE 嵌入式软件,通过多个层级,包括硬件驱动层、操作系统层、软件应用层等的有效运用,结合不同的计算机网络软件运行环境,开展多样化的工作。包括计算任务、识别目标、处理前端信号等。但相比于国外发达国家,我国嵌入式软件测试还存在很大的差距。
只有准确模拟被测软件的实际运行环境,才能将应用程序测试完成。目前,在执行过程中,还有以下难点问题存在。
若是在计算机系统上加载该执行程序,就必须要完全确定软件功能服务的测试项目。因为消耗资源量极大,由此影响了应用软件的分析测试。
计算机软件测试中的数据信号传输,在没有完善嵌入式硬件辅助设备、软件设施的前提下,测试用例很难从测试软件输入,也缺乏客观性的目标应用程序测试结果。另外,嵌入式软件具有较小的规模和较大的测试难度[2]。
5.1.1 静态测试技术
将静态测试技术应用于嵌入式计算机软件测试中,具有很大的优势,其主要特点如下:
(1)审查体系相对规范。随着日益发展和完善的静态测试技术,也大幅度增强代码审查能力,并且有着更加规范和严密的审查过程。凭借着宿主机扫描功能的强大,通过静态测试技术的有效运用,严格审查和验证计算机软件代码。能够有效发现代码中存在的词法和语法错误,由此对于规范和严密的计算机软件测试提供了保障;
(2)具有较快的软件测试速度。静态测试技术相比于传统的人工测试,能大幅度地增强静态扫描功能,因此对于具有较多代码行数和复杂功能的计算机软件比较适合;
(3)具有较高的误报率。受静态测试技术自身在语法词义、算法等方面的影响,会产生过多的误报率。在运行静态测试技术的过程中,主要使用以下关键技术:(1)分析代码语法。通过Yacc工具,整理好存在语法错误的代码。
(2)分析代码控制流。静态测试技术可从多个方面扫描计算机软件中的宿主机、目标机,从而确定计算机软件代码的节点,这样能够及时发现计算机软件控制流图中存在的代码错误;
(3)分析代码污点。其目标是及时发现计算机软件中所存在的薄弱点,并对哪些代码易成为计算机软件的漏洞进行弥补。同时采取加强措施,以免受到黑客的攻击[3]。
5.1.2 动态测试技术
该技术必须要在各个严苛的测试环境中运用,动态测试技(1)术在运行软件时,主要运用了以下技术:
单元测试技术。检测其是否存在不合理的基本单元结构,是否有逻辑错误存在;
(2)集成测试。检测计算机软件内部各部分之间的联系是否正确,是集成测试的目的。一旦有问题存在于连接端口上,则不能有效调用受测计算机软件,因为BUG被计算机软件频繁弹出,因此会及时发现问题;
(3)系统测试。主要是对系统结构、逻辑路径等多个方面进行测试。为了有效开展系统测试,需要测试人员的测试经验丰富,业务水平较强,才能及时发现受测计算机软件中存在的问题;
(4)验收测试。其问题是不能细化测试过程,需要软件测试人员拥有较高的素质。只有紧密结合动态测试技术,才能真正提高软件测试的能力[4]。
5.1.3 目标机测试研究
在检测过程中,应对目标机的综合能力高度重视,既在测试软件交互能力的同时,还要对其可靠性和安全性提供保障,保障测试结果最大化地符合计算机软件的性能。
(1)故障注入。目前,我们可以人为设置嵌入式计算机软件的运行状态。目标机具备相应的功能,是人为设置这一功能的关键,而运行时间的设置,必须要根据运行方法。故障注入技术是指在目标机测试其中某一部分,对目标机的整体性能进行检测。
(2)内存分析技术。因为内存分配错误会造成嵌入式计算机软件出现故障,所以,计算机软件开发研究人员应详细分析内存技术。因为分析硬件会将大量的资金消耗掉,同时环境因素也极容易影响到分析硬件的工具。轻则会对软件分析带来影响,严重的则会威胁到内存的正常运行。所以,在研究和分析内存时,计算机软件开发研究人员应与内存的具体情况相结合,选择针对性的测试方法[5]。
相比于宿主机,仿真机更加真实和直观。仿真机测试还能对嵌入式软件的主要技术进行测试,并在宿主机及目标机上作用测试结果。而在这个过程中,需要较大的数据量,因此对于数据准确性的要求是非常高的。在测试完成后,还可在计算机中存储缓存的数据。为了能在测试过程中集中处理数据,就需要相关技术的支持,这样才能对顺利开展仿真测试工作提供保障。同时,在整个仿真模拟过程中,还能对技术的使用过程清晰地呈现,再分类仿真测试软件的性质,以产生更加精确的仿真测试结果。在测试过程中,需要有相对稳定的传输信号,是仿真机仿真测试的关键,这样才能对仿真测试数据信息实现实时性提供保障。它是在严苛的环境中获取真实的测试数据,在嵌入式计算机软件测试中,将软件测试数据向目标机发送。为了使测试更加准确,可在目标机上输入一些故障,分析诸如信息处理、图片识别等某一个功能经常发生的故障,在目标机中主动输入故障信息,并做好相应的记录[6]。
在人们的生产和生活中,嵌入式计算机软件发挥着重要的作用,在社会各个领域中有着非常广泛的运用。利用仿真测试技术的辅助,在严苛的测试环境中进行,能够全面监测受测试软件,由此促进嵌入式计算机软件的开发质量的不断提升。