欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    嵌入式软件测试ppt课件.ppt

    • 资源ID:5394441       资源大小:1.21MB        全文页数:51页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    嵌入式软件测试ppt课件.ppt

    嵌入式软件测试技术与策略An Introduction to Embedded Software Testing,2023年7月3日,2,内容提要,关于软件测试软件测试技术嵌入式软件测试方法嵌入式软件测试策略嵌入式软件测试解决方案,2023年7月3日,3,对软件测试的几种认识测试与调试类似,是对调试的一种补充测试是为了证明软件正确测试是为了发现软件错误测试是检验软件是否满足规定的需求测试是为了减小软件不工作的风险测试是不需要更多的测试工作即可以产生低风险软件的一种认识上的训练,关于软件测试(1),2023年7月3日,4,关于软件测试(2),什么是软件测试 专家说法:测试是为了发现错误而执行程序的过程软件测试是对软件建立信心的过程 IEEE 1983:使用人工或自动手段来运行某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清结果与实际结果之间的差别总结软件测试要解决的问题是:软件的行为是否符合“规定的”要求,它有两个方面的含义:Does it do everything it is specified to do?Does it do anything it is not specified to do?,2023年7月3日,5,软件测试的重要性海湾战争期间,由于跟踪软件在运行100小时后出现0.36秒的舍入误差,导致未能成功拦截一枚飞毛腿导弹,致使28名联军士兵丧生。1963年美国宇航局事例(Fortran程序):DO 5 I=1,3 误写成 DO 5 I=1.3;一点之差导致火箭发射失败1996年6月4日,阿利亚娜5型火箭首次发射失败,关于软件测试(3),double d_bh;short s_bh;sense_horizontal_velocity(/OPERAND ERROR,2023年7月3日,6,软件测试的重要性当前的软件开发方法免疫力低软件是一种特殊的产品开发方法学因素人不能避免犯错误软件开发工具不完备维护费用昂贵软件测试保证软件产品质量的重要手段软件测试能最大限度的发现软件中的错误,减少软件中残留的错误,提高软件产品的可靠性通过软件测试可以验证软件功能、性能、可用性、可移植性、约束、限制等指标满足规定的需求软件可靠性测试可得到软件可靠性指标软件测试为软件质量的定量评定提供依据,关于软件测试(4),2023年7月3日,7,软件测试的重要性一汽大众 召回6速自动变速箱(DSG)汽车2760辆油液温度传感器上的插头处导线为卡紧,传感器可能发出错误温度信息,严重时会导致控制单元启动变速箱保护模式,暂时中断动力输出需要更新变速箱控制单元程序宝马 召回气门电控马达问题汽车5470辆因软件错误,发动机气缸的气门电控马达可能出现不同步现象,将导致发动机工作不稳定,有时会熄火对发动机管理系统控制单元重新编成现代 召回悬架自动稳定控制缺陷问题车辆2017辆在部分装备了3.3L发动机和电子稳定控制系统(ESC)车辆上,ESC可能设置得对过渡转向过于敏感,会对外侧前轮施加不必要的制动力,可能导致碰撞事故对ESC的液压电控单元重新编程沃尔沃 发动机冷却风扇控制模块版本错误,关于软件测试(4),2023年7月3日,8,关于软件测试(5),软件测试的发展历程软件测试并不是一开始就有的轻视重视简单复杂被迫主动如何开展软件测试测试是一个非常复杂的过程,不仅要掌握相应的技术和方法,而且还要懂得在什么时候、什么情况下使用什么方法,这就是软件测试的策略问题。另外,软件测试的实施需要有效的管理,仅靠简单地组建测试队伍或购买一两件测试工具是不够的。因此,技术、策略和管理构成了软件测试工程的三大要素。,2023年7月3日,9,测试与调试的关系测试是检查软件发现问题,调试是分析软件解决问题测试贯穿于整个软件生存期,调试主要是在软件开发过程中调试具有随意性、不明确性,而测试是明确的、可重复的测试是全方位的,而调试是代码级的测试与调试不能相互替代,但相互支持,相辅相成,关于软件测试(6),2023年7月3日,10,软件测试的基本原则Good-enough原则:权衡投入产出比,既不要不充分,也不要过分。Pareto法则:在分析、设计、试验、复审等阶段能够发现和避免80的bug而系统的软件测试能够找出其余bug中的80。应尽早地开展软件测试。问题发现得越早,解决问题的代价就越小。严格执行测试计划,排除测试的随意性测试是需要维护的妥善保存测试计划、测试用例、出错统计和测试分析报告,为维护提供方便完全彻底的测试是不可能的。,关于软件测试(7),2023年7月3日,11,假设每次测试用时1ns,全年不间断地测试:,T=31.7 Years,关于软件测试(8),2023年7月3日,12,什么是“错误”我们通常用“错误”这一术语来描述测试过程中发现的各种问题在没有特别加以说明的情况下,这是一个泛用的、模糊的概念,它指的可能是:defect:缺陷。bug:差错。error:出错。failure:失效。,关于软件测试(9),2023年7月3日,13,测试设计测试是需要设计的。因此测试是一项具有很大创造性的工作,其工作量一点也不比软件设计小。软件测试与软件开发相比,并不低人一等。软件测试的创造性主要表现在:测试方案选择测试计划制定测试用例设计测试结果的分析测试过程的管理.,关于软件测试(10),2023年7月3日,14,测试用例所谓测试用例,是一份关于具体测试步骤的文档,用于指导测试的实际操作。测试用例可以是纯文本的说明文档,也可以是用脚本语言或高级语言编写的一段代码。测试用例应当包括:测试用例名称及标识测试目的测试条件及设置输入数据要求预期的输出结果操作步骤测试用例的典型设计方法黑盒法(Black box testing)白盒法(White box testing),关于软件测试(11),2023年7月3日,15,软件测试技术黑盒测试(1),黑盒测试的概念若被测程序与特定的功能相联系,我们可以针对功能设计测试,以证实各功能完全可执行,同时在功能中寻找错误把测试对象看做一个黑盒子,完全不考虑程序内部的逻辑结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否正确。黑盒测试又叫做功能测试或数据驱动测试。黑盒测试类似于中医:使用望、闻、问、切黑盒测试的目的是否有错误的或遗漏了的功能?在接口上,输入能否正确地接受?能否输出正确的结果?是否有数据结构错误或外部信息访问错误?是否考虑了软件的出错情况?,2023年7月3日,16,软件测试技术黑盒测试(2),黑盒测试的一个常用技巧打桩(Stub)用在隔离测试中,用以消除其他程序对被测程序的影响当被测程序调用其子模块时,可以使用模拟法,此时被测程序并没有真正调用其他模块,而是从桩模块处得到一个所需的值。这种技术叫做打桩。黑盒测试常用方法等价分割边界值分析,2023年7月3日,17,常用黑盒测试方法等价分割等价分割是一种典型的黑盒测试方法等价分割将输入输出范围分割成多个等价的区域,然后从每个等价区中选取少数有代表性的数据做为测试用例。所谓等价,是指:在同一分割区内程序的行为是等价的等价区之间的依赖性可以忽略输入和输出并非只是程序参数:外部数据时间执行顺序/记录状态,软件测试技术黑盒测试(3),2023年7月3日,18,常用黑盒测试方法边界值分析边界值分析也是一种黑盒测试方法,是对等价分割方法的补充经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据,而不是选取等价类中的典型值或任意值做为测试数据,软件测试技术黑盒测试(4),错误聚集在边界上,缺陷隐藏在角落里!,2023年7月3日,19,软件测试技术白盒测试(1),什么是白盒测试若被测程序与特定的结构相联系,我们可以针对结构设计测试,以确保内部的“所有齿轮相吻合”,即软件的内部过程是合理的,是遵照规定执行的白盒测试又称玻璃盒测试。把测试对象看作一个透明的盒子,充分利用其逻辑结构和有关信息,设计和选择测试用例。白盒测试又称为结构测试或逻辑驱动测试白盒测试类似于西医看病,通过X光、CT扫描等手段白盒测试主要用于结构测试覆盖测试静态分析也可以算作白盒测试的一种手段,2023年7月3日,20,软件测试技术白盒测试(2),插装(Instrumentation)插装又称软件探针,由测试工具自动加入,用于反馈软件的执行信息。插装不影被测程序的运行,语句覆盖判定覆盖条件覆盖判定条件覆盖路径覆盖,2023年7月3日,21,软件测试技术白盒测试(3),典型的白盒测试基本路径测试Thomas McCabe首先提出从程序的结构入手,分析、计算模块的复杂程度McCabe圈复杂度(=基本路径数)确认模块的一组基本路径,再根据这些基本路径设计测试用例,做到基本路径覆盖。圈复杂度可以通过程序流图得出基本路径测试是结构化测试的理论基础,2023年7月3日,22,代码覆盖,流程 A,流程 B,哪个函数更复杂?,代码覆盖与复杂度不成比例,软件测试技术白盒测试(4),2个测试,2个测试,基本路径测试的意义,如果代码覆盖率=100%各需多少测试?,2023年7月3日,23,分支覆盖,需要多少个测试可以做到100%覆盖?,分支测试#1,分支测试#2,分支测试#3,分支测试#4,软件测试技术白盒测试(5),基本路径测试的意义,2023年7月3日,24,基本路径覆盖,(TRUE and FALSE),(FALSE and TRUE),(TRUE and TRUE),任何其他路径(如 FALSE and FALSE)可由基本路径组合得到,+,-,=(FALSE and FALSE),软件测试技术白盒测试(6),基本路径测试的意义,基本路径数等于模块的McCabe圈复杂度 v(G),2023年7月3日,25,回归测试软件更动后重新进行的测试既要测试变更部分,也要测试受影响部分关键在决定哪些测试必须被重复保证测试工作的可重现性尽量利用工具,提供回归测试的自动化水平,软件测试技术回归测试,2023年7月3日,26,软件测试技术静态分析(1),静态分析又称静态测试静态测试是不动态执行程序代码而寻找程序代码中可能存在的错误或评估程序代码质量的过程。静态测试可以由人工进行,充分发挥人的逻辑思维优势。可以借助软件工具自动进行,2023年7月3日,27,软件测试技术静态分析(2),静态分析的主要方法和内容:代码审查,这是软件质量保证(SQA)的重要内容代码统计分析软件工程度量McCabe 复杂度Halstead 复杂度.,2023年7月3日,28,嵌入式软件测式的基本方法拿来主义充分借用PC软件的测试方法静态/动态白盒/黑盒单元测试/集成测试/系统测试全数字模拟测试交叉测试(Host/Target测试)真实环境验证,嵌入式软件测试方法(1),2023年7月3日,29,嵌入式软件测试方法(2),全数字模拟测试采用数学平台的方法,将嵌入式软件从系统中剥离出来,通过开发CPU指令、常用芯片、I/O、中断、时钟等模拟器在HOST上实现嵌入式软件的测试主要特点与嵌入式硬件平台脱钩操作简单,可以借鉴常规的软件测试方法适用于功能测试有局限性,2023年7月3日,30,嵌入式软件测试方法(3),全数字模拟测试的局限性通用性差,使用不同语言编写的嵌入式软件,需要不同的仿真程序来执行实时性与准确性难以反映出嵌入式软件的真实情况,测试出与时序有关的故障价值不大。维护统一、精确的系统时钟,理顺时序关系相当困难,特别是当并发的事件要求一定的同步关系时。开发成本高。设计出一个能进行系统测试的的环境代价太大只能作为嵌入式软件测试的辅助手段,2023年7月3日,31,嵌入式软件测试方法(4),交叉测试(Host/Target测试)与目标环境无关的部分在PC机上完成充分利用高级语言的可移植性借鉴常规的软件测试方法与模拟测试不同与硬件密切相关的部分在Target上完成需要调试环境支持测试工具需要支持目标环境最后在目标环境中确认,2023年7月3日,32,嵌入式软件测试方法(5),交叉测试的特点将大部分工作转移到PC平台上,在硬件环境未建好或调试工具缺乏时就可以开展可以充分地“拿来主义”适用于高级语言,如C,C+操作方便,测试成本较低。实时性受调试环境的制约目标环境中测试时要占用一定的目标资源注意目标环境和主机环境的差异:目标编译器的bug目标码的验证,2023年7月3日,33,如何开展交叉测试(Host/Target测试)选用带有目标支持包(Target Package)的软件测试工具确定哪些模块与硬件无关,哪些与硬件相关配置相应的调试环境和目标环境分别进行Host和Target测试Host:源代码+测试用例-编译连接-执行-测试结果Target:源代码+测试用例+目标包-编译连接-下载-执行-反馈测试结果交叉测试的嵌入式调试环境SimulatorEmulatorBDM/JTAG Emulator,嵌入式软件测试方法(6),2023年7月3日,34,“拿来主义”静态分析很重要Watts S.Humphrey的说法很多软件工程师认为动态测试比静态测试更重要并非如此有经验的软件工程师平均每写1000行代码将会出现100个错误80%的软件错误归咎于对于编写语言的错误使用,而这些错误往往不是功能测试能解决的因此,软件工程师应该消除错误,找出根源,预防再次发生同样的问题静态分析的重要内容代码规则检查实施简单、方便无需执行程序,与嵌入式环境无关早期介入,代价小,见效快有利于降低动态测试的难度有利于养成良好的编程习惯可以执行自定的规范,嵌入式软件测试方法(7),2023年7月3日,35,“拿来主义”动态测试不可少动态测试是验证软件功能最直接、最有效的手段通过运行被测程序验证其功能、性能,检查代码的执行情况与静态分析相辅相成需要事先设计详细、完备的测试用例可用白盒、黑盒等方法工作量较大、较枯燥动态测试的主要内容功能、性能验证,是否符合需求定义代码覆盖。哪些代码执行了,哪些没有执行,其比例如何,嵌入式软件测试方法(8),2023年7月3日,36,“拿来主义”白盒黑盒相辅成白盒测试与黑盒测试是软件测试最常用、最常规的两种技术白盒测试把测试对象看作一个透明的盒子,测试人员从其逻辑结构入手,设计和选择测试用例,对路径、控制结构、数据流等进行测试通过插装检查程序的状态,确定是否与预期的状态一致侧重于代码运行的过程黑盒测试把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构,只依据其需求定义,检查程序运行的结果多用于功能测试和性能分析在程序的接口上进行需要设计“驱动”和“打桩”,嵌入式软件测试方法(9),2023年7月3日,37,“拿来主义”单元集成两步走单元测试和集成测试是软件测试的两个阶段单元测试将被测软件分解为单元,逐个测试单元测试需要从程序的内部结构和功能出发设计测试用例。多个模块可以平行地独立进行单元测试可用白盒、黑盒等方法集成测试在单元测试的基础上,将所有模块按照设计要求组装起来测试主要测试内容接口间参数传递集成的功能实现模块间的影响,嵌入式软件测试方法(10),2023年7月3日,38,先静后动,从小到大,由黑到白先静态,后动态从代码规则检查做起测试开展得越早,付出的代价就越小静态分析简单、方便,成本低、见效快静态分析为动态测试打下良好基础大大降低了测试的成本先单元,后集成单元测试是集成测试的基础单元测试得越好,集成测试的工作量就越小先黑盒后白盒先验证软件功能是否满足需求后验证程序覆盖率,补充测试,软件测试策略(1),2023年7月3日,39,质量分析,事半功倍通过改善代码的结构来分析、改进软件的质量充分应用结构化测试技术 软件模块的圈复杂度和逻辑结构能客观地反映软件的质量逻辑越“复杂”,就越容易出错。结构越“良好”,代码就越可靠代码质量分析的好方法结构化测试从结构入手分析代码的复杂程度逻辑复杂度定量化客观有理论基础复杂度与代码出错的关联性非常强指导测试的执行指出代码质量改进的方向,嵌入式软件测试策略(2),2023年7月3日,40,交叉测试,因地制宜嵌入式软件测试,软件测试策略(3),2023年7月3日,41,选好工具,抓好管理工欲善其事,必先利其器通常工具是必需的,但不是万能的根据测试需要和工具的特长进行选择使用测试工具带来的好处客观,准确,无感情色彩可长时间工作,不会疲劳高效、权威减轻人的工作量,但不能完全代替人测试需要管理测试要长期化、常态化、系统化测试需要维护、更新回归测试过程管理缺陷追踪,嵌入式软件测试策略(4),2023年7月3日,42,软件测试完整解决方案,2023年7月3日,43,嵌入式常用软件测试工具介绍(1),各类MPU汇编源程序,嵌入式C源程序和头文件,打印,定制最合适的布局,MSWord,HTML,组合各类文档、源文件的专用阅读器,CasePlayer2,单击图标便可完成,C/汇编选项参数文件,规格说明书-流程图-模块构造图-模块规格说明书-模块一览表-结构体规格说明书-结构体一览表,定义解析方法,CasePlayer面向嵌入式开发的程序规格说明书制作工具CasePlayer2是一种可以解析汇编、C语言(ANSI C或非ANSI C)的源代码,并且制作流程图以及模块规格说明书的制作工具,2023年7月3日,44,嵌入式常用软件测试工具介绍(2),PRQA代码规则检查英国Programming Research公司出品代码规则检查分别针对C,C+,FORTRAN、JAVA支持MISRA C/C+等国际标准,及用户自定义的编程规范PRQA能发现 违背程序编写标准的问题 发现程序中不安全,不明确和模糊的部分 找出程序中不可移植部分 违背程序编译格式的问题 但不可以检测程序的实际功能的正确性PRQA还能提供多达44种业界广泛接受的度量提供多种可视化输出,包括函数结构图、函数调用树、外部参考、头文件关联、统计度量分析,2023年7月3日,45,嵌入式常用软件测试工具介绍(3),QAC/C+代码规则检查规则可以选择、定制、汉化简单易用,见效快,2023年7月3日,46,嵌入式常用软件测试工具介绍(4),Tessy自动单元测试公司:德国Hitex/RazorcatC/C+语言目标系统的单元测试(动态测试)分析源代码识别变量和类型,提供输入和输出的接口自动生成驱动和打桩管理测试用例,支持回归测试标准的测试报告测试驱动是基于Master/Slave结构,允许无限多的用例和很少的目标系统资源各种数据类型智能分析,包括指针的支持批处理功能可以在GUI和命令行下完成与嵌入式开发环境的无缝集成,占用资源很小支持MC/DC测试支持低端单片机,2023年7月3日,47,嵌入式常用软件测试工具介绍(5),Tessy支持的嵌入式环境,2023年7月3日,48,嵌入式常用软件测试工具介绍(6),McCabe IQ结构化测试/质量分析美国McCabe&Associates公司出品McCabe IQ适用于软件测试的不同阶段,主要构成:McCabe QA(质量分析)McCabe Test(追踪与测试)McCabe Reengineering(再工程)。,2023年7月3日,49,嵌入式常用软件测试工具介绍(7),Cantata+单元测试/集成测试英国IPL公司出品Cantata+for C/C+AdaTEST for Ada83/95主要功能动态测试Does the code meet its specification?静态分析Does the code meet coding and complexitystandards?覆盖分析How much of the code been tested?主要特点自动脚本技术,自动生成驱动程序和桩模块独特的Wrapping技术,完全控制程序的接口,做到真正的逆向测试同时进行动态/静态/覆盖测试。用户可自定义通过/失败标准可支持中文界面支持嵌入式软件测试,2023年7月3日,50,嵌入式常用软件测试工具介绍(8),Klocwork软件缺陷检查加拿大Klocwork公司出品能够分析C、C+、C#和Java代码;能够发现的软件缺陷种类:软件质量缺陷安全漏洞方面的缺陷对软件架构、编程缺陷的违反情况对软件进行可视化的架构分析、优化对软件进行各种度量分析能够提供与多种主流IDE开发环境的集成能够分析上千万代码行的超大型软件,谢谢大家,

    注意事项

    本文(嵌入式软件测试ppt课件.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开