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