嵌入软件测试_第1页
嵌入软件测试_第2页
嵌入软件测试_第3页
嵌入软件测试_第4页
嵌入软件测试_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1/351第第1515讲讲 嵌入式软件测试嵌入式软件测试2/35一、嵌入式软件测试概念一、嵌入式软件测试概念嵌入式系统的自身特点,使得嵌入式软件很难测试嵌入式系统的自身特点,使得嵌入式软件很难测试l如实时性如实时性(real-timing)(real-timing),内存不丰富,内存不丰富,i / oi / o通道少,开发工具昂贵,通道少,开发工具昂贵,并且与硬件紧密相关并且与硬件紧密相关cpucpu种类繁多,等等种类繁多,等等l嵌入式软件的开发和测试与一般商用软件的开发和测试策略有很大的嵌入式软件的开发和测试与一般商用软件的开发和测试策略有很大的不同,可说嵌入式软件是最难测试的一种软件不同,

2、可说嵌入式软件是最难测试的一种软件嵌入式软件开发采用嵌入式软件开发采用“宿主机目标机宿主机目标机”交叉方式交叉方式l即相应的测试也为即相应的测试也为host-targethost-target测试或测试或cross-testingcross-testingl所有测试如放在目标平台上会有很多不利的因素:所有测试如放在目标平台上会有很多不利的因素:1.1.测试软件,可能会造成与开发者争夺时间的瓶颈,避免它只有提供更多的测试软件,可能会造成与开发者争夺时间的瓶颈,避免它只有提供更多的目标环境目标环境2.2.目标环境可能还不可行目标环境可能还不可行3.3.比起主机平台环境,目标环境通常是不精密的和不方

3、便的比起主机平台环境,目标环境通常是不精密的和不方便的4.4.提供给开发者的目标环境和联合开发环境通常是很昂贵的提供给开发者的目标环境和联合开发环境通常是很昂贵的5.5.开发和测试工作可能会妨碍目标环境已存在持续的应用开发和测试工作可能会妨碍目标环境已存在持续的应用3/35一、嵌入式软件测试概念(续)一、嵌入式软件测试概念(续)交叉交叉测试环境下应关注的问题:测试环境下应关注的问题:l测试需要多少人员(单元测试,软件集成,系统测试)测试需要多少人员(单元测试,软件集成,系统测试)?l多少软件应该测试,测试会花费多长时间?多少软件应该测试,测试会花费多长时间?l在主机环境和目标环境有哪些测试软件

4、工具,价格怎样,是在主机环境和目标环境有哪些测试软件工具,价格怎样,是否适合否适合?l多少目标环境可以提供给开发者,什么时候多少目标环境可以提供给开发者,什么时候?l主机和目标机之间的连接怎样?主机和目标机之间的连接怎样?l被测软件下载到目标机有多快被测软件下载到目标机有多快?l使用主机与目标环境之间有什么限制(如软件安全标准)使用主机与目标环境之间有什么限制(如软件安全标准)?管理者在进行嵌入式软件测试时都应深入考虑以上问管理者在进行嵌入式软件测试时都应深入考虑以上问题,结合自身实际情况,选定合理测试策略和方案题,结合自身实际情况,选定合理测试策略和方案4/35一、嵌入式软件测试概念(续)一

5、、嵌入式软件测试概念(续)嵌入式软件测试各个阶段的通用策略嵌入式软件测试各个阶段的通用策略l单元测试单元测试l所有单元级测试都可以在主机环境上模拟目标环境进行,除非少数所有单元级测试都可以在主机环境上模拟目标环境进行,除非少数情况,特别具体指定了单元测试直接在目标环境进行情况,特别具体指定了单元测试直接在目标环境进行l集成测试集成测试l软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在目标环境上重复测试也是必须的,在此级别上的确认测试将当然在目标环境上重复测试也是必须的,在此级别上的确认测试将确定一些环境上的问题,比如

6、内存定位和分配上的一些错误确定一些环境上的问题,比如内存定位和分配上的一些错误l在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多少。有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做少。有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做集成是不切实际的集成是不切实际的l一个大型软件的开发可以分几个级别的集成。低级别的软件集成在一个大型软件的开发可以分几个级别的集成。低级别的软件集成在主机平台上完成有很大优势,越往后的集成越依赖于目标环境主机平台上完成有很大优势,越往后的集成越依赖于目标环境5/35一、嵌入式软件测试概念

7、(续)一、嵌入式软件测试概念(续)嵌入式软件测试各个阶段的通用策略(续)嵌入式软件测试各个阶段的通用策略(续)l系统测试和确认测试系统测试和确认测试l所有的系统测试和确认测试必须在目标环境下执行所有的系统测试和确认测试必须在目标环境下执行l当然在主机上开发和执行系统测试,然后移植到目标环境重复执行当然在主机上开发和执行系统测试,然后移植到目标环境重复执行是很方便的是很方便的l对目标系统的依赖性会妨碍将主机环境上的系统测试移植到目标系对目标系统的依赖性会妨碍将主机环境上的系统测试移植到目标系统上,况且只有少数开发者会卷入系统测试,所以有时放弃在主机统上,况且只有少数开发者会卷入系统测试,所以有时

8、放弃在主机环境上执行系统测试可能更方便环境上执行系统测试可能更方便l确认测试最终的实施舞台必须在目标环境中,系统的确认必须在真确认测试最终的实施舞台必须在目标环境中,系统的确认必须在真实系统之下测试,而不能在主机环境下模拟。这关系到嵌入式软件实系统之下测试,而不能在主机环境下模拟。这关系到嵌入式软件的最终使用。的最终使用。l包括恢复测试、安全测试、强度测试、性能测试包括恢复测试、安全测试、强度测试、性能测试好的交叉测试策略能提高嵌入式软件测试水平和效率好的交叉测试策略能提高嵌入式软件测试水平和效率6/35一、嵌入式软件测试概念(续)一、嵌入式软件测试概念(续)“白盒白盒”测试的插桩概测试的插桩

9、概念念7/35一、嵌入式软件测试概念(续)一、嵌入式软件测试概念(续)嵌入式软件测试的一般流程嵌入式软件测试的一般流程a.a.使用测试工具的插装功能(主机环境)执行静态测试分析,使用测试工具的插装功能(主机环境)执行静态测试分析,并且为动态覆盖测试准备好一插装好的软件代码并且为动态覆盖测试准备好一插装好的软件代码b.b.使用源码在主机环境执行功能测试,修正软件的错误和测使用源码在主机环境执行功能测试,修正软件的错误和测试脚本中的错误试脚本中的错误c.c.使用插装后的软件代码执行覆盖率测试,添加测试用例或使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标

10、修正软件的错误,保证达到所要求的覆盖率目标d.d.在目标环境下重复(在目标环境下重复(b b),确认软件在目标环境中执行测试),确认软件在目标环境中执行测试的正确性的正确性e.e.若测试需要达到极端的完整性,最好在目标系统上重复若测试需要达到极端的完整性,最好在目标系统上重复(c c),确定软件的覆盖率没有改变),确定软件的覆盖率没有改变8/35一、嵌入式软件测试概念(续)一、嵌入式软件测试概念(续)嵌入式软件测试的一般流程(续)嵌入式软件测试的一般流程(续)l通常在主机环境执行多数的测试,只是在最终确定测试结果通常在主机环境执行多数的测试,只是在最终确定测试结果和最后的系统测试才移植到目标环

11、境,这样可以避免发生访和最后的系统测试才移植到目标环境,这样可以避免发生访问目标系统资源上的瓶颈,也可以减少在昂贵资源如在线仿问目标系统资源上的瓶颈,也可以减少在昂贵资源如在线仿真器上的费用真器上的费用l另外,若目标系统的硬件由于某种原因而不能使用时,最后另外,若目标系统的硬件由于某种原因而不能使用时,最后的确认测试可以推迟直到目标硬件可用,这为嵌入式软件的的确认测试可以推迟直到目标硬件可用,这为嵌入式软件的开发测试提供了弹性开发测试提供了弹性l设计软件的可移植性是成功进行交叉的先决条件,它通常可设计软件的可移植性是成功进行交叉的先决条件,它通常可以提高软件的质量,并且度软件的维护大有益处以提

12、高软件的质量,并且度软件的维护大有益处l很多测试工具,都可以通过各自的方式提供测试在主机与目很多测试工具,都可以通过各自的方式提供测试在主机与目标之间的移植,从而使嵌入式软件的测试得以方便的执行标之间的移植,从而使嵌入式软件的测试得以方便的执行9/35二、嵌入式软件测试的典型工具二、嵌入式软件测试的典型工具嵌入式嵌入式“白盒白盒”测试工具测试工具l白盒测试是以源代码为测试对象,除对软件进行通常的结构分析和质量白盒测试是以源代码为测试对象,除对软件进行通常的结构分析和质量度量等静态分析外,主要是进行动态测试度量等静态分析外,主要是进行动态测试l代表了当今软件自动化测试领域最高水平的高级语言单元测

13、试工具代表了当今软件自动化测试领域最高水平的高级语言单元测试工具vectorcastvectorcastl瑞典瑞典telelogictelelogic公司的公司的logiscopelogiscope和美国和美国ibmibm公司的公司的rationalrational的的test test realtimerealtime,通过串口以太网对应被测软件运行的目标机上进行连接,在,通过串口以太网对应被测软件运行的目标机上进行连接,在对软件进行插桩后下载到目标机上运行进行准实时的或事后的分析对软件进行插桩后下载到目标机上运行进行准实时的或事后的分析l美国美国freesaclefreesacle公司的公

14、司的codetestcodetest与被测目标机通过总线或飞线方式进行与被测目标机通过总线或飞线方式进行连接,将被测软件进行插桩,当被测软件在目标机上运行时对其进行实连接,将被测软件进行插桩,当被测软件在目标机上运行时对其进行实时的监测时的监测l国内有通过总线监听手段进行覆盖测试,当国内有通过总线监听手段进行覆盖测试,当cpucpu采用指令预取方式工作采用指令预取方式工作时这种方式就有问题了时这种方式就有问题了10/35二、嵌入式软件测试的典型工具二、嵌入式软件测试的典型工具( (续续) )嵌入式嵌入式“黑盒黑盒”测试工具测试工具l“黑盒黑盒”测试是将嵌入式软件当作一个黑盒子测试是将嵌入式软件

15、当作一个黑盒子, ,只关注系统的输入输出只关注系统的输入输出l目前的测试做法是以硬件方式将被测系统的输入输出端口用硬件对应连目前的测试做法是以硬件方式将被测系统的输入输出端口用硬件对应连接,使用实时处理机和宿主机对被测系统进行激励和输入,进行驱动,接,使用实时处理机和宿主机对被测系统进行激励和输入,进行驱动,然后获取输出结果进行分析,进行开环或闭环测试然后获取输出结果进行分析,进行开环或闭环测试l优点是实时性强优点是实时性强l缺点是这种测试实际上是对整个被测系统的测试,是一种确认性测试,缺点是这种测试实际上是对整个被测系统的测试,是一种确认性测试,如发生问题,不知道是硬件还是软件发生的问题,还

16、是软硬件耦合发生如发生问题,不知道是硬件还是软件发生的问题,还是软硬件耦合发生的问题的问题l如果目标机未设计制造出或无法得到,这种测试无法进行如果目标机未设计制造出或无法得到,这种测试无法进行l代表性的公司和产品是德国代表性的公司和产品是德国tech sattech sat的的adsads2 2系统。价格比较昂贵。国系统。价格比较昂贵。国内的是北航的内的是北航的gestegeste嵌入式系统测试环境嵌入式系统测试环境11/35嵌入式嵌入式“灰盒灰盒”测试工具测试工具l“灰盒灰盒”测试是指嵌入式软件即能做测试是指嵌入式软件即能做“白盒白盒”测试,又能做测试,又能做“黑盒黑盒”测试的测试工具,目前

17、主要是基于全数字仿真或半测试的测试工具,目前主要是基于全数字仿真或半实物仿真技术的应用实物仿真技术的应用l欧洲航天局的欧洲航天局的spacebelspacebel、shamsham等产品等产品l国内北京奥吉通有限公司的科锐时系列产品国内北京奥吉通有限公司的科锐时系列产品crests/atatcrests/atat和和crests/tesscrests/tess等等二、嵌入式软件测试的典型工具二、嵌入式软件测试的典型工具( (续续) )12/35嵌入式软件仿真工具嵌入式软件仿真工具l空间飞行器、卫星等工作在太空中,空间飞行器、空间飞行器、卫星等工作在太空中,空间飞行器、卫星控制软件卫星控制软件即

18、嵌入式软件的调式与测试必须即嵌入式软件的调式与测试必须在一个等价太空环境下的仿真环境里进行在一个等价太空环境下的仿真环境里进行l仿真环境的建立需要仿真工具的支持。仿真环境的建立需要仿真工具的支持。l欧洲航天实时仿真产品欧洲航天实时仿真产品eurosimeurosim以及网络资源透明以及网络资源透明访问工具访问工具spinewarespineware是最具典型的嵌入式软件仿真是最具典型的嵌入式软件仿真工具工具二、嵌入式软件测试的典型工具二、嵌入式软件测试的典型工具( (续续) )13/35单元测试工具美国单元测试工具美国vectorvector公司的公司的vectorcastvectorcast

19、lvectorcastvectorcast用于高级语言的用于高级语言的单元测试、组装测试及集成测试单元测试、组装测试及集成测试。它代表了当今软件自动化测试领域最高水平,它能够:它代表了当今软件自动化测试领域最高水平,它能够:l自动插桩(自动插桩(stubstub)及针对被测程序单元自动生成驱动程序)及针对被测程序单元自动生成驱动程序l与主流编译程序器,目标机板,以及实时操作系统与主流编译程序器,目标机板,以及实时操作系统(rtos)(rtos)的相结合的相结合l自动生成从小、中、大三种参数取值的测试用例,自动生成测试用自动生成从小、中、大三种参数取值的测试用例,自动生成测试用例的范围值例的范围

20、值l允许顾客采用图像化的点击界面或直观手写(允许顾客采用图像化的点击界面或直观手写(scriptingscripting)界面来设)界面来设计测试用例计测试用例l允许完整的自动回归测试允许完整的自动回归测试l提供图像化说明、分支提供图像化说明、分支(branch)(branch)和和mc/dcmc/dc代码覆盖率代码覆盖率l在主机上、仿真器和嵌入式目标机系统上执行测试在主机上、仿真器和嵌入式目标机系统上执行测试l支持支持adaada语言和语言和c/c+c/c+等语言等语言三、嵌入式软件测试的典型工具举例三、嵌入式软件测试的典型工具举例14/35三、嵌入式软件测试的典型工具举例三、嵌入式软件测试

21、的典型工具举例( (续续) )ibm rational test realtime(rtrt)ibm rational test realtime(rtrt)lrtrtrtrt是一个针对单元测试和实时分析的交叉平台解决方案是一个针对单元测试和实时分析的交叉平台解决方案lrtrtrtrt是特别为那些嵌入式、实时软件和其它类型的交叉平台是特别为那些嵌入式、实时软件和其它类型的交叉平台软件产品而开发设计的软件产品而开发设计的lrtrtrtrt使得你在调试过程中能更多的了解代码的执行情况,让使得你在调试过程中能更多的了解代码的执行情况,让你能够在程序运行前修改你的代码你能够在程序运行前修改你的代码l使

22、用使用rtrtrtrt,你能够:,你能够:l在开发过程中测试,分析和解决问题在开发过程中测试,分析和解决问题l在主机和目标机上测试和调试在主机和目标机上测试和调试l构造模型驱动测试工具构造模型驱动测试工具15/35白盒测试工具美国白盒测试工具美国freescalefreescale公司公司metroworksmetroworks的的codetestcodetestlcodetestcodetest是专为嵌入式系统软件测试而设计的工具套件是专为嵌入式系统软件测试而设计的工具套件l为追踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及监控内为追踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及

23、监控内存动态分配等提供了一个实时在线的高效率解决方案存动态分配等提供了一个实时在线的高效率解决方案lcodetestcodetest还是一个可共享的网络工具,它将给整个开发和测试团队带来还是一个可共享的网络工具,它将给整个开发和测试团队带来高品质的测试手段高品质的测试手段lcodetestcodetest可同时监视整个应用程序,这就避免了在选择程序的哪部分来可同时监视整个应用程序,这就避免了在选择程序的哪部分来观测以及如何配置相应工具来对各部分进行测试时带来的困难观测以及如何配置相应工具来对各部分进行测试时带来的困难l即便是在程序超出高速缓存即便是在程序超出高速缓存(cache)(cache)

24、或被动态再分配时,或被动态再分配时,codetestcodetest仍仍能生成可靠的追踪及测试结果能生成可靠的追踪及测试结果l在进入连续运行模式时,在进入连续运行模式时,codetestcodetest能够同时测试出软件的性能,代码覆能够同时测试出软件的性能,代码覆盖以及存储器动态分配,捕获函数的每一次运行。盖以及存储器动态分配,捕获函数的每一次运行。l无论是在检测一个局部的软件模块还是整个软件系统测试,工程师只须无论是在检测一个局部的软件模块还是整个软件系统测试,工程师只须简单地将简单地将codetestcodetest的仿真探头的仿真探头(probe)(probe)插到目标系统的处理器上,

25、预处插到目标系统的处理器上,预处理待测的源程序,启动理待测的源程序,启动codetestcodetest,运行测试处理软件,运行测试处理软件l测试结果在测试进行过程中或在测试结束后均可随时观看测试结果在测试进行过程中或在测试结束后均可随时观看三、嵌入式软件测试的典型工具举例三、嵌入式软件测试的典型工具举例( (续续) )16/35比利时比利时spacebelspacebel公司产品公司产品全数字仿真测试工具全数字仿真测试工具lerc32/1750/adsp target simulatorerc32/1750/adsp target simulator用于航天设计用于航天设计, ,仿真应用等方

26、面仿真应用等方面l目标机模拟器能够模拟目标机模拟器能够模拟erc32/1750/adsperc32/1750/adsp计算机计算机l能够模拟能够模拟cpucpu指令、各种硬件动作和指令、各种硬件动作和i/oi/o模拟模拟l所提供的功能比仿真器更加丰富所提供的功能比仿真器更加丰富l能够进行中断和错误注入能够进行中断和错误注入l当程序执行到断点处,仿真硬件全部当程序执行到断点处,仿真硬件全部“冻结冻结”,从而便于实时调试,从而便于实时调试l支持如支持如iuiu、fpufpu、uartuart、timerstimers、dmadma、atacatac以及各类以及各类i/oi/o活动活动l时间性能比较

27、理想时间性能比较理想l给出被测试代码执行的覆盖情况给出被测试代码执行的覆盖情况l完全不需要实施插装完全不需要实施插装lerc32/1750/adsp target emulatorerc32/1750/adsp target emulator能够与配备了能够与配备了jtagjtag接口的接口的erc32erc32目标目标板相连,能够访问所有的板相连,能够访问所有的iu, fpuiu, fpu和和mecmec寄存器,及目标板上所有的存储寄存器,及目标板上所有的存储单元单元三、嵌入式软件测试的典型工具举例三、嵌入式软件测试的典型工具举例( (续续) )17/35荷兰荷兰chesschess公司产品

28、公司产品shamsham半实物仿真测试工具半实物仿真测试工具l星载软件验证设备星载软件验证设备shamsham是专门针对航天工业中卫星上的姿轨控制系统和数据管是专门针对航天工业中卫星上的姿轨控制系统和数据管理系统的嵌入式软件验证理系统的嵌入式软件验证( (确认确认) )开发的专用系统开发的专用系统l该系统是一个多计算机环境,由宿主机系统和仿真处理模块该系统是一个多计算机环境,由宿主机系统和仿真处理模块shamsham组成组成lshamsham包含一个目标处理器和支持与控制系统包含一个目标处理器和支持与控制系统l目标处理器执行被测汇编语言程序,目标处理器执行被测汇编语言程序,adaada语言程序

29、,汇编语言、语言程序,汇编语言、adaada语言混语言混合语言程序的最终二进制代码合语言程序的最终二进制代码l支持与控制系统控制目标处理器的行为并仿真低级硬件接口支持与控制系统控制目标处理器的行为并仿真低级硬件接口l宿主机用于应用测试和全面控制宿主机用于应用测试和全面控制, ,并提供更复杂环境的仿真模拟并提供更复杂环境的仿真模拟l被测汇编语言程序,被测汇编语言程序,adaada语言程序,混合语言程序最终二进制代码无需任何语言程序,混合语言程序最终二进制代码无需任何修改,直接执行于真实目标处理器中,应用于被测软件真实的外界感知环境修改,直接执行于真实目标处理器中,应用于被测软件真实的外界感知环境

30、的仿真系统中的仿真系统中l支持运行在真实目标处理器基础上的覆盖率分析支持运行在真实目标处理器基础上的覆盖率分析lsham已经几次检测出严重的星载软件的缺陷,及时发现了被测星载软件的失已经几次检测出严重的星载软件的缺陷,及时发现了被测星载软件的失效过程,防止了整个卫星的损失效过程,防止了整个卫星的损失三、嵌入式软件测试的典型工具举例三、嵌入式软件测试的典型工具举例( (续续) )18/35“黑盒黑盒”测试工具测试工具gestegestelgeste(general embedded system testing environment)geste(general embedded system

31、testing environment)为嵌入式系统为嵌入式系统提供仿真测试环境,实现对嵌入式系统进行实时、闭环的、非侵入式的提供仿真测试环境,实现对嵌入式系统进行实时、闭环的、非侵入式的系统测试系统测试l该产品的主要功能有:测试环境与测试仿真模型开发、测试脚本图形化该产品的主要功能有:测试环境与测试仿真模型开发、测试脚本图形化生成生成/ /调试、测试环境配置、实时测试、测试数据收集定制、测试数据调试、测试环境配置、实时测试、测试数据收集定制、测试数据事后分析及日志管理等事后分析及日志管理等lgestegeste采用当前主流嵌入式操作系统采用当前主流嵌入式操作系统vxworksvxworks,

32、定时精度为,定时精度为1ms1ms,根据仿,根据仿真环境复杂程度不同,可以满足工作周期不小于真环境复杂程度不同,可以满足工作周期不小于5ms 5ms 的实时嵌入式系统的实时嵌入式系统测试测试l针对用户的不同需求,本软件具有较强的适应能力,可针对不同的用户针对用户的不同需求,本软件具有较强的适应能力,可针对不同的用户进行定制,提供开放的测试脚本描述语言及仿真建模环境,充分满足用进行定制,提供开放的测试脚本描述语言及仿真建模环境,充分满足用户在系统测试、开发中的各种需求户在系统测试、开发中的各种需求三、嵌入式软件测试的典型工具举例三、嵌入式软件测试的典型工具举例( (续续) )19/35欧洲航天局

33、实时仿真产品欧洲航天局实时仿真产品eurosimeurosimleurosimeurosim是一个可构造的模拟仿真系统工具,应用于太空项目和工业项是一个可构造的模拟仿真系统工具,应用于太空项目和工业项目生存周期所有阶段的人机交互和设备交互实时仿真。应用目生存周期所有阶段的人机交互和设备交互实时仿真。应用eurosimeurosim可可以使已有的模型软件重用以使已有的模型软件重用l每个模拟过程都可以分解成多个可重用的部件工具,然后对每个部件工每个模拟过程都可以分解成多个可重用的部件工具,然后对每个部件工具的功能细节进行仿真具的功能细节进行仿真l详细设计的工具部件可重复应用到小规模,以及规模庞大的

34、仿真应用中详细设计的工具部件可重复应用到小规模,以及规模庞大的仿真应用中leurosimeurosim可以帮助用户减少模拟仿真所花费的费用,使在工程项目中可可以帮助用户减少模拟仿真所花费的费用,使在工程项目中可以尽早和更广泛的进行模拟仿真活动(如可行性评估阶段、设计阶段、以尽早和更广泛的进行模拟仿真活动(如可行性评估阶段、设计阶段、原型构造阶段、生产原型构造阶段、生产/ /测试阶段、操作测试阶段、操作/ /培训阶段)培训阶段)leurosimeurosim提供一个开放的系统结构提供一个开放的系统结构l与与matlabmatlab、pvwavepvwave、vegavega、satellite

35、tool kit(stk)satellite tool kit(stk)集成使用,可以更好集成使用,可以更好的发挥的发挥eurosimeurosim及相关工具的功效及相关工具的功效l相关应用涉及从子系统到整个系统的系统设计、系统分析、可视化设计、相关应用涉及从子系统到整个系统的系统设计、系统分析、可视化设计、系统仿真设计系统仿真设计leurosimeurosim已经应用与多个太空项目,工业项目已经应用与多个太空项目,工业项目l如:全球导航卫星的性能验证,自动导航水下交通工具、如:全球导航卫星的性能验证,自动导航水下交通工具、 euromoon euromoon 2000-2000-月球登陆车、

36、臭氧监控器等的仿真模拟、月球登陆车、臭氧监控器等的仿真模拟、tve-tve-软件验证设备、软件验证设备、战斗机飞行员模拟仿真训练系统战斗机飞行员模拟仿真训练系统三、嵌入式软件测试的典型工具举例三、嵌入式软件测试的典型工具举例( (续续) )20/35网络资源透明访问工具网络资源透明访问工具spinewarespinewarel当前每个用户面临着和越来越复杂,越来越多样化的计算机系统打交道,当前每个用户面临着和越来越复杂,越来越多样化的计算机系统打交道,并且要求这些计算机系统在一个分布式的网络环境下工作并且要求这些计算机系统在一个分布式的网络环境下工作l在空间科学的研究中在空间科学的研究中, ,

37、在系统仿真阶段面临着和各种仿真工具打交道在系统仿真阶段面临着和各种仿真工具打交道, ,处处理、应用和转换网络中各种各样的数据,形成工作产品的难度越来越大理、应用和转换网络中各种各样的数据,形成工作产品的难度越来越大l规范仿真工作中的工作流程,为工作流程建模成为一种自然而然的需要规范仿真工作中的工作流程,为工作流程建模成为一种自然而然的需要lspinewarespineware是一个中间件系统,它通过提供一组集成工具和中间件支持是一个中间件系统,它通过提供一组集成工具和中间件支持用户在由不同计算机平台所组成的计算机网络中构建工作环境,并在工用户在由不同计算机平台所组成的计算机网络中构建工作环境,

38、并在工作环境中运用一致的、完整的、可视化的操作使用有关资源作环境中运用一致的、完整的、可视化的操作使用有关资源( (对象资源对象资源) )lspinewarespineware的工作环境为用户提供了访问网络资源的能力,这些资源就的工作环境为用户提供了访问网络资源的能力,这些资源就象存放在一台虚拟的计算机中,在该计算机中,计算、存储、输入象存放在一台虚拟的计算机中,在该计算机中,计算、存储、输入/ /输输出以及信息出以及信息( (如软件、数据与文档如软件、数据与文档) )等资源都是通过树结构以对象的形式等资源都是通过树结构以对象的形式提供给用户进行访问的,用户通过图形用户界面能方便地操作这些对象

39、提供给用户进行访问的,用户通过图形用户界面能方便地操作这些对象l当前的仿真工作可能需要大量的不同性质的资源,仿真设计人员可能并当前的仿真工作可能需要大量的不同性质的资源,仿真设计人员可能并不是某个领域或者某个软件的使用专家,但构建特定的仿真过程需要这不是某个领域或者某个软件的使用专家,但构建特定的仿真过程需要这些资源。些资源。 spinewarespineware的工作流程建模器,提供简单的方式定义工作流程,的工作流程建模器,提供简单的方式定义工作流程,应用工作流程的能力,使特定的业务流程规范化,模型化应用工作流程的能力,使特定的业务流程规范化,模型化三、嵌入式软件测试的典型工具举例三、嵌入式

40、软件测试的典型工具举例( (续续) )21/35四、传统四、传统“白盒白盒”测试工具的局限性测试工具的局限性传统传统“白盒白盒”测试工具共同的缺陷之一是:测试工具共同的缺陷之一是:l所有的结构测试都要求插桩所有的结构测试都要求插桩l被测软件代码膨胀,使本来就匮乏的系统资源更加紧张被测软件代码膨胀,使本来就匮乏的系统资源更加紧张l尤其是汇编程序,由于它是低级语言,即它的结构化能力弱,指令功能尤其是汇编程序,由于它是低级语言,即它的结构化能力弱,指令功能低级,要构造复杂的算法,需要大量的汇编子程序调用、条件判断以及低级,要构造复杂的算法,需要大量的汇编子程序调用、条件判断以及程序跳转指令,插桩后代

41、码膨胀更为明显程序跳转指令,插桩后代码膨胀更为明显l代码膨胀有可能导致:代码膨胀有可能导致:l系统错误系统错误( (被测程序设计中的代码和数据分配受到影响被测程序设计中的代码和数据分配受到影响) )l时序错误时序错误( (被测程序的中断与端口输入被测程序的中断与端口输入/ /输出的时序延时输出的时序延时) )l甚至逻辑错误甚至逻辑错误( (汇编程序中相对调用或跳转的目的地址可能越界汇编程序中相对调用或跳转的目的地址可能越界) )l影响软件运行的真实性和实时性影响软件运行的真实性和实时性l无法对软件运行起来后进行实时跟踪无法对软件运行起来后进行实时跟踪22/35四、传统四、传统“白盒白盒”测试工

42、具的局限性测试工具的局限性( (续续) )传统传统“白盒白盒”测试工具共同的缺陷之二是:测试工具共同的缺陷之二是:l外部事件的激励很难引入外部事件的激励很难引入l中断事件、输入中断事件、输入/输出事件以及其它相关事件无法按逻辑时输出事件以及其它相关事件无法按逻辑时序产生序产生l无法构造能使被测软件闭环运行的测试环境无法构造能使被测软件闭环运行的测试环境传统传统“白盒白盒”测试工具共同的缺陷之三是:测试工具共同的缺陷之三是:l基于宿主机基于宿主机/目标机的工作方式的目标机的工作方式的“白盒白盒”测试工具其目标测试工具其目标机的地址空间难以做到对用户全部开发(部分被占用)机的地址空间难以做到对用户

43、全部开发(部分被占用)23/35五、传统五、传统“黑盒黑盒”测试工具的局限性测试工具的局限性传统传统“黑盒黑盒”测试工具的共同缺陷之一是:测试工具的共同缺陷之一是:l被测软件的运行环境目标硬件必须存在被测软件的运行环境目标硬件必须存在l这在目标硬件还没有开发出来,或目标硬件发生变化,甚至被测方这在目标硬件还没有开发出来,或目标硬件发生变化,甚至被测方不提供目标硬件的情况下是无法测试的不提供目标硬件的情况下是无法测试的传统传统“黑盒黑盒”测试工具的共同缺陷之二是:测试工具的共同缺陷之二是:l价格非常昂贵价格非常昂贵l外部逻辑信号的产生程序员编程,需要计算机处理外部逻辑信号的产生程序员编程,需要计

44、算机处理(专用计专用计算机算机)l多路信号的配置可能满足不了我们实际应用变化的要求多路信号的配置可能满足不了我们实际应用变化的要求传统传统“黑盒黑盒”测试工具的共同缺陷之三是:测试工具的共同缺陷之三是:l维护困难,易损坏维护困难,易损坏24/35六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案全数字仿真的概念全数字仿真的概念l嵌入式软件的全数字仿真就是脱离目标机,用数嵌入式软件的全数字仿真就是脱离目标机,用数字模拟硬件或电路的信号结果并交给嵌入式软件字模拟硬件或电路的信号结果并交给嵌入式软件计算和处理计算和处理l更为特别的是还模拟或解释了更为特别的是还模拟或解释了cpucpu的

45、指令和相关时的指令和相关时序从而避免了插桩序从而避免了插桩lspacebelspacebel公司的公司的erc32 target simulatorerc32 target simulator和奥吉和奥吉通通crests/atatcrests/atat和和crests/tesscrests/tess就是嵌入式软件全就是嵌入式软件全数字仿真的典型代表数字仿真的典型代表25/35嵌入式软件全数字仿真测试支撑平台总体结构图嵌入式软件全数字仿真测试支撑平台总体结构图26/35六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )全数字仿真的产品全数字仿真的产品crests/a

46、tatcrests/atat和和crests/tesscrests/tessl通过虚拟目标机解释执行嵌入式软件和对外围电通过虚拟目标机解释执行嵌入式软件和对外围电路和外部事件进行全数字化仿真路和外部事件进行全数字化仿真l很好地解决了前面我们提到的代码膨胀问题和硬很好地解决了前面我们提到的代码膨胀问题和硬件环境无法搭建问题件环境无法搭建问题l嵌入式软件在虚拟目标机环境的运行效率要低嵌入式软件在虚拟目标机环境的运行效率要低l现在计算机配置越来越高,性能越来越好,速度现在计算机配置越来越高,性能越来越好,速度越来越快,内存越来越大运行效率要低已不是主越来越快,内存越来越大运行效率要低已不是主要问题了

47、要问题了27/35crests/atatcrests/atat和和crests/tesscrests/tess(续)(续)l针对汇编语言和高级语言的分析与测试工具针对汇编语言和高级语言的分析与测试工具l为嵌入式系统提供全数字仿真测试环境或测试平台,为嵌入式系统提供全数字仿真测试环境或测试平台,实现对嵌入式系统进行实时、闭环的、非侵入式实现对嵌入式系统进行实时、闭环的、非侵入式( (不插桩不插桩) )的系统测试的系统测试l在该平台上能够对被测软件进行静态分析、模拟运行、在该平台上能够对被测软件进行静态分析、模拟运行、高级调试和综合测试高级调试和综合测试l实现了嵌入式软件外部事件的全数字仿真,嵌入

48、式软件实现了嵌入式软件外部事件的全数字仿真,嵌入式软件就像在真实硬件环境下连续不中断地运行就像在真实硬件环境下连续不中断地运行六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )28/35crests/atatcrests/atat和和crests/tesscrests/tess的工作流程的工作流程l装载在开发环境中交叉编译后的被测软件装载在开发环境中交叉编译后的被测软件l对被测程序进行静态分析对被测程序进行静态分析, ,生成程序理解和质量度量的数据生成程序理解和质量度量的数据l对被测嵌入式软件程序进行测试和调试对被测嵌入式软件程序进行测试和调试l通过全数字仿真模拟

49、端口、中断等外部事件,使被测嵌入式软件程序能通过全数字仿真模拟端口、中断等外部事件,使被测嵌入式软件程序能够够“闭环闭环”运行,实现测试的自动化运行,实现测试的自动化l对测试结果进行分析,生成测试报告对测试结果进行分析,生成测试报告依据上述的工作流程依据上述的工作流程lcrests/atatcrests/atat和和crests/tesscrests/tess能够满足嵌入式软件开发阶段的内部测试和能够满足嵌入式软件开发阶段的内部测试和调试以及验收阶段的验收测试的要求,调试以及验收阶段的验收测试的要求,l能够为测试方、被测方及上级主管单位提供可以信赖和再现测试过程与能够为测试方、被测方及上级主管

50、单位提供可以信赖和再现测试过程与测试问题的测试报告测试问题的测试报告六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )29/35crests/atatcrests/atatl目前支持目前支持intel 8031/8051/8052intel 8031/8051/8052、8096/801968096/80196、80 x86, 80 x86, dsp tms320 c2x/c3x/c4x/c5xdsp tms320 c2x/c3x/c4x/c5x及及mil-1750mil-1750等等cpucpul为汇编语言的测试提供了有效的,统一的协同工作平台。为汇编语言的测试

51、提供了有效的,统一的协同工作平台。在该平台下能够完成:在该平台下能够完成:l汇编程序的分析与检查、汇编代码的运行与调试、汇编单元的配置汇编程序的分析与检查、汇编代码的运行与调试、汇编单元的配置与测试、汇编系统的仿真与测试、中文测试报告生成与测试、汇编系统的仿真与测试、中文测试报告生成l有效的结合了测试与调试的能力有效的结合了测试与调试的能力l规范了汇编语言的测试流程规范了汇编语言的测试流程六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )30/35crests/atatcrests/atat(汇编程序分析与检查功能)(汇编程序分析与检查功能)lcrests/ata

52、tcrests/atat汇编程序分析与检查功能支持代码编程规则检汇编程序分析与检查功能支持代码编程规则检查,并对影响程序结构化的代码进行警告查,并对影响程序结构化的代码进行警告l提供程序控制流图、程序控制流轮廓图、程序调用树、程序提供程序控制流图、程序控制流轮廓图、程序调用树、程序被调用树和程序危害性递归等被调用树和程序危害性递归等l给出度量程序质量的多种度量元(如给出度量程序质量的多种度量元(如mccabemccabe的圈复杂度,程的圈复杂度,程序跳转数,程序扇入序跳转数,程序扇入/ /扇出数、程序注释率、程序调用深度,扇出数、程序注释率、程序调用深度,程序长度,程序体积,程序调用及被调用描

53、述等)程序长度,程序体积,程序调用及被调用描述等)六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )31/35crests/atat(crests/atat(汇编代码运行与调试功能汇编代码运行与调试功能) )lcrests/atatcrests/atat的汇编代码运行与调试功能为汇编用户提供了的汇编代码运行与调试功能为汇编用户提供了不需真实硬件的不需真实硬件的cpucpu模拟运行环境模拟运行环境l在该环境下,解释执行所有的在该环境下,解释执行所有的cpucpu指令,模拟所有指令的时指令,模拟所有指令的时序,模拟定时中断等;序,模拟定时中断等;l支持汇编程序的各种调

54、试,包括:控制程序运行方式、修支持汇编程序的各种调试,包括:控制程序运行方式、修改程序运行状态、观察程序运行结果等改程序运行状态、观察程序运行结果等crests/atat(crests/atat(汇编单元配置与测试功能汇编单元配置与测试功能) )lcrests/atatcrests/atat的的cpucpu上下文场景的自编程配置能力解决了对上下文场景的自编程配置能力解决了对汇编程序进行单元测试的需求汇编程序进行单元测试的需求l用户可根据单元测试的要求,灵活方便地对用户可根据单元测试的要求,灵活方便地对cpucpu上下文场景上下文场景进行配置,形成汇编程序单元执行的驱动进行配置,形成汇编程序单元

55、执行的驱动六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )32/35crests/atat(crests/atat(汇编系统仿真与测试功能汇编系统仿真与测试功能) )l汇编系统仿真与测试功能提供了对汇编程序进行功能测试汇编系统仿真与测试功能提供了对汇编程序进行功能测试与覆盖测试的手段。与覆盖测试的手段。l其中覆盖测试支持汇编程序的语句、分支和调用覆盖测试,其中覆盖测试支持汇编程序的语句、分支和调用覆盖测试,并支持图形化显示并支持图形化显示l而外部事件的编程仿真方式,解决了外部激励、系统闭环而外部事件的编程仿真方式,解决了外部激励、系统闭环运行和功能测试的要求运行

56、和功能测试的要求crests/atat(crests/atat(中文测试报告中文测试报告) )l中文测试报告以超文本形式给出了被测汇编程序的静态分中文测试报告以超文本形式给出了被测汇编程序的静态分析和动态测试的各种结果及结果统计析和动态测试的各种结果及结果统计l提出了汇编编程风格约定和汇编程序质量度量建议提出了汇编编程风格约定和汇编程序质量度量建议六、全数字仿真用于测试的解决方案六、全数字仿真用于测试的解决方案( (续续) )33/35crests/atat(crests/atat(外部事件仿真技术外部事件仿真技术) )l用用tcltcl高级脚本编程模拟高级脚本编程模拟i/oi/o与中断事件的产生与中断事件的产生l被测汇编程序在模拟环境运行过程中,尽管存大量的被测汇编程序在模拟环境运行过程中,尽管存大量的i/oi/o与中断事件产生的与中断事件产生的要求,也能够与真实硬件环境一样连续不中断地运行。要求,也能够与真实硬件环境一样连续不中断地运行。l在设计初期在设计初期, ,在真正的硬件制造出来之前在真正的硬件制造出来之前, ,或设计要进行变化或设计要进行变化, ,以及进行维护以及进行维护等等, ,这一点非常重要。这一点非常重要。l端口端口i/oi/o与中断事件产生的自

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论