嵌入式软件测试课件.ppt

  1. 1、本文档共77页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式软件测试课件.ppt

PART 3 嵌入式系统软件测试 1 嵌入式软件的特点 2 嵌入式软件测试的特点 3 困难及解决办法 4 嵌入式软件开发及测试工具 5 例子 前言 嵌入式软件指嵌入式计算机系统中的软件 嵌入式计算机系统:其主要目的不是进行计算,而是较大系统中成为其完整不可分割部分的计算机系统; 如武器,航天,航空,指挥控制或运输系统中的计算机系统。 嵌入式软件可能是最难测试的一类软件。 1 嵌入式软件的特点 (1)嵌入式软件和硬件联系密切 嵌入式软件与所属的计算机系统有很强的耦合。 软件的实现细节与 ? 计算机系统的结构 ? IO端口配置 ? 计算机系统相连的外部设备及其输出信号特性都有关系。 嵌入式软件只能运行在特定的目标机上; 这种运行平台的特定性给嵌入式软件的开发和测试都带来极大的困难; 嵌入式软件的特点(续) (2)嵌入式软件通常要求强实时性 嵌入式软件一般由于要在规定的时间内完成处理功能,同时时间也是某些处理的重要输入参数。 嵌入式软件有更严格的处理时序要求。 嵌入式软件的特点(续) (3)嵌入式软件一般采用更低层的语言编写 考虑到速度和性能的要求,物理设备尺寸和内存空间的限制,嵌入式软件的实现仍然要把空间紧凑和尽量节省运行时间作为追求的目标。 有些情况下必须采用汇编语言编制,这种语言结构化程度低、规范化程度低,程序不易理解,不易维护,自身可靠性差。 许多测试工具在应用到这些程序上有许多困难甚至不能支持。 2 嵌入式软件测试特点 (1)嵌入式软件几乎全部涉及专用计算机外部设备 (2)嵌入式软件的运行平台-嵌入式计算机系统可能由于没有通常的外部设备而很难在测试过程中进行检测和观察。 (因为外部设备支持有限或者需要相关硬件开发,实际的嵌入式计算机硬件甚至不能用来测试) (如某些设备既没有存储,又没有显示、打印甚至键盘等设备) 嵌入式软件测试特点(续) (3)嵌入式软件的实时性要求使输出仅在某个有限的时间内有限,并且必须在这个时间段内生效。 (如飞机控制必须快速对飞行器的姿态变化作出反应以保证飞行的稳定性) (4)嵌入式软件还可能是交互的。 交互的因素与前面三个因素可能同时,使测试过程更加困难。 测试困难存在的更本原因? 一般测试技术和测试工具的实施缺乏基本条件。 3 问题对应的解决办法 3.0 评审和静态测试 3.1 专用设备问题 3.2 监测真实硬件运行情况 3.3 实时性测试 3.4 交互式软件测试 3.5 并发系统,网络通信问题 3.6 采用全数字仿真技术解决上述问题 3.0 静态测试 作用:便于测试人员明确和理解程序的逻辑,同时也是开发人员自省的过程。因为实践表明,开发人员在讲解过程中能发现许多自己的错误。 静态测试方法 框架结构的测试 在实际中,采用“生成引用表”的方法来完成。即在表中列出各子程序和函数的属性:已定义、未定义、定义类型;输入参数的个数、顺序、类型;输出参数的个数、顺序、类型;已引用、未引用、引用次数等。通过对引用表的分析和对照来检查程序的框架结构。   静态测试方法-函数结构的测试 (1)由于其是模块化和结构化的,从而可以通过使用一系列规则从程序推导出相应的流图模型。然后将其和设计文档的流图进行对比,校验设计与源代码的一致性。 (2)通过对流图的走查(walk-through),应用逻辑覆盖、分支覆盖和路径覆盖方法来测试函数的健壮性。 (3)函数结构的封闭性测试。 静态测试方法-细节专项检查 测试人员根据以往的测试档案和工作经验,事先列出一份常见错误清单,然后有针对性地进行检查。实践中列出的专项包括:   (1)数组下标是否越界,变量值是否越界?   (2)是否避免了依赖了程序设计语言中的缺省值的代码?   (3)除数是否有可能为零?   (4)浮点数运算是否进行分析检查?   (5)栈是否会溢出?   (6)用过的内存是否已释放?   (7)全局变量的使用是否必要?   (8)函数引用时,变量类型和个数是否对应?   (9)代码是否包含无穷循环?   (10)递归是否存在问题? 3.1 专用设备 解决专用设备问题的方法有两个: 方法1:如果专用设备已经可用并能用来进行测试,就使用实际的设备。[在很多情况下实现起来很困难] 方法2:采用某种软件仿真所需要的设备(仿真能降低费用,加速进程) 但是某些仿真非常困难,如传感器的噪声特性和失效模式,可能程序在仿真设备测试时运行正确,在真实设备下运行时经常发生错误。 3.2 监测真实硬件运行情况 监测嵌入式系统中的真实硬件运行情况的困难 方法1:使用某种对目标机和宿主机都适用的编译器的高级语言,即采用生成宿主机代码在宿主机上进行目标程序的运行和测试; (如常用vc编译调试算法,而后移植到单片机中 ) (需要认真估计目标机和宿主机

文档评论(0)

带头大哥 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档