嵌入式软件测试

上传人:小** 文档编号:44533298 上传时间:2018-06-09 格式:PPT 页数:35 大小:496.52KB
返回 下载 相关 举报
嵌入式软件测试_第1页
第1页 / 共35页
嵌入式软件测试_第2页
第2页 / 共35页
嵌入式软件测试_第3页
第3页 / 共35页
嵌入式软件测试_第4页
第4页 / 共35页
嵌入式软件测试_第5页
第5页 / 共35页
点击查看更多>>
资源描述

《嵌入式软件测试》由会员分享,可在线阅读,更多相关《嵌入式软件测试(35页珍藏版)》请在金锄头文库上搜索。

1、1/351第15讲 嵌入式软件测试2/35一、嵌入式软件测试概念嵌入式系统的自身特点,使得嵌入式软件很难测试l如实时性(Real-timing),内存不丰富,I / O通道少,开发工具昂 贵,并且与硬件紧密相关CPU种类繁多,等等l嵌入式软件的开发和测试与一般商用软件的开发和测试策略有很大的 不同,可说嵌入式软件是最难测试的一种软件嵌入式软件开发采用“宿主机目标机”交叉方式l即相应的测试也为host-target测试或cross-testingl所有测试如放在目标平台上会有很多不利的因素:1.测试软件,可能会造成与开发者争夺时间的瓶颈,避免它只有提供更多 的目标环境2.目标环境可能还不可行3.

2、比起主机平台环境,目标环境通常是不精密的和不方便的4.提供给开发者的目标环境和联合开发环境通常是很昂贵的5.开发和测试工作可能会妨碍目标环境已存在持续的应用3/35一、嵌入式软件测试概念(续)交叉测试环境下应关注的问题:l测试需要多少人员(单元测试,软件集成,系统测试)?l多少软件应该测试,测试会花费多长时间?l在主机环境和目标环境有哪些测试软件工具,价格怎样,是 否适合?l多少目标环境可以提供给开发者,什么时候?l主机和目标机之间的连接怎样?l被测软件下载到目标机有多快?l使用主机与目标环境之间有什么限制(如软件安全标准)?管理者在进行嵌入式软件测试时都应深入考虑以上问 题,结合自身实际情况

3、,选定合理测试策略和方案4/35一、嵌入式软件测试概念(续)嵌入式软件测试各个阶段的通用策略l单元测试l所有单元级测试都可以在主机环境上模拟目标环境进行,除非少数 情况,特别具体指定了单元测试直接在目标环境进行l集成测试l软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行 ,当然在目标环境上重复测试也是必须的,在此级别上的确认测试 将确定一些环境上的问题,比如内存定位和分配上的一些错误l在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多 少。有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做 集成是不切实际的l一个大型软件的开发可以分几个级别的集成。低级别的软件集成在 主机

4、平台上完成有很大优势,越往后的集成越依赖于目标环境5/35一、嵌入式软件测试概念(续)嵌入式软件测试各个阶段的通用策略(续)l系统测试和确认测试l所有的系统测试和确认测试必须在目标环境下执行l当然在主机上开发和执行系统测试,然后移植到目标环境重复执行 是很方便的l对目标系统的依赖性会妨碍将主机环境上的系统测试移植到目标系 统上,况且只有少数开发者会卷入系统测试,所以有时放弃在主机 环境上执行系统测试可能更方便l确认测试最终的实施舞台必须在目标环境中,系统的确认必须在真 实系统之下测试,而不能在主机环境下模拟。这关系到嵌入式软件 的最终使用。l包括恢复测试、安全测试、强度测试、性能测试好的交叉测

5、试策略能提高嵌入式软件测试水平和效率6/35一、嵌入式软件测试概念(续)“白盒”测试的插桩概念7/35一、嵌入式软件测试概念(续)嵌入式软件测试的一般流程A.使用测试工具的插装功能(主机环境)执行静态测试分析 ,并且为动态覆盖测试准备好一插装好的软件代码B.使用源码在主机环境执行功能测试,修正软件的错误和 测试脚本中的错误C.使用插装后的软件代码执行覆盖率测试,添加测试用例或 修正软件的错误,保证达到所要求的覆盖率目标D.在目标环境下重复(B),确认软件在目标环境中执行测 试的正确性E.若测试需要达到极端的完整性,最好在目标系统上重复 (C),确定软件的覆盖率没有改变8/35一、嵌入式软件测试

6、概念(续)嵌入式软件测试的一般流程(续)l通常在主机环境执行多数的测试,只是在最终确定测试结果 和最后的系统测试才移植到目标环境,这样可以避免发生访 问目标系统资源上的瓶颈,也可以减少在昂贵资源如在线仿 真器上的费用l另外,若目标系统的硬件由于某种原因而不能使用时,最后 的确认测试可以推迟直到目标硬件可用,这为嵌入式软件的 开发测试提供了弹性l设计软件的可移植性是成功进行交叉的先决条件,它通常可 以提高软件的质量,并且度软件的维护大有益处l很多测试工具,都可以通过各自的方式提供测试在主机与目 标之间的移植,从而使嵌入式软件的测试得以方便的执行9/35二、嵌入式软件测试的典型工具嵌入式“白盒”测

7、试工具l白盒测试是以源代码为测试对象,除对软件进行通常的结构分析和质量 度量等静态分析外,主要是进行动态测试l代表了当今软件自动化测试领域最高水平的高级语言单元测试工具 VectorCASTl瑞典Telelogic公司的logiscope和美国IBM公司的Rational的Test Realtime,通过串口以太网对应被测软件运行的目标机上进行连接,在 对软件进行插桩后下载到目标机上运行进行准实时的或事后的分析l美国Freesacle公司的Codetest与被测目标机通过总线或飞线方式进行 连接,将被测软件进行插桩,当被测软件在目标机上运行时对其进行实 时的监测l国内有通过总线监听手段进行覆盖

8、测试,当CPU采用指令预取方式工作 时这种方式就有问题了10/35二、嵌入式软件测试的典型工具(续)嵌入式“黑盒”测试工具l“黑盒”测试是将嵌入式软件当作一个黑盒子,只关注系统的输入输出l目前的测试做法是以硬件方式将被测系统的输入输出端口用硬件对应连 接,使用实时处理机和宿主机对被测系统进行激励和输入,进行驱动, 然后获取输出结果进行分析,进行开环或闭环测试l优点是实时性强l缺点是这种测试实际上是对整个被测系统的测试,是一种确认性测试, 如发生问题,不知道是硬件还是软件发生的问题,还是软硬件耦合发生 的问题l如果目标机未设计制造出或无法得到,这种测试无法进行l代表性的公司和产品是德国Tech

9、SAT的ADS2系统。价格比较昂贵。国 内的是北航的GESTE嵌入式系统测试环境11/35嵌入式“灰盒”测试工具l“灰盒”测试是指嵌入式软件即能做“白盒”测试,又能做 “黑盒”测试的测试工具,目前主要是基于全数字仿真或半 实物仿真技术的应用l欧洲航天局的SPACEBEL、SHAM等产品l国内北京奥吉通有限公司的科锐时系列产品CRESTS/ATAT和 CRESTS/TESS等二、嵌入式软件测试的典型工具(续)12/35嵌入式软件仿真工具l空间飞行器、卫星等工作在太空中,空间飞行器、 卫星控制软件即嵌入式软件的调式与测试必须 在一个等价太空环境下的仿真环境里进行l仿真环境的建立需要仿真工具的支持。

10、l欧洲航天实时仿真产品Eurosim以及网络资源透明 访问工具SPINEware是最具典型的嵌入式软件仿真 工具二、嵌入式软件测试的典型工具(续)13/35单元测试工具美国Vector公司的VectorCASTlVectorCAST用于高级语言的单元测试、组装测试及集成测试 。它代表了当今软件自动化测试领域最高水平,它能够:l自动插桩(Stub)及针对被测程序单元自动生成驱动程序l与主流编译程序器,目标机板,以及实时操作系统(RTOS)的相结合l自动生成从小、中、大三种参数取值的测试用例,自动生成测试用 例的范围值l允许顾客采用图像化的点击界面或直观手写(Scripting)界面来设 计测试用

11、例l允许完整的自动回归测试l提供图像化说明、分支(Branch)和MC/DC代码覆盖率l在主机上、仿真器和嵌入式目标机系统上执行测试l支持Ada语言和C/C+等语言三、嵌入式软件测试的典型工具举例14/35三、嵌入式软件测试的典型工具举例(续)IBM Rational Test RealTime(RTRT)lRTRT是一个针对单元测试和实时分析的交叉平台解决方案lRTRT是特别为那些嵌入式、实时软件和其它类型的交叉平台 软件产品而开发设计的lRTRT使得你在调试过程中能更多的了解代码的执行情况,让 你能够在程序运行前修改你的代码l使用RTRT,你能够:l在开发过程中测试,分析和解决问题l在主机

12、和目标机上测试和调试l构造模型驱动测试工具15/35白盒测试工具美国FreeScale公司Metroworks的CodeTestlCodeTest是专为嵌入式系统软件测试而设计的工具套件l为追踪嵌入式应用程序,分析软件性能,测试软件的覆盖率以及监控内 存动态分配等提供了一个实时在线的高效率解决方案lCodeTest还是一个可共享的网络工具,它将给整个开发和测试团队带来 高品质的测试手段lCodeTest可同时监视整个应用程序,这就避免了在选择程序的哪部分来 观测以及如何配置相应工具来对各部分进行测试时带来的困难l即便是在程序超出高速缓存(cache)或被动态再分配时,CodeTest仍 能生成

13、可靠的追踪及测试结果l在进入连续运行模式时,CodeTest能够同时测试出软件的性能,代码覆 盖以及存储器动态分配,捕获函数的每一次运行。l无论是在检测一个局部的软件模块还是整个软件系统测试,工程师只须 简单地将CodeTest的仿真探头(probe)插到目标系统的处理器上,预处 理待测的源程序,启动CodeTest,运行测试处理软件l测试结果在测试进行过程中或在测试结束后均可随时观看三、嵌入式软件测试的典型工具举例(续)16/35比利时SPACEBEL公司产品全数字仿真测试工具lERC32/1750/ADSP Target Simulator用于航天设计,仿真应用等方面l目标机模拟器能够模拟

14、ERC32/1750/ADSP计算机l能够模拟CPU指令、各种硬件动作和I/O模拟l所提供的功能比仿真器更加丰富l能够进行中断和错误注入l当程序执行到断点处,仿真硬件全部“冻结”,从而便于实时调试l支持如IU、FPU、UART、timers、DMA、ATAC以及各类I/O活动l时间性能比较理想l给出被测试代码执行的覆盖情况l完全不需要实施插装lERC32/1750/ADSP Target Emulator能够与配备了Jtag接口的ERC32目标 板相连,能够访问所有的IU, FPU和MEC寄存器,及目标板上所有的存储 单元三、嵌入式软件测试的典型工具举例(续)17/35荷兰CHESS公司产品S

15、HAM半实物仿真测试工具l星载软件验证设备SHAM是专门针对航天工业中卫星上的姿轨控制系统和数据管 理系统的嵌入式软件验证(确认)开发的专用系统l该系统是一个多计算机环境,由宿主机系统和仿真处理模块SHAM组成lSHAM包含一个目标处理器和支持与控制系统l目标处理器执行被测汇编语言程序,Ada语言程序,汇编语言、Ada语言混合 语言程序的最终二进制代码l支持与控制系统控制目标处理器的行为并仿真低级硬件接口l宿主机用于应用测试和全面控制,并提供更复杂环境的仿真模拟l被测汇编语言程序,Ada语言程序,混合语言程序最终二进制代码无需任何 修改,直接执行于真实目标处理器中,应用于被测软件真实的外界感知

16、环境 的仿真系统中l支持运行在真实目标处理器基础上的覆盖率分析lSHAM已经几次检测出严重的星载软件的缺陷,及时发现了被测星载软件的失 效过程,防止了整个卫星的损失三、嵌入式软件测试的典型工具举例(续)18/35“黑盒”测试工具GESTElGESTE(General Embedded System Testing Environment)为嵌入式系统 提供仿真测试环境,实现对嵌入式系统进行实时、闭环的、非侵入式的 系统测试l该产品的主要功能有:测试环境与测试仿真模型开发、测试脚本图形化 生成/调试、测试环境配置、实时测试、测试数据收集定制、测试数据 事后分析及日志管理等lGESTE采用当前主流嵌入式操作系统VxWorks,定时精度为1ms,根据仿 真环境复杂程度不同,可以满足工作周期不小于5ms 的实时嵌入式系统 测试l针对用户的不同需求,本软件具有较强的适应能力,可针对不同的用户 进行定制,提供开放的测试脚本描述语言及仿真建模环境,充分满足用 户在系统测试、开发中的各种需求三、嵌入式软件测试的典型工具举例(续)19/35

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 其它文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号