嵌入式计算机软件测试关键技术研讨论文
摘要:嵌入式计算机是计算机行业中一种比较先进的计算机技术。随着科学技术的不断发展,嵌入式计算机的使用范围也越来越广,在嵌入式计算机使用的过程中,能够有效地保证对需要的功能的实现。但是,由于嵌入式计算机软件的结构相对于其他类型的计算机来说比较复杂,这就要求我们要能够按照使用需要,及时对嵌入式计算机软件技术进行测试。文章根据现阶段嵌入式计算机与嵌入式计算机软件的概念,针对开发使用的技术进行分析,找出如何使用相关的技术对嵌入式计算机的软件进行测试。
关键词:嵌入式;计算机软件;测试;关键技术
前言
随着我国的工业不断地进步,科学技术的不断发展,嵌入式计算机技术也得到了很大程度的提升。我们身边普通的计算机并不是嵌入式计算机,嵌入式计算机指的是专门针对某一个项目或者是某一个行业进行开发的专业计算机。嵌入式计算机不仅仅能够实现对需求开发的功能,有效地提升工作的效率。嵌入式软件是嵌入式计算机中安装的软件,一般情况下,嵌入式软件都需要根据不同的工作需要,完成相应的功能,这就要求嵌入式软件要具备一定的稳定性,对嵌入式计算机软件进行测试,能够很好地保证嵌入式软件的正常工作。
1什么是嵌入式计算机
嵌入式计算机指的是针对某一种技术,或者是某一种网络、某一种功能等专门开发的计算机系统,利用计算机技术,加入嵌入式系统,能够实现对计算机硬件和软件功能的增多,能够更加适合实际运用的需要。嵌入式计算机针对某一种功能的需要进行开发,对开发的成本、功能的可靠性以及计算机的大小等因素,都有十分严格的要求。通过对计算机处理器、硬件、系统、应用等进行嵌入式技术的操作,能够更加有效地保证计算机技术的实现。嵌入式计算机大多被应用在工业生产中,能够提升工作效率,保证工作的质量[1]。
2什么是嵌入式计算机软件
嵌入式计算机软件指的是在嵌入式计算机中使用的软件,能够进行独立功能的操作,嵌入式计算机软件包括嵌入式微处理器、传感器、控制器、定时器、储存器等等。在嵌入式计算机中使用的电子芯片或是电子器件,将嵌入式计算机软件安装到嵌入式计算机中,能够有效地实现常规计算机不具备的功能,比如:实时监控功能、对设备的管理功能、数据处理功能、进行移动计算等等,真正地实现了现代化自动化的电子处理,是实现现阶段自动化与智能化的社会生产力的重要途径,嵌入式计算机软件就是自动化的核心部分[2]。我们可以将嵌入式计算机软件分为:简单嵌入式系统和复杂嵌入式系统两种。简单的嵌入式系统只能够完成一项功能,比较典型的简单嵌入式系统就是单片机。单片机通过ROM技术就能够实现对系统的使用,能够达到对程序控制的目的。复杂嵌入式系统的功能与普通的计算机系统功能并没有什么过大的区别,只不过在复杂的嵌入式系统中,安装了一些微型的嵌入式操作系统,以及嵌入式应用软件在计算机中,能够使计算机的功能得到相应的完善,这就是嵌入式计算机软件的作用[3]。
3什么是嵌入式计算机软件的测试
嵌入式计算机软件相比普通的计算机软件来说,更具有专业性,嵌入式计算机软件只能够在某一个制定的平台或者系统中运行。但是嵌入式计算机软件的开发环境与运行的环境还存在很大的差异,不能够使用同一网络环境。嵌入式计算机软件需要使用交叉开发的形式,在进行开发的计算机中,安装并运行开发工具,开始对软件进行编译,再将编译完成的软件通过下载的方式,将软件发送到目标计算机中,当开发计算机与目标计算机都有了嵌入式软件,就能够建立通讯连接,并且能够对软件下达命令、下载数据等等。两台计算机的操作系统不同,计算机的处理器也有着一定的差异,这样的方式会增加嵌入式软件开发过程的步骤,增加了开发步骤的复杂性[4]。我们将对嵌入式软件进行开发的计算机称为宿主机,对软件进行接收并运行的称为目标机。宿主机对使用开发工具,利用宿主机的操作系统对计算机软件进行开发,通过通信连接将计算机软件发送到目标集中,尽管这一系列的操作看似很简单,但是却需要强大的系统和硬件的支持。在这种形式下进行运行的嵌入式计算机软件开发的活动,一般情况下,宿主机都是我们平时工作生活中使用的通用计算机,也可以是开发微机或者是软件工作站等等。目标机与宿主机不同,目标机能够承载宿主机开发的嵌入式计算机软件的运行,将嵌入式计算机软件安装在目标机中,就能够实现嵌入式软件的功能[5]。
4对嵌入式软件测试关键技术进行研究
4.1对宿主机进行测试的技术研究
宿主机指的是对嵌入式软件进行开发的计算机,对宿主机进行测试的方式有两种,即静态测试与动态测试两种,这两种方式使用的是代码逻辑的方式对宿主机进行测试。
4.1.1静态测试技术很多计算机软件开发的专家,在对计算机软件进行检测的时候,通常使用的都是人工检查的方式,由设计人员组成一个小组,小组的成员之间互相交流对软件开发使用了哪些程序、使用的是什么算法进行的计算,并交代设计数据与软件的模块之间有什么样的关系等。这样的方式虽然能够在一定程度上找出软件中是否存在相关的问题。但是,由于现阶段嵌入式计算机软件的结构越来越复杂,设计的步骤越来越繁琐,软件设计的规模也在逐渐扩大,这就要求在一款软件的设计过程中,可能会有很多的软件设计师、工程师等一起参与到软件的开发工作当中,每个工作人员的分工也大有不同,再使用从前的方式对软件进行检查,就会加重检查工作的负担[6]。这就要求我们,要根据现阶段的计算机软件开发的实际情况,找出最合适现阶段软件开发的检测技术,对原始的计算机软件的检测工作进行优化升级,能够使计算机软件的检查工作更加简便。在检查的过程中,加入适当的检测技术,先对整个嵌入式计算机软件的开发软件系统框图进行整理,并且对其设置自动连接的相关量,软件的源代码编程能够通过自动化技术进行查找。这样的方式能够使软件审查工作的工作效率有很大的提升,能够使验证工作的结果更加准确有效。我们可以通过静态测试的方式,得到软件中相关信息[7]。
(1)软件的源代码程序绘制过程的.逻辑图,以及对软件进行控制的工作流程。
(2)软件系统完整的逻辑框图,系统内部关系调节的网络图。
(3)软件程序运行的路径分析图。
(4)软件生成的不同部分的显示图。
(5)软件不同部分显示图的位置信息,操作的频率等信息。这些信息都能够在静态测试中得到实现,首先要使用静态测试的系统对软件的操作逻辑和控制系统进行分析,能够有效地将软件分析的更加精确,在进行软件测试的过程中,能够使测试的结果更加准确,并且能够将测试结果更加精准的表现出来,检测出软件系统中是否存在相关的问题,并以此对软件的系统进行改善。
4.1.2动态测试技术对宿主机的动态测试主要指的是对软件的代码进行测试,能够有效地检测出代码的执行能力,并且分析软件代码的覆盖率,能够有效地检测出软件的功能。能够有效地了解到软件的性能,还能够通过分析更加了解软件中代码的执行情况,这样的检测方式能够促进对软件系统的改进,推进了软件系统的发展,可以根据检测的结果,对软件的功能进行优化和完善[8]。动态测试技术还能够对软件设置的完成程度进行测试,能够对其中已经开发完毕的数据进行检测,检查其中是否存在缺少的数据,这样的方式能够为软件的开发工作提供重要的依据。动态测试技术能够将软件中的每个函数的情况,以及对内存的分配情况等进行检测,能够将软件中各种元素的分配情况进行显示,并且能够同时对相对应的数据、代码、函数等进行显示。
4.2对仿真机进行测试的技术研究
仿真机作为宿主机与目标机之间重要的环节之一,通过仿真机的使用,能够有效地完善计算机软件测试的功能以及软件自身的性能,比对宿主机的测试更加直观、更加真实,并且能够对软件中主要的技术进行仿真测试,使测试的结果更具有说服力。其测试的结果既能够作用于宿主机,还能够作用于目标机。
4.2.1仿真机测试数据获取技术现阶段,针对仿真机的数据监测,一直都是技术上很难实现的问题之一,很多对嵌入式软件的检测都需要在测试的过程中先提供软件设计的源代码,这样的方式需要使用的数据量比较大,这就要求我们要针对这类数据的准确性进行技术的提升,才能够保证检测数据的精准性。仿真机监测技术能够从一定程度上保证数据信息的完整性,在对数据进行完全的缓存后,再使用测试工具进行修改,能够从很大程度上保证数据的正常输入,在测试结束之后,还能够对已经进行缓存的数据进行读取,并将数据整理保存到计算机中。但是,需要注意的是,使用这种方式进行测试,还要保证数据缓存的大小不会超过测试的容量,测试才能够顺利的运行[9]。
4.2.2仿真机仿真测试技术对嵌入式计算机软件进行仿真测试,能够在测试的过程中,对数据进行集中地管理和处理。仿真测试需要一定的技术支持,能够将数据进行仿真模拟,在模拟的过程中,能够看到技术的使用过程,再按照每款软件不同的性质,分类仿真,使测试的结果更加真实可靠。还要保证在对数据的检测过程中,传输信号是能够稳定运行的,才能够保证仿真测试的数据是实时的。
4.3对目标机进行测试的技术
目标机相对于其他部分来说,在测试的过程中,更需要注意目标机的综合能力,还要能够测试软件自身的交互能力,并且测试软件是否安全可靠,目标机测试的结果能够更加真实地体现计算机软件的性能[10]。
4.3.1故障注入技术嵌入式计算机软件在计算机中运行的状态,可以通过人为的方式进行设置。但是,这就要求目标机的部件能够具备一定的功能,能够按照设置的时间、设置的运行方式等进行运作。故障注入技术指的是在目标机中,通过对某一部分的测试,能够更加有效地检验目标机中的性能,比如:鲁棒性测试、边界测试等等。使软件在运行时的状态能够表现的更加明显。
4.3.2内存分析技术嵌入式计算机的系统,一般情况下内存都会比较小。使用内存分析技术,能够有效地保证在分析的过程中,找出计算机内存存在的问题。在问题的分析过程中,能够防止内存中的某些内存会产生分配错误的问题,很多的计算机软件故障都是因为内存分配的错误造成的。这就要求我们要通过内存分析的技术,来对内存进行判定。一般情况下,我们都会选择硬件的方式进行分析,但是硬件分析的方式需要耗费的资金比较多,而且分析工具具有一定的环境限制,但是软件分析会对计算机的代码产生一定的影响,并且会影响内存的运行。这就要求我们在进行内存分析的过程中,要能够按照不同的情况对测试的方式进行选择[11]。
4.3.3程序性能分析技术在嵌入式计算机运行的过程中,还有一个十分重要的因素就是程序的性能。一般情况下,嵌入式计算机对程序的性能都有一定的要求,能够在已经设置的时间内,对某一数据进行中断处理或者是生成处理,这就要求我们要在测试的过程中,要能够根据实际情况决定先对那一部分的代码进行优化,因为嵌入式计算机的优化程序的时间是很宝贵的,要尽可能地避免对一些没有必要的程序的优化工作。使用程序性能分析技术,能够将计算机内的数据进行整理,并按照消耗的时间,消耗的类型,消耗的历时等进行分析。按照这些数据,能够对计算机中的数据进行判断,决定先对哪一部分的程序进行优化,才能够保证对数据检测的工作效率,保证对程序的优化是有效的。使用程序性能分析的工具,不仅仅能够显示计算机中每一部分的优化需要多少时间,还能够按照需要优化的程度进行排序,引导工作人员对系统程序进行优化分析[12]。在对程序进行测试的过程中,可以先对计算机软件中的代码进行分析,能够找出已经被使用的代码,以及计算机接口的工作效率等等。可以在测试的过程中使用插桩的方式进行测试,分析完毕后在可执行的代码当中适当地融入嵌入式软件,并将二者进行综合测试,得到的结果就能够明确地看出,其中的代码哪些已经执行,哪些被遗漏,或者是哪些数据的信息覆盖还不够全面。需要注意的是,使用这类分析工具进行分析,很可能会影响到计算机软件代码的运行,导致软件运行出现故障问题。
5结束语
嵌入式计算机与我们的生活之间的关系十分紧密,能够产生巨大的影响,我们身边很多部分都使用了嵌入式计算机进行功能的完成和实现,比如:飞机的飞行控制器,或者是我们家中很多的家用电器,冰箱、洗衣机等等,都在一定程度上使用了嵌入式软件技术。随着科学技术的进步越来越快,嵌入式技术也越来越繁琐。这就要求我们要在不断地使用中对嵌入式技术进行完善,对嵌入式技术进行优化升级,能够从一定程度上保证嵌入式技术的发展,对软件进行测试,能够大大地提升嵌入式计算机软件的稳定性。
参考文献
[1]苗中华,陆鸣超,胡晓东,等.基于虚拟仪器技术的采棉机智能监控系统开发与应用[J].农业工程学报,2014,23:35-42.
[2]沈昌祥,张焕国,王怀民,等.可信计算的研究与发展[J].中国科学:信息科学,2010,2:139-166.
[3]王璞,张臻鉴,王玉玺,等.面向实时嵌入式机载软件的测试技术研究[J].计算机工程,1998,2:12-15.
[4]王金波,张涛.基于故障注入的嵌入式软件安全性测试框架及实现[J].计算机应用研究,2012,8:2991-2995.
[5]刘克,单志广,王戟,等“.可信软件基础研究”重大研究计划综述[J].中国科学基金,2008,3:145-151.
[6]王守信,方天选,李丽萍,等.山西省“十二五”期间推进两化融合及发展软件服务业的战略研究(续)第二篇发展软件服务业促进山西经济转型跨越发展的研究[J].机械管理开发,2011,2:1-20.
[7]凌杨,邵培南,佟雷,等.基于数字化仿真环境的嵌入式软件测试方法[J].计算机工程,2011,S1:49-51.
[8]刘斌,高小鹏,陆民燕,等.嵌入式软件可靠性仿真测试系统研究[J].北京航空航天大学学报,2000,4:490-493.
[9]孙昌爱,靳若明,刘超,等.实时嵌入式软件的测试技术[J].小型微型计算机系统,2000,9:920-924.
[10]荣国平,刘天宇,谢明娟,等.嵌入式系统开发中敏捷方法的应用研究综述[J].软件学报,2014,2:267-283.
[11]宋锡强,汪萍萍,周韶园.智能电能表软件测试技术概述[J].电测与仪表,2014,11:18-22.
[12]宋文,于林宇,刘军.通用嵌入式软件测试环境在武器装备软件测试中的应用[J].测控技术,2005,10:65-68.
【嵌入式计算机软件测试关键技术研讨论文】相关文章:
8.嵌入式实训报告