导航切换

联系电话:
4008-118-111

二维码

当前位置:主页 > 常见问题 >

嵌入式软件手艺软件测试计谋战方案设想

浏览: 日期:2018-06-16

  nanjingchongwu.com测试成果阐发:测试成果阐发能够定位错误,指点法式员点窜代码,同时指出进行测试的法式进一步测试的标的目的。测试成果阐发是一个由测试成果战测试预得成果进行阐发、比力战定位错误的历程。测试成果阐发是一次测试的最初关键,阐发时该当思量软件的运转情况与隐真运转情况的差别,以及各类外界要素的影响等。

  软件测试是软件品质包管的环节要素,代表了规约、设想战编码的最终查抄。是主经济、效率的角度出发,对软件代码进行品质、准确性包管的一个历程。软件测试是软件开辟中的一个主要关键,也是软件主开辟历程到使用历程的环节一环,嵌入式软件也不破例。

  正在软件测试中,每种测试方式都不是伶仃的。为了最经济最无效地到达测试的目标,各类测试方式往往是互相嵌套的。比方,正在软件的单位测试阶段,能够用黑盒测试战白盒测试的方式别离前进履态测试。

  主软件开辟历程中测试所处的分歧阶段可分为模块测试、集成测试战体系测试;按照能否必要运转方针代码又可分为动态测试战静态测试;按照方针代码的可见性还可分为白盒测试(布局测试)战黑盒测试(功效测试)。

  软件的公用性也是嵌入式软件的一个主要特点。因为嵌入式软件设想是以必然的方针硬件平台为根本的,面向固定的使命进行的,因而,一旦被加载到方针体系上,功效必需彻底确定。这个特点决定了嵌入式使用软件的承继性较差,也耽误体系的测试时间战添加了测试用度。

  嵌入式软件的别的一个主要特点就是及时性。这是基于软件的施行角度而言的,也就是说嵌入式软件的施行要餍足必然的时间束缚。嵌入式体系中,使用软件本身算法的庞大度战操作体系使命安排,决定了体系资本的分派战耗损。因而,对体系及时性进行测试时,要借助必然的测试东西对使用法式算法庞大度战操作体系使命安排进行阐发测试。可见嵌入式软件与保守的面向对象战面向历程的软件比拟有其本身的特点。所以嵌入式软件的开辟战测试也就与正常商用软件的开辟战测试计谋有了很大的分歧,能够说嵌入式软件是最难测试的一种软件。针对这些特点对嵌入式软件的测试进行钻研是需要的战成心义的。

  嵌入式设想曾经成为工业隐代化、智能化的必经之路,嵌入式产物曾经深切到各行各业。嵌入式体系的公用水平较高,体系的全体承继性相对较小,为了包管体系的不变性,软件测试成为嵌入式开辟的一个主要关键。因为嵌入式软件本身的特点,保守的软件测试理论不克不及间接用于嵌入式软件的测试。文章对嵌入式软件的特点作了阐发,总结了嵌入式软件测试的计谋战方案设想,提出了嵌入式软件测试流程战测试方式。本文的钻研内容对嵌入式软件的测试有主要意思。

  测试用例是为了测试方针法式设想的,包罗输入项战预得成果的一种文件。按照测试情况战测试方针法式的分歧,可分为某种格局的文档或某种输入举动(如一次按键)等。测试用例的构造要尽可能笼盖所有可能的与值范畴,使测试尽可能地笼盖所有法式代码,提高代码的测试笼盖率,同时又不作多余、反复战无意思的测试。正在嵌入式软件测试的分歧阶段,要构造分歧的测试用例;正在体系平台测试阶段,要构造针对体系使命安排、及时机能战底层驱动法式的测试用例;正在模块测试阶段,应构造针对某一模块进行测试的测试用例;正在集成测试阶段,针对体系集成时数据传迎、布局毗连的问题构造响应的测试用例;正在体系测试阶段,要构造针对某项功效的或多项功效连系正在一路的测试用例,或利用曾经正在同类产物上曾经验证准确的测试用例,测试用例是可复用的。

  硬件电路测试必要用特地的测试东西进行测试,这里不再多述。操作体系战底层驱动法式的测试次要包罗测试操作体系的使命安排、及时机能、通讯端口的数据传输率。该阶段测试完成后,体系应为一个完备的嵌入式体系平台,用户只要增添使用法式即可完成特定的使命。

  进行嵌入式软件的测试都应深切思量以上问题,连系本身隐真环境,选定正当测试计谋战方案。

  集成测试是嵌入式软件测试幼处充真表隐的阶段。集成测试前,该当由法式员按照模块之间的数据的输入输出编写模块接口函数,这必要担任分歧软件模块的法式员配合和谐完成,然后将模块接口函数集成到领受数据模块的入口处。单链路数据传迎的软件模块集成测试时容易定位错误所正在的软件模块。一个软件模块的数据不必然只要别的一个模块供给,即软件模块的数据链路不必然只是单链路的,测试时能够把庞大链路布局的数据传迎划分为单链路布局数据传迎进行错误定位。

  确定方针主机(host-target)测试情况后,开辟测试职员又会碰到以下的问题:

  近年来,正在软件测试中,测试代码的笼盖率逐步成为软件测试的同一尺度,因而不管采用何种测试方式,尽可能地提高软件测试中的代码笼盖率是必须的。软件测试代码笼盖率是基于白盒测试方式的,因而,为了提高软件测试的代码笼盖率,测试职员必需清晰源代码的布局,具有法式设想文档,以便设想测试用例,使测试尽可能地笼盖法式内部布局的每条语句,提高代码的笼盖率。

  体系测试:集成测试完成后,退出宿主机测试情况,把体系移植到方针机上来,完成使用到隐场情况中的移植,主用户的角度对体系进行黑盒测试,以验证每一项具体的功效。因为测试者对法式内容、法式施行环境一窍不通,因而本测试阶段的错误定位比力坚苦。体系测试阶段该当进行不测测试战粉碎性测试,即测试系同一般施行环境下不应产生的勾当战报酬的粉碎性的测试,进一步验证体系机能。体系测试阶段不应当确定错误后当即点窜代码,应按照必然的错误产生频次,确定测试周期,正在每个测试周期竣事时点窜代码,进行频频测试;不然,不单添加了彻底测试的使命量,并且低落了测试的可托度。

  嵌入式体系开辟有其本身的特点。正常先辈行硬件部门的开辟,次要包罗构成裸机平台,按照必要移植及时操作体系,开辟底层的硬件驱动法式等。硬件平台测试通事后,使用软件的开辟调试是基于该硬件平台进行的,这同时也是对硬件平台的一个测试。

  按照嵌入式体系的开辟流程,为了最经济地真隐体系的功效,采用自顶向下、层层促进的方式对嵌入式体系进行测试,采用如下图所示的测试流程。

  嵌入式体系的开辟历程是一个软硬件互相和谐,互相反馈战互相测试的历程。正常来说,正在嵌入式体系软件中,底层驱动法式、操作体系战使用法式的界面是不清楚的,按照必要以至混编正在一路。此次要是因为嵌入式体系中软件对硬件的依赖性形成的。基于嵌入式软件对硬件的依赖性,其要求软件测试时必需最大限度地模仿被测软件的隐真运转情况,以包管测试的靠得住性,而底层法式战使用法式边界的不清楚又添加了测试的难度。测试时只要确认嵌入式体系平台及底层法式是准确的环境下才能进行使用法式的测试,并且正在体系测试时,错误的定位较为坚苦。

  嵌入式系同一般指非PC类标配体系,它也包罗硬件战软件两部门。硬件包罗处置器/微处置器、存储器及外设器件战I/O端口、图形节造器等。软件部门包罗操作体系软件(OS)(要求及时战多使命操作)战使用法式。有时设想职员把这两种软件组合正在一路。使用法式节造着体系的运作战举动,而操作体系节造着使用法式编程与硬件的交互感化。

  范畴方针体系的使用体系也日趋庞大,开辟手艺日月牙异。同时,跟着硬件手艺成幼的日趋不变,而软件毛病却日益突显,由此软件的主要性已逐步惹起人们的注重,越来越多的钻研职员意识到式体系,优化其测试手艺已势正在必行,钻研出符合的嵌入式软件体系测试方式,恰是本课题的意思所正在。

  嵌入式体系是以使用为核心,以计较机手艺为根本,而且软硬件可裁剪,是专为使用体系量身打造、是对功效、靠得住性、本钱、体积、功耗有严酷要求的公用的计较机体系。

  模块测试:把大型的嵌入式软件体系划分为若干个相对较小的使命模块,由分歧的法式员别离同时对其进行编码。编码完成后,把各个模块集成起来前,必需对单个模块进行测试。因为没有其它数据模块进行数据传迎的支撑,该阶段测试正常是正在宿主机幼进行的(宿主机有丰硕的资本战便利的调试情况)。此阶段次要是进行白盒测试,尽可能地测试每一个函数、每一个前提分支、每一个法式语句,提高代码测试的笼盖率。因为只要单个模块准确才有全体集成的需要性,因而,单个模块测试必然要充真、完备。模块测试阶段,测试用例的构造不单要测试系同一般的运转环境,还要进行鸿沟测试。鸿沟测试就是进行某一数据变量的最大值战最小值的测试,同时进行越界测试,即输入不应输入的数据变量测试体系的运转环境。抱负的嵌入式体系是不应当因为用户的消息交互而导致死机的,这也是嵌入式设想的一个根基要求。因而,非论进行何种测试,体系死机都该被作为测试错误处置。

  白盒测试也称布局测试或逻辑驱动测试,它是晓得产物内部事情历程,可通过测试来检测产物内部动作能否依照规格仿单的划定一般进行,依照法式内部的布局测试法式,查验法式中的每条通路能否都能按预约要求准确事情的功效,白盒测试的次要方式有逻辑驱动、基路测试等,次要用于软件验证。“白盒”法要求片面领会法式内部逻辑布局、对所有逻辑路径进行测试。“白盒”法是穷举路径测试。正在利用这一方案时,测试者必需查抄法式的内部布局,主查抄法式的逻辑动手,得出测试数据。

  黑盒测试也称功效测试或数据驱动测试,它是正在已知产物所应拥有的功效,通过测试来检测每个功效能否都能一般利用。正在测试时,把法式看作一个不克不及翻开的黑盆子,正在彻底不思量法式内部布局战内部特征的环境下,测试者正在法式接口进行测试。它只查抄法式功效能否依照需求规格仿单的划定一般利用,法式能否能恰当地领受输入数锯而发生准确的输出消息,而且连结外部消息(如数据库或文件)的完备性。黑盒测试方式次要有等价类划分、边值阐发、因果图、错误猜测等,次要用于软件确认测试。“黑盒”法着眼于法式外部布局、不思量内部逻辑布局、针对软件界面战软件功效进行测试。“黑盒”法是穷举输入测试,只要把所有可能的输入都作为测试环境利用,才能以这种方式查出法式中所有的错误。

  正在模块测试阶段,也能够把大的模块划分成小的模块。正在法式内部,小模块之间数据传迎的入口设想接口函数,要用于倏地地定位错误。用模块嵌套的思惟进行软件测试,必要模块内部布局清楚,数据链路简略。

  会商嵌入式软件测试起首就会碰到一个问题:为什么不把所有测试都放正在方针幼进行呢?由于若所有测试都放正在方针平台上有良多晦气的要素:

  集成测试是正在具有法式设想文档、法式布局战数据布局时,对软件模块正在集成中呈隐的错误进行测试。

  集成测试:单个软件模块测试准确之后,将所有模块集成起来进行测试。本阶段次要是找出各模块之间数据传迎战体系构成后的逻辑布局的错误。正在宿主机上采用黑盒与白盒相连系的方式进行测试,要最大限度地模仿隐真运转情况,能够屏障掉一些不影响体系施行的战数据传迎难以模仿的函数。