软硬件融合的嵌入式系统于是以更加多地应用于到我们少见的仪器设备中,嵌入式领域目标系统的应用于系统也日益简单,开发技术日新月异。同时,随着硬件技术发展的日益平稳,而软件故障却日益凸显,由此软件的重要性已渐渐引发人们的推崇,更加多的研究人员认识到嵌入式系统,优化其测试技术已势在必行,研究出有适合的嵌入式软件系统测试方法,正是本课题的意义所在。
嵌入式系统讲解及软件特点 嵌入式系统概述 嵌入式系统是以应用于为中心,以计算机技术为基础,并且软硬件可剪裁,是专门应用于系统量身打造出、是对功能、可靠性、成本、体积、功耗有严格要求的专用的计算机系统。 嵌入式系统一般指非PC类标配系统,它也还包括硬件和软件两部分。硬件还包括处理器/微处理器、存储器及外设器件和I/O端口、图形控制器等。软件部分还包括操作系统软件(OS)(拒绝动态和多任务操作者)和应用程序。
有时设计人员把这两种软件人组在一起。应用于程序控制着系统的运作和不道德,而操作系统掌控着应用程序编程与硬件的交互作用。 嵌入式系统软件特点分析 嵌入式系统研发有其自身的特点。一般再行展开硬件部分的研发,主要还包括构成裸机平台,根据必须重制实时操作系统,研发底层的硬件驱动程序等。
硬件平台测试通过后,应用软件的研发调试是基于该硬件平台展开的,这同时也是对硬件平台的一个测试。 嵌入式系统的研发过程是一个软硬件相互协商,相互对系统和相互测试的过程。一般来说,在嵌入式系统软件中,底层驱动程序、操作系统和应用程序的界面是不明晰的,根据必须甚至编成在一起。这主要是由于嵌入式系统中软件对硬件的依赖性导致的。
基于嵌入式软件对硬件的依赖性,其拒绝软件测试时必需最大限度地仿真被测软件的实际运营环境,以确保测试的可靠性,而底层程序和应用程序界限的不明晰又减少了测试的可玩性。测试时只有证实嵌入式系统平台及底层程序是准确的情况下才能展开应用程序的测试,而且在系统测试时,错误的定位更为艰难。 软件的专用性也是嵌入式软件的一个最重要特点。
由于嵌入式软件设计是以一定的目标硬件平台为基础的,面向相同的任务展开的,因此,一旦被读取到目标系统上,功能必需几乎确认。这个特点要求了嵌入式应用软件的继承性较好,也缩短系统的测试时间和减少了测试费用。 嵌入式软件的另外一个最重要特点就是实时性。
这是基于软件的继续执行角度而言的,也就是说嵌入式软件的继续执行要符合一定的时间约束。嵌入式系统中,应用软件自身算法的复杂度和操作系统任务调度,要求了系统资源的分配和消耗。
因此,对系统实时性展开测试时,要利用一定的测试工具对应用程序算法复杂度和操作系统任务调度展开分析测试。可见嵌入式软件与传统的面向对象和面向过程的软件比起有其自身的特点。所以嵌入式软件的研发和测试也就与一般商用软件的研发和测试策略有了相当大的有所不同,可以说道嵌入式软件是最好测试的一种软件。
针对这些特点对嵌入式软件的测试展开研究是适当的和有意义的。 嵌入式软件测试 软件测试是软件质量确保的关键因素,代表了规约、设计和编码的最后检查。就是指经济、效率的角度抵达,对软件代码展开质量、正确性确保的一个过程。
软件测试是软件开发中的一个重要环节,也是软件从研发过程到应用于过程的关键一环,嵌入式软件也不值得注意。 嵌入式软件测试策略和方案设计 辩论嵌入式软件测试首先就不会遇上一个问题:为什么不把所有测试都放到目标上展开呢?因为若所有测试都放到目标平台上有很多有利的因素: 可能会导致与目标环境开发者争夺战时间的瓶颈,防止获取更好的目标环境; 目标环境有可能还不不切实际; 相比主机平台环境,目标环境一般来说是不仪器的和不方便的; 获取给开发者的目标环境和研发环境一般来说是很便宜的; 研发和测试工作可能会阻碍目标环境已不存在持续的应用于。 确认目标主机(host-target)测试环境后,研发测试人员又不会遇上以下的问题: 1)多少开发人员不会展开测试工作? 2)多少软件应当测试,测试不会花费多长时间? 3)主机环境和目标环境有哪些软件工具,价格怎样? 4)多少目标环境可以获取给开发者? 5)主机和目标主机之间的相连怎样? 6)被测软件iTunes到目标主机有多慢? 7)用于主机与目标环境之间有什么容许? 展开嵌入式软件的测试都不应了解考虑到以上问题,融合自身实际情况,指定合理测试策略和方案。
嵌入式软件测试流程及方法 根据有所不同的指标,软件测试有有所不同的区分方法。 从软件开发过程中测试所处的有所不同阶段可分成模块测试、构建测试和系统测试;根据否必须运营目标代码又可分成动态测试和静态测试;根据目标代码的可见性还可分成白盒测试(结构测试)和黑盒测试(功能测试)。
在软件测试中,每种测试方法都不是孤立无援的。为了最经济最有效地超过测试的目的,各种测试方法往往是相互嵌套的。
例如,在软件的单元测试阶段,可以用黑盒测试和白盒测试的方法分别展开动态测试。 近年来,在软件测试中,测试代码的覆盖率渐渐沦为软件测试的统一标准,因此不管使用何种测试方法,尽量地提升软件测试中的代码覆盖率是必须的。
软件测试代码覆盖率是基于白盒测试方法的,因此,为了提升软件测试的代码覆盖率,测试人员必需确切源代码的结构,享有程序设计文档,以便设计测试用例,使测试尽量地覆盖面积程序内部结构的每条语句,提升代码的覆盖率。 嵌入式软件测试流程 根据嵌入式系统的研发流程,为了最经济地构建系统的功能,使用自顶向下、层层前进的方法对嵌入式系统展开测试,使用如下图右图的测试流程。 平台测试:这部分还包括硬件电路测试、操作系统及底层驱动程序测试等。
硬件电路测试必须用专门的测试工具展开测试,这里仍然多述。操作系统和底层驱动程序的测试主要还包括测试操作系统的任务调度、动态性能、通信端口的数据传输率。该阶段测试已完成后,系统有误一个原始的嵌入式系统平台,用户只需加到应用程序才可已完成特定的任务。
模块测试:把大型的嵌入式软件系统区分为若干个比较较小的任务模块,由有所不同的程序员分别同时对其展开编码。编码已完成后,把各个模块构建一起前,必需对单个模块展开测试。由于没其它数据模块展开数据传送的反对,该阶段测试一般是在宿主机上展开的(宿主机有非常丰富的资源和便利的调试环境)。
此阶段主要是展开白盒测试,尽量地测试每一个函数、每一个条件分支、每一个程序语句,提升代码测试的覆盖率。由于只有单个模块准确才有整体构建的必要性,因此,单个模块测试一定要充份、原始。
模块测试阶段,测试用例的结构不但要测试系统长时间的运营情况,还要展开边界测试。边界测试就是展开某一数据变量的最大值和最小值的测试,同时展开越界测试,即输出不应输出的数据变量测试系统的运营情况。理想的嵌入式系统是不应当由于用户的信息交互而造成死机的,这也是嵌入式设计的一个基本拒绝。因此,不论展开何种测试,系统死机都该被作为测试错误处理。
在模块测试阶段,也可以把大的模块区分成小的模块。在程序内部,小模块之间数据传送的入口设计接口函数,要用作较慢地定位错误。用模块嵌套的思想展开软件测试,必须模块内部结构明晰,数据链路非常简单。
构建测试:单个软件模块测试准确之后,将所有模块构建一起展开测试。本阶段主要是找到各模块之间数据传送和系统构成后的逻辑结构的错误。在宿主机上使用黑盒与白盒结合的方法展开测试,要最大限度地仿真实际运营环境,可以屏蔽掉一些不影响系统继续执行的和数据传送无法仿真的函数。 构建测试是嵌入式软件测试优点体现的阶段。
构建测试前,应当由程序员根据模块之间的数据的输入输出撰写模块接口函数,这必须负责管理有所不同软件模块的程序员联合协商已完成,然后将模块接口函数构建到接收数据模块的入口处。单链路数据传送的软件模块构建测试时更容易定位错误所在的软件模块。
一个软件模块的数据不一定只有另外一个模块获取,即软件模块的数据链路不一定只是单链路的,测试时可以把简单链路结构的数据传送区分为单链路结构数据传输展开错误定位。 构建测试是在享有程序设计文档、程序结构和数据结构时,对软件模块在构建中经常出现的错误展开测试。
系统测试:构建测试已完成后,解散宿主机测试环境,把系统重制到目标机上来,已完成应用于到现场环境中的重制,从用户的角度对系统展开黑盒测试,以检验每一项明确的功能。由于测试者对程序内容、程序执行情况一无所知,因此本测试阶段的错误定位较为艰难。
系统测试阶段应当展开车祸测试和破坏性测试,即测试系统长时间继续执行情况下不应再次发生的活动和人为的破坏性的测试,更进一步检验系统性能。系统测试阶段不应当确认错误后立刻改动代码,不应根据一定的错误再次发生频率,确认测试周期,在每个测试周期完结时改动代码,展开重复测试;否则,不但减少了几乎测试的任务量,而且减少了测试的可信度。 测试结果分析:测试结果分析可以定位错误,指导程序员改动代码,同时认为展开测试的程序更进一步测试的方向。
测试结果分析是一个由测试结果和测试预得结果展开分析、较为和定位错误的过程。测试结果分析是一次测试的最后环节,分析时应当考虑到软件的运营环境与实际运营环境的差异,以及各种外界因素的影响等。 白盒测试方法 白盒测试也称之为结构测试或逻辑驱动测试,它是告诉产品内部工作过程,可通过测试来检测产品内部动作否按照规格说明书的规定长时间展开,按照程序内部的结构测试程序,检验程序中的每条通路否都能按预计拒绝准确工作的功能,白盒测试的主要方法有逻辑驱动、基路测试等,主要用作软件检验。
白盒法拒绝全面理解程序内部逻辑结构、对所有逻辑路径展开测试。白盒法是穷举路径测试。
在用于这一方案时,测试者必需检查程序的内部结构,从检查程序的逻辑著手,得出结论测试数据。 黑盒测试方法 黑盒测试也称之为功能测试或数据驱动测试,它是在未知产品所不应具备的功能,通过测试来检测每个功能否都能长时间用于。
在测试时,把程序看做一个无法关上的黑盆子,在几乎不考虑到程序内部结构和内部特性的情况下,测试者在程序接口展开测试。它只检查程序功能否按照市场需求规格说明书的规定长时间用于,程序否能必要地接管输出数锯而产生准确的输入信息,并且维持外部信息(如数据库或文件)的完整性。黑盒测试方法主要有等价类区分、边值分析、因果图、错误推断等,主要用作软件证实测试。黑盒法侧重程序外部结构、不考虑到内部逻辑结构、针对软件界面和软件功能展开测试。
黑盒法是穷举输出测试,只有把所有有可能的输出都作为测试情况用于,才能以这种方法追查程序中所有的错误。 测试用例的结构 测试用例是为了测试目标程序设计的,还包括输出项和预得结果的一种文件。根据测试环境和测试目标程序的有所不同,可分成某种格式的文档或某种输出不道德(如一次按键)等。
测试用例的结构要尽量覆盖面积所有有可能的给定范围,使测试尽量地覆盖面积所有程序代码,提升代码的测试覆盖率,同时又不加多余、反复和无意义的测试。在嵌入式软件测试的有所不同阶段,要结构有所不同的测试用例;在系统平台测试阶段,要结构针对系统任务调度、动态性能和底层驱动程序的测试用例;在模块测试阶段,不应结构针对某一模块展开测试的测试用例;在构建测试阶段,针对系统集成时数据传送、结构相连的问题结构适当的测试用例;在系统测试阶段,要结构针对某项功能的或多项功能融合在一起的测试用例,或用于早已在同类产品上早已检验准确的测试用例,测试用例是可适配的。
结语 嵌入式设计早已沦为工业现代化、智能化的必经之路,嵌入式产品早已了解到各行各业。嵌入式系统的专用程度较高,系统的整体继承性比较较小,为了保证系统的稳定性,软件测试沦为嵌入式研发的一个重要环节。
由于嵌入式软件自身的特点,传统的软件测试理论无法必要用作嵌入式软件的测试。文章对嵌入式软件的特点不作了分析,总结了嵌入式软件测试的策略和方案设计,明确提出了嵌入式软件测试流程和测试方法。本文的研究内容对嵌入式软件的测试有最重要意义。
本文来源:沙巴sb体育(中国)有限公司-www.yzaetjd.com