嵌入式系统测试与调试.ppt_第1页
嵌入式系统测试与调试.ppt_第2页
嵌入式系统测试与调试.ppt_第3页
嵌入式系统测试与调试.ppt_第4页
嵌入式系统测试与调试.ppt_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

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

文档简介

由安博测试空间技术中心/提供,嵌入式系统概论,第五章 嵌入式系统测试与调试软件测试,接下来介绍本章第二节内容,嵌入式软件开发环境 嵌入式软件测试 嵌入式系统调试 嵌入式软件的固化运行,第二节介绍,嵌入式软件测试 嵌入式软件测试策略 嵌入式系统测试工具,嵌入式软件测试,嵌入式产品的特点 应用系统日趋复杂 竞争要求产品快速上市 开发技术日新月异 硬件发展的日益稳定 软件故障日益突出 软件的重要性逐渐引起人们的重视 嵌入式系统的测试势在必行,嵌入式软件测试,首先简单介绍软件的定义 软件是计算机系统中与硬件相互依存的另一部分 软件包括: 程序 相关数据 说明文档,嵌入式软件测试,首先简单介绍软件的定义(续) 程序是按照事先设计的功能和性能要求执行的指令序列; 数据是是程序能正常操纵信息的数据结构; 文档是与程序开发维护和使用有关的各种图文资料。,嵌入式软件测试,软件测试的目的 软件测试的目的是发现程序中的错误 是为了证明软件有错 而不是证明软件无错,嵌入式软件测试,嵌入式软件测试的特点 由于嵌入式系统自身特点,如: 实时性 内存不丰富 I / O通道少 开发工具昂贵 与硬件紧密相关 CPU种类繁多,等等。 嵌入式软件的开发和测试不同于桌面系统开发和测试 是最难测试的一种软件。,嵌入式软件测试,如何解决嵌入式软件测试难的问题? 使用有效的测试策略是唯一的出路 由于嵌入式系统使用交叉开发环境,相应的测试定义为host-target测试或cross-testing。 那么,是在目标机上测试还是在宿主机上测试?,嵌入式软件测试,假如测试都在目标机上,看看有什么问题: 1)可能会与开发者争夺时间、资源 避免它只有提供更多的目标环境; 2)目标环境可能还不可行; 3)比起主机平台环境,目标环境通常是不精密和不方便; 4)提供给开发者的目标环境和联合开发环境通常很昂贵; 5)开发和测试工作可能会妨碍目标环境已存在持续的应用。,嵌入式软件测试,测试建议: 从经济和开发效率的角度考虑 软件开发周期中尽可能大的比例在主机系统环境中进行, 其中包括测试。,嵌入式软件测试,确定host-target测试环境后,开发测试人员又会遇到什么问题? 1)多少开发人员会卷入测试工作? 2)多少软件应测试,测试花多长时间? 3)在主机环境和目标环境有哪些软件工具,价格怎样,适合程度如何? 4)多少目标环境可提供给开发者,何时? 5)主机和目标机之间如何连接,以何种方式实现主机与目标机间的通讯? 6)被测软件下载到目标机有多快? 7)使用主机与目标环境之间有什么限制?,接下来介绍,嵌入式软件测试 嵌入式软件测试策略 嵌入式系统测试工具,嵌入式软件测试策略,针对上述问题应采用一些测试策略 1. 单元测试 2. 集成测试 3. 确认测试 4. 系统测试,嵌入式软件测试策略,1. 单元测试 单元测试指对源程序中每一个程序单元进行测试 检查各个模块是否正确实现规定的功能 从而发现模块在编码中的错误 该阶段涉及编码和详细设计的文档,嵌入式软件测试策略,1. 单元测试(续) 所有单元级测试都可在主机环境上进行 除非少数情况,特别指定了单元测试在目标环境进行 在主机平台上运行,测试速度比在目标平台上快的多 最大化在主机环境进行软件测试的比例,通过尽可能小的目标单元访问所有目标指定的界面。,嵌入式软件测试策略,1. 单元测试(续) 当在主机平台完成测试,也可在目标环境上重复作一个简单的确认测试 以确定一些未知的,未预料到的,未说明的主机与目标机的不同 例如,目标编译器可能有bug,但在主机编译器上没有 通过目标环境上的确认测试,确认不会因为主机和目标机的不同而产生不同的测试结果,嵌入式软件测试策略,2. 集成测试 在单元测试的基础上,将所有模块按照设计要求组装成一个完整的系统而进行的测试 检查与设计相关的软件体系结构的有关问题,嵌入式软件测试策略,2. 集成测试(续) 软件集成也可在主机环境上完成 在主机平台上模拟目标环境运行 当然在目标环境上重复测试也是必须的 在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误。,嵌入式软件测试策略,2. 集成测试(续) 在主机环境上的集成测试,依赖于目标系统的具体功能 有些嵌入式系统与目标环境耦合非常紧密,在主机环境做集成是不切实际的 一个大型软件的开发可以分几个级别的集成 低级别的软件集成在主机平台上完成有很大优势 越往后的集成越依赖于目标环境,嵌入式软件测试策略,3. 确认测试和系统测试 所有的确认测试和系统测试必须在目标环境下执行 当然在主机上开发和执行系统测试,然后移植到目标环境重复执行是很方便的 但对目标系统的依赖会妨碍将主机环境上的系统测试移植到目标系统 且只有少数开发者参与系统测试 所以有时放弃在主机环境上执行系统测试可能更方便。,嵌入式软件测试策略,3.确认测试和系统测试(续) 确认测试最终的实施舞台必须在目标环境中。 系统的确认必须在真实系统之下测试,这关系到嵌入式软件的最终使用。,总结一下Cross-test时的策略: A) 使用测试工具的插桩功能(主机环境)执行静态测试分析,并且为动态覆盖测试准备好一插桩好的软件代码。 B) 使用源码在主机环境执行功能测试,修正软件错误和测试脚本中的错误。 C) 使用插桩后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。 D) 在目标环境下重复(B),确认软件在目标环境中执行测试的正确性。 E) 若测试需要达到极端的完整性,最好在目标系统上重复(C),确定软件的覆盖率没有改变。,接下来介绍,嵌入式软件测试 嵌入式软件测试策略 嵌入式系统测试工具,嵌入式软件测试工具,测试工具 能够用来辅助测试的工具 主要用来支持测试人员的工作 本身不能直接用来进行测试 测试工具一般都是通用工具 测试人员应该根据实际情况对它们进行适当的调整。,嵌入式软件的测试工具,嵌入式软件测试中经常用到的测试工具有: 内存分析工具 性能分析工具 覆盖分析工具 缺陷跟踪工具等,嵌入式软件的测试工具,内存分析工具 嵌入式系统的内存资源通常是受限的,内存分析工具可以用来处理在进行动态内存分配时产生的缺陷。 当动态分配的内存被错误地引用时,产生的错误通常难以再现,出现的失效难以追踪,使用内存分析工具可以很好地检测出这类缺陷。,嵌入式软件的测试工具,目前常用的内存分析工具有软件和硬件两种: 基于软件的内存分析工具可能会对代码的执行性能带来很大影响,从而影响系统的实时性; 基于硬件的内存分析工具对系统性能影响小,但价格昂贵,并且只能在特定的环境中使用。,嵌入式软件的测试工具,性能分析工具 嵌入式系统的性能通常是一个非常关键的因素 开发人员一般需要对系统的某些关键代码进行优化来改进性能。,嵌入式软件的测试工具,性能分析工具(续) 可以提供有关数据,帮助确定哪些任务消耗了过多的执行时间,从而可以决定如何优化软件,以获得更好的时间性能。 引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。,嵌入式软件的测试工具,覆盖分析工具 在进行白盒测试时,可以使用代码覆盖分析工具追踪哪些代码被执行过 分析过程一般通过插桩来完成 插桩可以是在测试环境中嵌入硬件 也可以是在可执行代码中加入软件 或者是两者的结合,嵌入式软件的测试工具,覆盖分析工具 (续) 开发人员通过对分析结果的总结,可以确定哪些代码被执行过,哪些代码被遗漏了 目前常用的覆盖分析工具一般都提供有关功能覆盖、分支覆盖、条件覆盖等信息。,测试工具实例:逻辑分析仪,工作机理 在不打断被测程序运行流程的基础上 对程序运行中的相关信息进行采集和分析 通过真实再现程序运行的逻辑流程和分析程序运行数据 帮助用户优化系统设计和解

温馨提示

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

评论

0/150

提交评论