嵌入式计算机软件测试技术探讨
2017-03-10孙晓霞
◆孙晓霞
(大连广播电视大学 辽宁 116021)
嵌入式计算机软件测试技术探讨
◆孙晓霞
(大连广播电视大学 辽宁 116021)
随着社会的快速发展,计算机技术发展的步伐也有了跨越式的进程,其中,由于嵌入式计算机功能强大,能够满足各类用户的各种需求,所以嵌入式计算机技术也愈来愈应用广泛。虽然这类的计算机功能如此强大,但内部结构会较其他类型的复杂。所以,测试嵌入式计算机的时候,会增加很大的难度。因此,本文主要对嵌入式计算机以及如何测试嵌入式软件进行阐述,并研究测试软件的相关技术,旨在提高嵌入式计算机应用的范围以及其应用效果。
嵌入式计算机;软件测试;仿真机;宿主机;目标机
1 概述嵌入式计算机
所谓嵌入式计算机主要是根据指定的一些技术或者功能开发设计的,是计算机系统的一种。也就是把嵌入式的系统与计算机技术相结合同一利用,对计算机的软硬件功能都进行了更高层面的技术完善,进而达到客户各式各样的功能需求。因为,为了某个特定功能而开发的嵌入式计算机,所以在开发此软件的过程中,既做到了成本管控,同时又能满足计算机的特定功能,然后结合需求来决定计算机的实际。嵌入式技术能够使得计算机软硬件都能得到技术上的优化。所以,嵌入式的计算机能够提供产品的质量,提高工业生产效率,使得在市场上应用非常广泛。
2 何为嵌入式软件测试
为了保证软件应用的可靠性以及应用质量,需要对软件进行多次测试,通过多次测试的过程发现错误,火灾时代码错误或者是分析过程等等,进而让嵌入式软件在应用的过程中更加有保证。较其他软件对比,嵌入式软件有很多独特的方面,专用性较强,必须在特定的硬件平台上运作。同时,嵌入式软件在开发和运行环境方面也有其各自的特点,即,在宿主机上面进行编辑和编译等等。另外,嵌入式软件更具有其复杂的特性,其目标机与主机在处理器和操作系统等方面都存在的明显的差异,这就导致嵌入式软件更为复杂。通常情况下,微机和工作站这类较为通用的计算机就是这里所说的宿主机,而且对于目标机作用的关键性来说,就是严格划分具有嵌入式系统通讯的宿主机与目标机最直接的方式之一。
3 概述嵌入式软件测试的几项关键技术
3.1 简述仿真机的关键技术
一是仿真技术,所谓嵌入式软件仿真建立在局域网的基础上,对数据进行集中性管理与处理,其中,仿真测试中较为常见的关键技术是仿真技术与仿真测评控制技术,仿真技术的结构包括I/O系统、实时仿真机以及实时调度模板等,对测试结果有专门的分析工具。对嵌入式软件进行仿真测试,可以模拟现场进行真实场景的模拟,以得出相关数据,另外,根据测试对象不同,能够逐个分析电信号激励源的各种仿真,除了总线外,能够分析其实际运行情况,实现人机交互,完成软件测评等等。
二是测试数据获取技术。在当前这个阶段下,嵌入式软件测试的发展瓶颈就是如何将测试过程中的数据进行有效利用,目前,很多对嵌入式软件进行测试的方法都需要对源代码测试,这样在一定程度上就可以保证软件质量和性能,进而获得有效的测试数据。目前为止,测试数据获取的方式较为集中,包括开发工具的虚拟IO指数以及实际物理通道取数和内存取数。其中,实际物理通道取数是目标机与主机之间物理的具体通信方式,利用实际物理通道取数能在很大程度上直接经由数据通信软件实现与主机之间的通讯,在此基础进行数据下载,开发工具虚拟 IO指数是一种更高级的开发工具,给测试工作带来便利。也就是说,在缓存足够的基础上,加之修改测试工具的库,在缓存中写入输出数据,测试进行或结束后,对缓存中记录的数据进行读取,并在此基础上以文件的形式保存到主机上。需要重点关注的是,这个方式需要在测试前能够确定缓存的大小。但是这个方式试用性较高,优势明显,主要是表现在开发调试工具上。
3.2 宿主机的关键技术
一是动态测试技术,所谓动态测试技术作为测试的关键技术一质疑,主要测试的重点和对象就是软件的执行动态能力,可以对系统内存是如何分配使用以及代码的覆盖率进行全面深入的分析。在测试的过程中,被测代码的执行情况就是以上所说的代码覆盖率,监控代码覆盖率可以助推软件测试的有效性,全面掌控测试力度,能够迅速识别哪些数据没有被测试,进而为软件工程师的测试工作提供有效的数据参考。对于内存分配的动态信息进行分析时,能够帮助测试人员准确快速的查找到内存漏洞,进而为优化内存分配而提供整改策略。代码覆盖率等方面的计算指标包括诸多方面,有MC/DC语句覆盖以及分支/判定覆盖等等,但是内存分配信息就强调高度关注其中的每一个函数、内存分配点内存分配及释放情况,并及时监视动态内存分配中出现的错误信息。
二是静态测试技术。在目前这个阶段,软件差错的方式很多,但是较为常用的就是人工审议和走查,但是随着软件规模越来越复杂且大型,需要很多的工程师,另外加之源代码存在的形式较为分散,不好操作,往往很难采用审议和走查。针对以上问题,需要借助有效的方式进而获得整个软件系统的框图,来实现其中的自动化链接,这样就会方便软件审议和走查。而且静态测试分析技术可以绘制程序逻辑图和控制流程、获取完整的软件系统逻辑框图、进行程序路径分析、可互相转换生成的逻辑图、流程图、框图等,这样就能够设计出高效的测试用例,进而来提高软件质量以及测试的覆盖率。
3.3 目标机的关键技术
目标机也有其被测试的重点部位,对其综合性能进行高度评估即是测试的重点,能够获取软件交互以及是否稳定和可靠方面的验证。从关键性技术方面来说,进行软件测试可以从性能分析、内存分析以及注入故障等三方面进行测试。其中,内存分析在当前阶段下,只有软硬件这两种分析的手段,主要是可以对动态内存分配进行故障测试,另外,对于故障注入技术来说, 主要是针对系统边界、容错性以及强度性这几个明显的方面进行测试。性能分析技术具有时间性能方面的优势,方便开发人员决策利用那种方式优化系统软件,也就是说,性能分析技术能够缩小优化范围,能够为优化代码提供优化范围,进而能够对消耗方式、实际以及所使用的时间进行准确分析。软件方面进行内存分析能够直接影响到代码的性能,容易干扰实际操作。而硬件方面,由于其对硬件进行内存分析,其工具价格高,所以使用范围有所限制,仅限于有工具的环境当中。
4 结语
总之,随着计算机行业技术的迅猛发展,嵌入式计算机的应用越来越广,所以,嵌入式计算机的稳定性将决定着其应用的广泛性,所以,为了其稳定需要对系统进行测试,包括宿主机、目标机以及仿真机,目的就是要对嵌入式计算机全面测试,以提高嵌入式计算机系统的稳定质量、以及有效性。因此,本文主要是测试嵌入式计算机,旨在提高其应用范围以及应用成效。
[1]张兵星.探讨计算机软件测试的相关技术应用[J].中国管理信息化,2016.
[2]施小敏.嵌入式IO控制器软件测试关键技术研究[D].上海:上海交通大学,2012.
[3]平婕,秦军,康建华,安元伟.嵌入式软件测试关键技术研究[J].有线电视技术,2010.
[4]周凌云.嵌入式武控计算机软件测试关键技术的研究分析[J].科技展望,2015.
[5]凌杨,邵培南,佟雷,李建军.基于数字化仿真环境的嵌入式软件测试方法[J].计算机工程,2011.
[6]高赛军.嵌入式武控计算机软件测试关键技术研究[D].上海:华东理工大学,2013.
[7]高俊,邹金萍.计算机软件测试技术与开发应用研究[J].中国管理信息化,2016.