您好, 访客   登录/注册

刍议嵌入式软件进行功能测试的相关方法应用

来源:用户上传      作者:

  摘 要:嵌入式计算机技术是当前计算机行业一种比较流行的技术,嵌入式计算机已完全融入到我们生活当中,关系十分紧密,影响十分巨大。科学技术发展,嵌入式计算机用途范围逐渐广泛,在使用过程中,嵌入式计算机拥有很多功能,能够满足客户对不同功能的需求。但是,由于嵌入式类型计算机相比其他计算机软件结构较为复杂,因此在使用前需要人们按照使用须知操作嵌入式计算机,并测试检查分析嵌入式计算机软件技术的有效性。本文介绍了嵌入式软件的概念,让读者对嵌入式软件有所了解,阐述了嵌入式软件测试的相关技术,并利用这些技术测试检查分析嵌入式计算机软件。
  关键词:嵌入式软件;计算机软件;软件测试;关键技术
  嵌入式计算机,是针对实现某技术、某种网络、或某种功能的计算机系统。用计算机技术,融合嵌入式系统,使计算机能够实现的功能增多,比如计算机硬件的兼容性,和专业性较强的计算机软件,从而满足复杂多变的实际工程需求。如果开发某种功能需要,嵌入式计算机会对以下因素有着十分严格要求:开发的成本,功能需求可靠性,计算机的大小等。基于嵌入式技术,在对计算机处理器、应用、硬件、系统等进行操作的基础上,能够更进一步地保证计算机技术的实现。目前嵌入式软件的现状,被应用的行业范围广,尤其是工业领域,它能够提升工作效率,保证产品的生产质量。我国工业发展迅速,进步很快,科学技术水平提高,相应的,嵌入式计算机技术水平也得到了空前的发展。我们绝大部分使用的计算机,是普通型计算机。而嵌入式计算机是一种专业性较强的计算机系统,以实现某技术或某一种网络为目标,是一种新型的计算机系统。针对客户要求嵌入式计算机开发出某种功能,提升工作效率。嵌入式计算机应用范围广,其软件愈加复杂,所以,现在测试嵌入式计算机软件显得更为重要。嵌入式软件跟普通计算机性质一样,一般安装在嵌入式计算机中,是自动化核心。一般情况下,根据工作需要,选择嵌入式软件完成相应功能,对嵌入式软件的稳定性要求要很严格,测试检查分析嵌入式计算机件,保证其能够稳定正常工作。
  2.嵌入式软件测试方法
  本文重点介绍了针对嵌入式软件的几种测试方法:静态分析、软件质量度量、性能分析、内存分析、覆盖率分析、单元/集成测试、系统测试。
  2.1静态分析
  静态分析是一种利用测试工具对代码进行的机械性和程序化的分析方法。静态分析是直接对源代码进行代码走读、静态扫描和分析,不需要编译或运行代码,也不会受到其他缺陷和其他模块的影响。工具举例:PolySpace工具是一种嵌入式软件的静态分析工具。它包括PolySpaceBugFinder和PolySpaceCodeProver两个模块。PolySpaceBugFinder是靜态代码分析软件,可以发现C/C++代码中的各类缺陷,包括运行时错误,数据流问题,编程问题等各类代码缺陷。PolySpaceCodeProver使用抽象解释和静态分析方法来证明,识别和分析运行时错误,例如溢出,除零和指针的越界。
  2.2软件质量度量
  软件质量度量是衡量软件是否符合需求、标准的重要体现,它的目的在于利用度量来改进软件过程。要确保软件的整体质量,就需要在各个环节严格控制。工具举例:很多嵌入式软件是用C或C++语言编写,但编程语言本身并不安全,QAC/QAC++是一种代码静态分析工具,它的静态分析能力包括:质量度量和软件结构分析。
  2.3性能分析
  近年来,嵌入式系统被广泛应用于汽车、家电、通信、制造等各个领域,领域间的竞争也激发了嵌入式技术的快速发展,对软件性能分析是嵌入式开发过程中至关重要的一部分,嵌入软件的性能分析是嵌入式环境下重要的测试方法。工具举例:RapiTime是一种软件运行时间评估工具:它能够进行软件时间性能的测量,通过分析得出最差执行时间数据,并为代码优化提供指导。它的特点包括检查不同的函数对于最差、最优以及平均执行时间的影响;通过大量调用来查看执行时间的变化;对于函数自身的上下文、循环以及数据块进行分析等。
  2.4内存分析
  嵌入式系统的内存是有限的,但对实时性要求又很高。内存问题主要包括内存泄露、内存崩溃、内存碎片。其中内存泄露问题尤为严重,它会导致系统可用内存减少,甚至导致系统崩溃。现在已经有许多工具来解决内存泄露问题,如Mtrace、Memwatch、Purify等。这些工具使用库跟踪、动态检测、程序插桩等技术来发现和定位内存泄露的问题。
  2.5覆盖率分析
  覆盖率测试(也成逻辑测试)是度量测试完整性和查找软件问题的必要手段,是测试有效性的度量。覆盖率测试的目的是确保软件所有的程序至少被执行一次,尽可能全的覆盖软件程序的各个语句及其分支结构,以便发现软件中的错误和问题。工具举例:RapiCover是一款基于目标硬件的嵌入式软件的测试覆盖率分析工具,针对所使用的测试用例给出对应的现场测试覆盖率信息,其插桩点的开销极小,并能针对目标板的实际情况提供灵活的支持方式。它的特点包括:支持C、C++、Ada编程语言;极小的时间开销;语句覆盖,变量定义、条件判断或循环等。
  2.6单元/集成测试
  嵌入式软件的单元测试大多是在宿主机环境下进行的,只有少数情况下需要在目标机环境下进行。单元测试主要是进行白盒测试,应尽可能地测试每一个函数,每一个条件分支、每一个程序语句,提高代码的测试覆盖率。在单元测试完成后,接下来需要进行集成测试。集成测试又称为组装测试,是将各模块合成一个组件,并测试它们间的接口。工具举例:Tessy软件是一款专门针对嵌入式软件动态测试的工具。它可以对C/C++代码进行单元测试和集成测试。
  2.7系统测试
  嵌入式软件系统测试的目的与通用软件类似,都是通过与需求做比较来发现软件缺陷。嵌入式软件的系统测试应综合运行各种测试用例设计方法,并根据需求规格说明书来设计,在目标机环境下运行。
  系统测试阶段除了功能测试外,还应该包括意外测试、破坏性测试、性能测试等。在系统测试中,随机测试是比较经济有效的一种测试方法。将随机测试结果和操作规范的要求作比较,还可以得到软件可靠性的估计。有效地将随机抽样测试与其他测试技术结合可以产生更强大和更高效的测试策略。
  三、结束语
  综上所述,得益于信息技术的快速发展,计算机软硬件方面都取得较大的进步。当前,计算机硬件的发展不断趋于稳定,但软件方面还是时有故障发生。因此对嵌入式软件功能测试工作还应该进行进一步的优化。嵌入式系统的应用不断扩大,开发技术也在不断成熟,这种方式对计算机软件的发展大有裨益。但实际进行嵌入式软件功能测试时仍存在一定的难度,因此需要采取一定的措施改善测试情况,并在工作实践中对技术及工具不断的创新和改良,以促进嵌入式软件功能测试的有效进行。
  参考文献:
  [1] 嵌入式软件测试技术综述[J].陈涛.电子技术与软件工程.2017(20)
  [2] 嵌入式软件测试自动化技术研究[J].王俊凯.通讯世界.2018(04)
  [3] 关于嵌入式软件测试技术分析[J].包玮琛.电子技术与软件工程.2017(03)
  [4] 嵌入式软件测试环境研究[J].于慧媛,张海军,王敏帅.科技视界.2018(21)
  (作者单位:珠海格力电器股份有限公司)
转载注明来源:https://www.xzbu.com/1/view-14706777.htm