嵌入式计算机软件测试关键技术研究

来源 :电脑知识与技术 | 被引量 : 0次 | 上传用户:tianyi724
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:现阶段,嵌入式计算机技术不断得到快速发展,这在很大程度上促使其在社会生活各个领域内的应用也越来越广泛,且该系统中软件系统比重及软件架构呈现越来越复杂的趋势,引起业界不断提升对软件运行可靠性的高度关注。文章全面阐述了嵌入式计算机软件测试的基本概念,详细探讨嵌入式计算机软件测试的关键技术,以期能提升嵌入式软件测试的质量及应用性能,从而为软件测试工作的开展提供一定借鉴和参考价值。
  关键词:嵌入式计算机;软件测试;宿主机;仿真机;目标机
  中图分类号:TP311 文献标识码:A 文章编号:1009-3044(2015)13-0092-02
  Abstract: In this stage, the embedded computer technology has been rapid development, prompting its application in various fields of social life are increasingly being used to a large extent, and the system software and software architecture presents the proportion the trend to more complex, causing great concern to the industry and improve the operational reliability of the software. Full article describes the basic concepts of embedded computer software testing, detailed discussion of key technologies for embedded computer software testing, with a view to enhance the quality and application performance for embedded software testing, to provide some reference for the development of software testing and the reference value .
  Key words: embedded computer; software testing; host; simulator; target
  现阶段,随着嵌入式计算机技术的不断革新,其在社会生活各个领域之内的应用越来越广泛,业界逐渐提升对软件的质量和应用性能的重视,以求其能满足当前日益增长的软件测试的需要[1]。软件质量的监测是嵌入式软件测试最主要的工作内容,对嵌入式软件的开发及应用有着非常重要的作用。
  1 嵌入式软件测试
  软件测试是为捕捉代码中得错误而对代码进行分析或执行的过程,这一测试在很大程度上能保证软件的质量及可靠性,为产品设计定型提供一定的依据[2]。同其他软件相比,嵌入式软件有着很强的专用性,强调必须在需求指定的专用硬件平台上进行运作。并且,嵌入式软件在自身的开发及运行环境上呈现出独特的交叉分离特点:通常在宿主机上运动编辑和编译这些开发工具,而常见的调试命令及数据传输则是建立在主机与下载好软件的目标机相互联立的通讯上。具体交叉开放方式如图1所示。除此之外,考虑到主机和目标机在操作系统、处理器体系结构上存在的差异,就在很大程度上赋予嵌入式软件开发过程以更为严密的复杂性。这里我们所涉及的宿主机主要是指微机、工作站此类的通用性计算机,而目标机的关键性作用便是对于嵌入式系统通讯的宿主机进行严格意义上的区分。
  2 嵌入式软件测试关键技术
  2.1 宿主机关键技术
  对宿主机的测试通常是通过代码逻辑测试实现的,宿主机测试的关键技术可分为静态测试技术和动态测试技术。
  1)静态测试技术
  现阶段,最常用的软件查错方式仍是人工审议与走查,但基于软件规模的日益增大,往往需要大量的工程师人才资源,且源码在目录或机器上较为分散,难以进行软件的审议与走查[3]。针对这一问题,需利用必要手段获取整个软件系统框图,实现相关量的自动化链接,在很大程度上为软件的审议与走查提供较大便利。而利用静态测试分析技术能绘制程序逻辑图及控制流程、获取完整的软件系统逻辑框图、进行程序路径分析、可互相转换生成的逻辑图、流程图、框图等。以便设计出更为高效的测试用例来提升软件质量及测试覆盖率。
  2)动态测试技术
  动态测试技术的对象和重点是软件代码的动态执行能力,全面分析代码的覆盖率、内存分配使用信息。其中被测软件的代码在测试执行时出现的执行情况便是代码的覆盖率,对代码覆盖率的监控能提升软件测试的有效性,对测试完成力度进行全面掌控,并能快速识别被遗漏的测试数据,为测试人员科学掌握并控制测试进程提供数据参考。代码覆盖率的计算指标包括语句覆盖、分支/判定覆盖及MC/DC[4]。而内存分配信息则强调高度关注其中的每一个函数、内存分配点内存分配及释放情况,并及时监视动态内存分配中出现的错误信息。利用动态内存分配信息,能快速准确掌握内存遗漏问题,为内存分配优化提供策略依据。
  2.2 仿真机关键技术
  作为宿主机与目标机测试的中间性缓解,仿真机能在很大程度上超真实地模拟目标机的功能及性能,从而获取较目标机更为真实的物理性能测试结果。测试数据获取技术及仿真技术是仿真机测试的关键技术。
  1)测试数据获取技术
  如何利用仿真机获取测试过程中产生的数据是当前嵌入式软件测试的瓶颈之一,大多嵌入式软件测试功能都需利用源代码进行测试,这就需要采取积极有效的方式确保软件质量及性能,以获取准确的测试数据。现阶段,常用的测试数据获取方式包括实际物理通道取数、开发工具的虚拟IO指数以及内存取数。其中,实际物理通道取数是目标机与主机之间物理的具体通信方式,如串口、USB、并口等,利用实际物理通道取数能在很大程度上直接经由数据通信软件实现与主机之间的通讯,并在此基础上进行必要的测试数据上载,开发工具虚拟IO指数是一种更为高级的开发工具,为测试带来极大便利,如Tornado及TI CCS。假使目标系统没有上述两种获取方法,那么还能够通过内存读取数据的方式直接获取内存取数。换句话说,是在充分确保足够缓存的基础上,加之修改测试工具的库,在缓存中写入输出数据,测试进行或结束后,对缓存中记录的数据进行读取,并在此基础上以文件的形式保存到主机上。值得关注的是,这样的方式通常必须在测试前充分确保缓存的大小。但是从适用性上来说,这种方式有着较大的优越性,几乎可以说这种功能充分体现在所有的开发调试工具上。   2)仿真技术
  嵌入式软件仿真是一种建立在局域网基础上的数据集中性管理、处理系统。其结构包括实时仿真机、I/O系统、软件测评控制模板、测试结果分析工具、总线仿真及总线监控模板、实时调度模板[5]。仿真测评控制技术及仿真技术是仿真测试常见的关键性技术。利用必要的仿真测试,能高度真实地模拟现场总线系统上的相关数据,除此之外,还能按照不同的测试对象,逐个分析研究各种电信号激励源仿真,但总线除外,从而实时检测并分析现场总线的运行状态,实现人机交互界面,控制实时在线测评平台各设备,完成软件测评等。
  2.3 目标机关键技术
  高度评估系统综合性能是当前目标机的测试重点,其具体功能是用来评估真实的物理目标机,最大限度对软件交互、可靠性及稳定性进行专门性获取。从关键技术上来说,故障注入、内存分析、性能分析为目标机测试常见的三种关键技术。其中故障注入技术能便于进行系统边界测试、容错性测试、鲁棒性测试、强度性测试等。内存分析技术主要用来对动态内存分配中存在的缺陷进行处理,当前主要有硬件和软件这两种内存分析手段。从硬件方面来说,在价格上基于硬件的内存分析工具较为昂贵,并且使用范围有限,仅仅能运作在工具指定的环境之中。而从软件方面来说,基于软件的内存分析方式会影响到代码性能,给实施操作带来干扰。性能分析技术能为开发人选择代码优化范围提供必要的参考数据,能准确分析并提供执行时间的消耗方式、消耗时间以及每个例程所需要使用的具体时间等,便于开发人正式决定通过何种方式对软件进行优化,能获得更高时间性能。此外,性能分析工具还能联合调试工具引导开发人员及时准确查看那些亟待优化的特定函数,能指导开发人员对系统调用中错误及程序结构上的缺陷进行必要的探讨和分析。
  除此之外,还能在性能测试中,最大限度利用代码覆盖分析工具追踪那些被执行过的代码。测试人员总结测试结果数据,能准确发现被执行过的代码及被遗漏的代码。对嵌入式软件来说,代码覆盖分析工具有着对代码执行侵入的可能,会在一定程度上对代码运行过程产生影响。
  3 结束语
  当前嵌入式系统应用领域越来越广泛,其软件规模和复杂性日益提升,这就促使各个领域进一步提升对嵌入式系统的质量、可靠性、有效性的要求,从客观上来说,正是这些软件的质量决定了整个产品的质量。本文通过对嵌入式计算机软件测试关键技术的深入分析和研究,以期能为嵌入式软件测试研究和实践提供一定参考和借鉴作用。
  参考文献:
  [1] 高赛军.嵌入式武控计算机软件测试关键技术研究[D].上海:华东理工大学,2013.
  [2] 施小敏.嵌入式IO控制器软件测试关键技术研究[D].上海:上海交通大学,2012.
  [3]平婕,秦军,康建华,安元伟.嵌入式软件测试关键技术研究[J].有线电视技术,2010(8):45-47,50.
  [4] 周凌云.嵌入式武控计算机软件测试关键技术的研究分析[J].科技展望,2015(4):136.
  [5] 凌杨,邵培南,佟雷,李建军.基于数字化仿真环境的嵌入式软件测试方法[J].计算机工程,2011(S1):49-51.
其他文献
通过三个具体的实例介绍了信息安全的实际需要以及实现过程,首先介绍了在排样应用程序采用阿拉丁HASP SRM外壳加密,以及为满足更多中小型企业的需要,采用Java Web Start技术
改革教学方法推进素质教育——文科教学开展“读、写、议”的思路与实践吕浩雪课堂教学是高校整个人才培养活动过程中最基本最重要的环节,课堂教学质量的高低,直接影响到整个人
为提高东北农田农民习惯施肥田条件下化肥的利用效率,并为东北农田土壤合理施肥提供参考依据,通过采集东北三省农民习惯施肥条件下春玉米种植区0~30 cm、30~60 cm、60~90 cm剖面土壤,分别测定了土壤全碳(TC)、有机碳(SOC)、无机碳(IC)、微生物生物量碳(SMBC)、溶解性有机碳(DOC)、颗粒有机碳(POC)。结果表明0~30 cm、30~60 cm土壤剖面各活性碳库变化较为明显
本文使用瞬变应答技术,研究了C2H6在Mn2O3催化剂上的氧化反应。根据产物CO2分别对反应物C2H6和O2的浓度阶跃变化结果,证实C2H6的催化氧化反应,必须经历催化剂表面上O2(吸附态)和C2H6(吸附态)的反应步骤,总反应的RDS是
摘要:随着社会网络化发展,学校教学和企业培训的也越来越多的选择网络教学,网络教学除平台建设外,需要更多的是较高质量的教学课件。传统CAI课件不能适应网络化教学培训的需要,取而代之的是基于网络技术,尤其是Web技术的课件。网络课件除具有传统课件的教学优点外,还可以网上共享,并且具有开放性、动态性、协同性、交互性,主要用于网络环境下的教学和课堂辅助教学。  关键词:基于网络;教学课件;辅助教学  中图
被马克思称为“历史的有力杠杆”的科学技术,正在人类社会现代文明演进中,发挥出无可比拟的作用,它不仅从根本上改变着世界的经济格局和产业结构,而且也影响着人的思想观念和行为
设计了一种基于B/S三层体系结构的煤炭企业绩效管理系统,从系统总体设计、系统结构、功能设计和数据库设计四个方面设计,使用.net和C#技术进行业务层和逻辑层的实现,数据访问
本文提出一个从X-射线实验数据出发分析电荷密度分布图的新方法.有关此法的完整的量子理论推导可见文献[1,2].这个新方法的特点在用非球形原子组成预分子,在精化原子结构参数
已被公认的两条补体激活途径,即经典途径和替代途径外,还存在着一条不依赖抗有--抗体复合物而激活补体的经典途径。用E.coliB,E.coliK12gat^+的细胞壁加入到补体参与的溶血实验中有明显的溶血抑制作用,从
提高化工原理课的教学质量刘士星化工原理课程是一门工程性很强的技术基础课,是联系化工理论与生产实践的桥梁.象我校这样一所重点的理工科大学,该课更是化学理论与工程实际相联