⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 200603112150255.html

📁 软件工程的红包书
💻 HTML
📖 第 1 页 / 共 2 页
字号:
<html>
<head><title>嵌入式软件测试</title></head>
<center><h1>嵌入式软件测试</h1></center>
<div><P align=right><FONT face=黑体 color=#f70968><a href="200604112229525.html" tppabs="http://www.itisedu.com/phrase/200604112229525.html" target="_new">中科永联</a>高级技术培训中心(</FONT><FONT face=黑体 color=#f70968>www.itisedu.com</FONT><FONT face=黑体 color=#f70968>)<IMG src="2006311225219610.jpg" tppabs="http://www.itisedu.com/manage/Upload/image/2006311225219610.jpg" border=0></FONT></P>
<P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <a href="200603112150255.html" tppabs="http://www.itisedu.com/phrase/200603112150255.html" target="_new">嵌入式软件测试</a>/<FONT face=Verdana><a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604240923445.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604240923445.html'" tppabs="http://www.itisedu.com/phrase/200604240923445.html" target="_new">嵌入式测试</a></FONT>或叫<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604240926075.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604240926075.html'" tppabs="http://www.itisedu.com/phrase/200604240926075.html" target="_new">交叉测试</a>(<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604240932315.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604240932315.html'" tppabs="http://www.itisedu.com/phrase/200604240932315.html" target="_new">cross-test</a>)的日的与非<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603112105025.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603112105025.html'" tppabs="http://www.itisedu.com/phrase/200603112105025.html" target="_new">嵌入式软件</a>是相同的。但是,在<a href="200603112246585.html" tppabs="http://www.itisedu.com/phrase/200603112246585.html" target="_new">嵌入式系统</a>设计中,<a href="200604232134205.html" tppabs="http://www.itisedu.com/phrase/200604232134205.html" target="_new">软件</a>正越来越多地取代硬件,以降低系统的成本,获得更大的灵活性,这就需要使用更好的测试方法和工具进行嵌入式和实时软件的测试。</FONT></P>
<P><FONT face=Verdana>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 通常嵌入式系统对可靠性的要求比较高。嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件进行严格的测试、确认和验证。随着越来越多的领域使用软件和微处理器控制各种嵌入式设备,对门益复杂的嵌入式软件进行快速有效的测试愈加显得重要。</FONT></P>
<P><FONT face=Verdana>  <a href="200602271215442.html" tppabs="http://www.itisedu.com/phrase/200602271215442.html" target="_new">软件测试</a>的目的是保证软件满足<a href="200603101518295.html" tppabs="http://www.itisedu.com/phrase/200603101518295.html" target="_new">需求</a>规格说明。系统失效是系统没有满足—个或多个正式需求规范中所要求的需求项。嵌入式软件有其特殊的失效判定准则,但是,嵌入式软件测试的日的与非嵌入式软件是相同的。在嵌入式系统设计中,软件正越来越多地取代硬件,以降低系统的成本,获得更大的灵活性,这就需要使用更好的测试方法和工具进行嵌入式和实时软件的测试。</FONT></P><FONT face=Verdana>
<P><BR><STRONG>一、嵌入式软件的测试方法</STRONG></P>
<P>  一般来说,软件测试有7个基本阶段,即单元或<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200604240859415.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200604240859415.html'" tppabs="http://www.itisedu.com/phrase/200604240859415.html" target="_new">模块测试</a>、<a href="200603111743305.html" tppabs="http://www.itisedu.com/phrase/200603111743305.html" target="_new">集成测试</a>、外部<a href="200604241204115.html" tppabs="http://www.itisedu.com/phrase/200604241204115.html" target="_new">功能测试</a>、<a href="200603120943595.html" tppabs="http://www.itisedu.com/phrase/200603120943595.html" target="_new">回归测试</a>、<a href="200603111950135.html" tppabs="http://www.itisedu.com/phrase/200603111950135.html" target="_new">系统测试</a>、<a href="200603282249515.html" tppabs="http://www.itisedu.com/phrase/200603282249515.html" target="_new">验收测试</a>、安装测试。嵌入式软件测试在4个阶段上进行,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、<a href="200603101705575.html" tppabs="http://www.itisedu.com/phrase/200603101705575.html" target="_new">白盒测试</a>与<a href="200603101655385.html" tppabs="http://www.itisedu.com/phrase/200603101655385.html" target="_new">黑盒测试</a></P>
<P>  一般来说,软件测试有两种基本的方式,即白盒测试方法与黑盒测试方法,嵌入式软件测试也不例外。</P>
<P>  白盒测试或基本代码的测试检查<a href="200604232224305.html" tppabs="http://www.itisedu.com/phrase/200604232224305.html" target="_new">程序</a>的内部设计。根据源代码的组织结构查找<a href="javascript:if(confirm('http://www.itisedu.com/phrase/200603111651085.html  \n\nThis file was not retrieved by Teleport Pro, because it was unavailable, or its retrieval was aborted, or the project was stopped too soon.  \n\nDo you want to open it from the server?'))window.location='http://www.itisedu.com/phrase/200603111651085.html'" tppabs="http://www.itisedu.com/phrase/200603111651085.html" target="_new">软件缺陷</a>,一股要求测试人员对软件的结构和作用有详细的了解,白盒测试与代码覆盖率密切相关,可以在白盒测试的同时计算出测试的代码的覆盖率,保证测试的充分性。把100%的代码都测试到几乎是不可能的, 所以要选择最重要的代码进行白盒测试。由于严格的安全性和可靠性的要求,嵌入式软件测试同非嵌入式软件测试相比,通常要求有更高的代码覆盖率。对于嵌入式软件,白盒测试一般不必在目标硬件上进行,更为实际的方式是在开发环境中通过硬件仿真进行,所以选取的测试工具应该支持在宿主环境中的测试。</P>
<P>  黑盒测试在某些情况下也称为功能测试。这<a href="200603090857555.html" tppabs="http://www.itisedu.com/phrase/200603090857555.html" target="_new">类</a>测试方法根据软件的用途和外部特征查找软件缺陷,不需要了解程序的内部结构。黑盒测试最大的优势在于不依赖代码,而是从实际使用的角度进行测试,通过黑盒测试可以发现白盒测试发现不了的问题。因为黑盒测试与需求紧密相关,需求规格说明的质量会直接影响测试的结果,黑盒测试只能限制在需求的范围内进行。在进行嵌入式软件黑盒测试时,要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。为了保证正确地测试,还须要检验软硬件之间的接口。嵌入式软件黑盒测试的一个重要方面是极限测试。在使用环境中,通常要求嵌入式软件的失效过程要平稳,所以,黑盒测试不仪要检查软件工作过程,也要检查软件换效过程。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、目标环境测试和宿主环境测试</P>
<P>  在嵌入式软件测试中,常常要在基于目标的测试和基于宿主的测试之间作出折衷。基于目标的测试消耗较多的经费和时间,而基于宿主的测试代价较小,但毕竟是在模拟环境中进行的。目前的趋势是把更多的测试转移到宿主环境中进行,但是,目标环境的复杂性和独特性不可能完全模拟。</P>
<P>  在两个环境中可以出现不同的软件缺陷,重要的是目标环境和宿主环境的测试内容有所选择。在宿主环境中,可以进行逻辑或界面的测试、以及与硬件无关的测试。在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工具可以更快地完成调试和测试任务。而与定时问题有关的白盒测试、中断测试、硬件接口测试只能在目标环境中进行。在软件测试周期中,基于目标的测试是在较晚的“硬件/软件集成测试”阶段开始的,如果不更早地在模拟环境中进行白盒测试,而是等到“硬件/软件集成测试”阶段进行全部的白盒测试,将耗费更多的财力和人力。</P>
<P><STRONG>二、嵌入式软件的测试工具</STRONG></P>
<P>  用于辅助嵌入式软件测试的工具很多,下面对几类比较有用的有关嵌入式软件的测试工具加以介绍和分析。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1、内存分析工具</P>
<P>  在嵌入式系统中,内存约束通常是有限的。内存分析工具用来处理在动态内存分配中存在的缺陷。当动态内存被错误地分配后,通常难以再现,可能导致的失效难以追踪,使用内存分析工具可以避免这类缺陷进入功能测试阶段。目前有两类内存分析工具——软件和硬件的。基于软件的内存分析工具可能会对代码的性能造成很大影响,从而严重影响实时操作;基于硬件的内存分析工具价格昂贵,而且只能在工具所限定的运行环境中使用。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2、性能分析工具</P>
<P>  在嵌入式系统中,程序的性能通常是非常重要的。经常会有这样的要求,在特定时间内处理一个中断,或生成具有特定定时要求的一帧。开发人面临的问题是决定应该对哪一部分代码进行优化来改进性能,常常会花大量的时间去优化那些对性能没有任何影响的代码。性能分析工具会提供有关的数据,说明执行时间是如何消耗的,是什么时候消耗的,以及每个例程所用的时间。根据这些数据,确定哪些例程消耗部分执行时间,从而可以决定如何优化软件,获得更好的时间性能。对于大多数应用来说,大部分执行时间用在相对少量的代码上,费时的代码估计占所有软件总量的5%-20%。性能分析工具不仅能指出哪些例程花费时间,而且与调试工具联合使用可以引导开发人员查看需要优化的特定函数,性能分析工具还可以引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3、GUI测试工具</P>
<P>  很多嵌入式应用带有某种形式的图形用户界面进行交互,有些系统<a href="200603291559575.html" tppabs="http://www.itisedu.com/phrase/200603291559575.html" target="_new">性能测试</a>足根掘用户输入响应时间进行的。GUI测试工具可以作为脚本工具有开发环境中运行<a href="200603291707535.html" tppabs="http://www.itisedu.com/phrase/200603291707535.html" target="_new">测试用例</a>,其功能包括对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。很多嵌入式设备没有GUI,但常常可以对嵌入式设备进行插装来运行GUI测试脚本,虽然这种方式可能要求对被测代码进行更改,但是节省了功能测试和回归测试的时间。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4、覆盖分析工具</P>
<P>  在进行白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过。分析过程可以通过插装来完成,插装可以是在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,也可以是二者相结合。测试人员对结果数据加以总结,确定哪些代码被执行过,哪些代码被巡漏了。覆盖分析工具一般会提供有关功能覆盖、分支覆盖、条件覆盖的信息。对于嵌入式软件来说,代码覆盖分析工具可能侵入代码的执行,影响实时代码的运行过程。基于硬件的代码覆盖分析工具的侵入程度要小一些,但是价格一般比较昂贵,而且限制被测代码的数量。<BR>&nbsp;<BR><STRONG>三、嵌入式软件测试策略</STRONG></P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 在嵌入式领域目标系统的应用系统日趋复杂,而由于竞争要求产品快速上市,开发技术日新月异,同时硬件发展的日益稳定,而软件故障却日益突出,软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入式系统的测试势在必行。提到嵌入式软件测试,首先要简单介绍一些<a href="200602281725525.html" tppabs="http://www.itisedu.com/phrase/200602281725525.html" target="_new">软件工程</a>的一些观点,现在,被普遍接受的软件的定义是:软件(software)是<a href="200603021438435.html" tppabs="http://www.itisedu.com/phrase/200603021438435.html" target="_new">计算机</a>系统中与硬件(hardware)相互依存的另一部分,它包括程序(program)、相关数据(data)及其说明文档(document)。其中程序是按照事先设计的功能和性能要求执行的指令序列;数据是是程序能正常操纵信息的数据结构;文档是与程序开发维护和使用有关的各种图文资料。</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 对于一般商用软件的测试,嵌入式软件测试有其自身的特点和测试困难。</P>
<P>  由于嵌入式系统的自身特点,如实时性(Real-timing),内存不丰富,I/O通道少,开发工具昂贵,并且与硬件紧密相关CPU种类繁多,等等。嵌入式软件的开发和测试也就与一般商用软件的开发和测试策略有了很大的不同,可以说嵌入式软件是最难测试的一种软件。</P>
<P>  嵌入式软件测试使用有效的测试策略是唯一的出路,它可以使开发的效率最大化,避免目标系统的瓶颈,使用在线仿真器节省昂贵的目标资源。自从出现高级语言,开发环境与最终运行环境通常都是存在差异的,嵌入式系统更是如此。开发环境被认为是主机平台,软件运行环境为目标平台。相应的测试为host-target测试或cross-testing。</P>
<P>  讨论嵌入式软件测试首先就会遇到一个问题:为什么不把所有测试都放在目标上进行呢?因为若所有测试都放在目标平台上有很多不利的因素:</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 1)测试软件,可能会造成与开发者争夺时间的瓶颈,避免它只有提供更多的目标环境。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 2)目标环境可能还不可行。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 3)比起主机平台环境,目标环境通常是不精密的和不方便的。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 4)提供给开发者的目标环境和联合开发环境通常是很昂贵的。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 5)开发和测试工作可能会妨碍目标环境已存在持续的应用</P>
<P>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 从经济上和开发效率上考虑,<a href="200603282233345.html" tppabs="http://www.itisedu.com/phrase/200603282233345.html" target="_new">软件开发</a>周期中尽可能大的比例在主机系统环境中进行,其中包括测试。</P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -