嵌入式软件测试ppt课件

上传人:沈*** 文档编号:223496666 上传时间:2023-07-18 格式:PPT 页数:51 大小:959KB
收藏 版权申诉 举报 下载
嵌入式软件测试ppt课件_第1页
第1页 / 共51页
嵌入式软件测试ppt课件_第2页
第2页 / 共51页
嵌入式软件测试ppt课件_第3页
第3页 / 共51页
资源描述:

《嵌入式软件测试ppt课件》由会员分享,可在线阅读,更多相关《嵌入式软件测试ppt课件(51页珍藏版)》请在装配图网上搜索。

1、嵌入式软件测试ppt课件 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望2023年7月18日2 内容提要 q关于软件测试q软件测试技术q嵌入式软件测试方法q嵌入式软件测试策略q嵌入式软件测试解决方案2023年7月18日3对软件测试的几种认识对软件测试的几种认识q测试与调试类似,是对调试的一种补充q测试是为了证明软件正确测试是为了证明软件正确q测试是为了发现软件错误q测试是检验软件是否满足规定的需求测试是检验软件是否满足规定的需求q测试是为了减小软件不工作的风险q测

2、试是不需要更多的测试工作即可以产生低风险软件测试是不需要更多的测试工作即可以产生低风险软件的一种认识上的训练的一种认识上的训练关于软件测试(1)2023年7月18日4关于软件测试(2)什么是软件测试什么是软件测试专家说法:专家说法:q测试是为了发现错误而执行程序的过程测试是为了发现错误而执行程序的过程q软件测试是对软件建立信心的过程软件测试是对软件建立信心的过程qIEEE1983:q使用人工或自动手段来运行某个系统的过程使用人工或自动手段来运行某个系统的过程,其目的在于检验它其目的在于检验它是否满足规定的需求或是弄清结果与实际结果之间的差别是否满足规定的需求或是弄清结果与实际结果之间的差别总结

3、总结q软件测试要解决的问题是:软件的行为是否符合软件测试要解决的问题是:软件的行为是否符合“规定的规定的”要求,要求,它有两个方面的含义:它有两个方面的含义:nDoes it do everything it is specifiedspecified to do?nDoes it do anything it is not specifiedspecified to do?2023年7月18日5软件测试的重要性软件测试的重要性q海湾战争期间,由于跟踪软件在运行海湾战争期间,由于跟踪软件在运行100小时后出现小时后出现0.36秒的舍入误差,导致未能成功拦截一枚飞毛腿导弹,致使秒的舍入误差,导致

4、未能成功拦截一枚飞毛腿导弹,致使28名联军士兵丧生名联军士兵丧生。q1963年美国宇航局事例(年美国宇航局事例(Fortran程序):程序):DO 5 I=1DO 5 I=1,3 3 误写成误写成 DO 5 I=1DO 5 I=1.3;3;一点之差导致火箭发射失败一点之差导致火箭发射失败q19961996年年6 6月月4 4日,阿利亚娜日,阿利亚娜5 5型火箭首次发射失败型火箭首次发射失败关于软件测试(3)double d_bh;short s_bh;double d_bh;short s_bh;sense_horizontal_velocity(&d_bh);sense_horizontal

5、_velocity(&d_bh);s_bh=d_bh;s_bh=d_bh;/OPERAND ERROROPERAND ERROR2023年7月18日6软件测试的重要性软件测试的重要性q当前的软件开发方法当前的软件开发方法免疫力低免疫力低n软件是一种特殊的产品软件是一种特殊的产品n开发方法学因素开发方法学因素n人不能避免犯错误人不能避免犯错误n软件开发工具不完备软件开发工具不完备n维护费用昂贵维护费用昂贵q软件测试软件测试保证软件产品质量的重要手段保证软件产品质量的重要手段n软件测试能最大限度的发现软件中的错误,减少软件中残留的错软件测试能最大限度的发现软件中的错误,减少软件中残留的错误,提高软

6、件产品的可靠性误,提高软件产品的可靠性n通过软件测试可以验证软件功能、性能、可用性、可移植性、约通过软件测试可以验证软件功能、性能、可用性、可移植性、约束、限制等指标满足规定的需求束、限制等指标满足规定的需求n软件可靠性测试可得到软件可靠性指标软件可靠性测试可得到软件可靠性指标n软件测试为软件质量的定量评定提供依据软件测试为软件质量的定量评定提供依据关于软件测试(4)2023年7月18日8关于软件测试(5)软件测试的发展历程软件测试的发展历程q软件测试并不是一开始就有的软件测试并不是一开始就有的n轻视轻视重视重视n简单简单复杂复杂n被迫被迫主动主动如何开展软件测试如何开展软件测试q测试是一个非

7、常复杂的过程,不仅要掌握相应的技术测试是一个非常复杂的过程,不仅要掌握相应的技术和方法,而且还要懂得在什么时候、什么情况下使用和方法,而且还要懂得在什么时候、什么情况下使用什么方法,这就是软件测试的策略问题。另外,软件什么方法,这就是软件测试的策略问题。另外,软件测试的实施需要有效的管理,仅靠简单地组建测试队测试的实施需要有效的管理,仅靠简单地组建测试队伍或购买一两件测试工具是不够的。伍或购买一两件测试工具是不够的。因此,技术、策略和管理构成了软件测试工程的三大要素。2023年7月18日9测试与调试的关系测试与调试的关系q测试是检查软件发现问题,调试是分析软件解决问题测试是检查软件发现问题,调

8、试是分析软件解决问题qq测试贯穿于整个软件生存期,调试主要是在软件开发过测试贯穿于整个软件生存期,调试主要是在软件开发过测试贯穿于整个软件生存期,调试主要是在软件开发过测试贯穿于整个软件生存期,调试主要是在软件开发过程中程中程中程中q调试具有随意性、不明确性,而测试是明确的、可重复调试具有随意性、不明确性,而测试是明确的、可重复的的qq测试是全方位的,而调试是代码级的测试是全方位的,而调试是代码级的测试是全方位的,而调试是代码级的测试是全方位的,而调试是代码级的测试与调试不能相互替代,但相互支持,相辅相成测试与调试不能相互替代,但相互支持,相辅相成关于软件测试(6)2023年7月18日10软件

9、软件测试的基本原则测试的基本原则qGood-enough原则:原则:n权衡投入产出比,既不要不充分,也不要过分。权衡投入产出比,既不要不充分,也不要过分。qPareto法则:法则:n在分析、设计、试验、复审等阶段能够发现和避免在分析、设计、试验、复审等阶段能够发现和避免80的的bugn而系统的软件测试能够找出其余而系统的软件测试能够找出其余bug中的中的80。q应尽早地开展软件测试。应尽早地开展软件测试。n问题发现得越早,解决问题的代价就越小。问题发现得越早,解决问题的代价就越小。q严格执行测试计划,排除测试的随意性严格执行测试计划,排除测试的随意性q测试是需要维护的测试是需要维护的n妥善保存

10、测试计划、测试用例、出错统计和测试分析报告,妥善保存测试计划、测试用例、出错统计和测试分析报告,为维护提供方便为维护提供方便q完全彻底的测试是不可能的。完全彻底的测试是不可能的。关于软件测试(7)2023年7月18日1118 timesStatistical Paths=1018假设每次测试用时假设每次测试用时1ns,全年不间断地测试,全年不间断地测试:T=31.7 Years31.7 Years关于软件测试(8)T=3600 x 24 x 365101810-9 x 2023年7月18日12什么是什么是“错误错误”q我们通常用我们通常用“错误错误”这一术语来描述测试过程中发现的这一术语来描述

11、测试过程中发现的各种问题各种问题q在没有特别加以说明的情况下,这是一个泛用的、模糊在没有特别加以说明的情况下,这是一个泛用的、模糊的概念,它指的可能是:的概念,它指的可能是:ndefect:缺陷。缺陷。nbug:差错。差错。nerror:出错。出错。nfailure:失效。失效。关于软件测试(9)2023年7月18日13测试设计测试设计q测试是需要设计的。测试是需要设计的。因此因此测试是一项具有很大创造性的工测试是一项具有很大创造性的工作,其工作量一点也不比软件设计小。作,其工作量一点也不比软件设计小。q软件测试与软件开发相比,并不低人一等。软件测试与软件开发相比,并不低人一等。q软件测试的软

12、件测试的创造性主要表现在:创造性主要表现在:n测试方案选择测试方案选择n测试计划制定测试计划制定n测试用例设计测试用例设计n测试结果的分析测试结果的分析n测试过程的管理测试过程的管理n.关于软件测试(10)2023年7月18日14测试用例测试用例q所谓测试用例,是一份关于所谓测试用例,是一份关于具体测试步骤的文档具体测试步骤的文档,用于指导测,用于指导测试的实际操作。试的实际操作。q测试用例可以是纯文本的说明文档,也可以是用脚本语言或高测试用例可以是纯文本的说明文档,也可以是用脚本语言或高级语言编写的一段代码。级语言编写的一段代码。q测试用例应当包括测试用例应当包括:n测试用例名称及标识n测试

13、目的n测试条件及设置n输入数据要求n预期的输出结果n操作步骤测试用例的典型设计方法测试用例的典型设计方法q黑盒法黑盒法(Blackboxtesting)q白盒法白盒法(Whiteboxtesting)关于软件测试(11)2023年7月18日15软件测试技术黑盒测试(1)黑盒测试的概念黑盒测试的概念q若被测程序与若被测程序与特定的功能特定的功能相联系,我们可以针对功能设计相联系,我们可以针对功能设计测试,以证实各功能完全可执行,同时在功能中寻找错误测试,以证实各功能完全可执行,同时在功能中寻找错误q把测试对象看做一个黑盒子,完全不考虑程序内部的逻辑把测试对象看做一个黑盒子,完全不考虑程序内部的逻

14、辑结构和内部特性,只依据程序的需求规格说明书,检查程结构和内部特性,只依据程序的需求规格说明书,检查程序的功能是否正确。序的功能是否正确。q黑盒测试又叫做功能测试或数据驱动测试。黑盒测试又叫做功能测试或数据驱动测试。q黑盒测试类似于中医:使用望、闻、问、切黑盒测试类似于中医:使用望、闻、问、切黑盒测试的目的黑盒测试的目的q是否有错误的或遗漏了的功能是否有错误的或遗漏了的功能?q在接口上,输入能否正确地接受在接口上,输入能否正确地接受?能否输出正确的结果能否输出正确的结果?q是否有数据结构错误或外部信息访问错误是否有数据结构错误或外部信息访问错误?q是否考虑了软件的出错情况?是否考虑了软件的出错

15、情况?2023年7月18日16软件测试技术黑盒测试(2)黑盒测试的一个常用技巧黑盒测试的一个常用技巧打桩(打桩(StubStub)q用在隔离测试中,用以消除其他程序对被测程序的影响用在隔离测试中,用以消除其他程序对被测程序的影响q当被测程序调用其子模块时,可以使用模拟法,此时当被测程序调用其子模块时,可以使用模拟法,此时被被测程序并没有真正调用其他模块,而是从桩模块处得到测程序并没有真正调用其他模块,而是从桩模块处得到一个所需的值。这种技术叫做打桩。一个所需的值。这种技术叫做打桩。黑盒测试常用方法黑盒测试常用方法q等价分割等价分割q边界值分析边界值分析2023年7月18日17常用黑盒测试方法常

16、用黑盒测试方法等价分割等价分割q等价分割是一种典型的黑盒测试方法等价分割是一种典型的黑盒测试方法q等价分割等价分割将输入输出范围分割成多个等价的区域,将输入输出范围分割成多个等价的区域,然后然后从每个等价区中选取少数有代表性的数据做为从每个等价区中选取少数有代表性的数据做为测试用例测试用例。所谓等价,是指:。所谓等价,是指:n在同一分割区内程序的行为是等价的在同一分割区内程序的行为是等价的n等价区之间的依赖性可以忽略等价区之间的依赖性可以忽略q输入和输出并非只是程序参数:输入和输出并非只是程序参数:n外部数据外部数据n时间时间n执行顺序执行顺序/记录记录n状态状态软件测试技术黑盒测试(3)20

17、23年7月18日18常用黑盒测试方法常用黑盒测试方法边界值分析边界值分析q边界值分析也是一种黑盒测试方法,是对等价分割方法的边界值分析也是一种黑盒测试方法,是对等价分割方法的补充补充q经验告诉我们,大量的错误是发生在输入或输出范围的边经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是在输入范围的内部。因此界上,而不是在输入范围的内部。因此针对各种边界情况针对各种边界情况设计测试用例,可以查出更多的错误设计测试用例,可以查出更多的错误q使用边界值分析方法设计测试用例,首先应确定边界情况。使用边界值分析方法设计测试用例,首先应确定边界情况。应当选取正好等于,刚刚大于,或刚刚小于边界的值

18、做为应当选取正好等于,刚刚大于,或刚刚小于边界的值做为测试数据测试数据,而不是选取等价类中的典型值或任意值做为测,而不是选取等价类中的典型值或任意值做为测试数据试数据软件测试技术黑盒测试(4)错误聚集在边界上,缺陷隐藏在角落里!错误聚集在边界上,缺陷隐藏在角落里!2023年7月18日19软件测试技术白盒测试(1)什么是白盒测试什么是白盒测试q若被测程序与若被测程序与特定的结构特定的结构相联系,我们可以针对结构设计测试,相联系,我们可以针对结构设计测试,以确保内部的以确保内部的“所有齿轮相吻合所有齿轮相吻合”,即软件的内部过程是合理,即软件的内部过程是合理的,是遵照规定执行的的,是遵照规定执行的

19、q白盒测试又称玻璃盒测试。把测试对象看作一个透明的盒子,白盒测试又称玻璃盒测试。把测试对象看作一个透明的盒子,充分利用其逻辑结构和有关信息,设计和选择测试用例。充分利用其逻辑结构和有关信息,设计和选择测试用例。q白盒测试又称为结构测试或逻辑驱动测试白盒测试又称为结构测试或逻辑驱动测试q白盒测试类似于西医看病,通过白盒测试类似于西医看病,通过X光、光、CT扫描等手段扫描等手段白盒测试主要用于白盒测试主要用于q结构测试结构测试q覆盖测试覆盖测试q静态分析也可以算作白盒测试的一种手段静态分析也可以算作白盒测试的一种手段2023年7月18日20软件测试技术白盒测试(2)插装插装(Instrumenta

20、tion)q插装又称软件探针,由测试插装又称软件探针,由测试工具自动加入,用于反馈软工具自动加入,用于反馈软件的执行信息。件的执行信息。q插装不影被测程序的运行插装不影被测程序的运行SoftwareProbe语句覆盖语句覆盖判定覆盖判定覆盖条件覆盖条件覆盖判定条件覆盖判定条件覆盖路径覆盖路径覆盖2023年7月18日21软件测试技术白盒测试(3)典型的白盒测试典型的白盒测试基本路径测试基本路径测试qThomas McCabe首先提出n从程序的结构入手,分析、计算模块的复杂程度从程序的结构入手,分析、计算模块的复杂程度McCabe圈复杂度圈复杂度(=基本路径数)基本路径数)n确认模块的一组确认模块

21、的一组基本路径基本路径,再根据这些基本路径设计测再根据这些基本路径设计测试用例,做到基本路径覆盖。试用例,做到基本路径覆盖。n圈复杂度可以通过圈复杂度可以通过程序流图程序流图得出得出q基本路径测试是结构化测试的理论基础2023年7月18日22代码覆盖流程 A流程 B哪个函数更复杂?哪个函数更复杂?代码覆盖与复杂度不成比例代码覆盖与复杂度不成比例软件测试技术白盒测试(4)2 2个测试个测试2 2个测试个测试基本路径测试的意义基本路径测试的意义 如果代码覆盖率=100%各需多少测试?2023年7月18日23分支覆盖需要多少个测试可以做到100%覆盖?分支测试#1分支测试#2分支测试#3分支测试#4

22、软件测试技术白盒测试(5)基本路径测试的意义基本路径测试的意义2023年7月18日24基本路径覆盖(TRUE and FALSE)(FALSE and TRUE)(TRUE and TRUE)任何其他路径任何其他路径(如如 FALSE and FALSE)FALSE and FALSE)可可由基本路径组合得到由基本路径组合得到+-=(FALSE and FALSE)软件测试技术白盒测试(6)基本路径测试的意义基本路径测试的意义基本路径数等于模块的基本路径数等于模块的基本路径数等于模块的基本路径数等于模块的McCabeMcCabe圈复杂度圈复杂度圈复杂度圈复杂度 v(G)v(G)2023年7月1

23、8日25回归测试q软件更动后重新进行的测试软件更动后重新进行的测试=既要测试变更部分既要测试变更部分,也要测试受影响部分也要测试受影响部分q关键在决定哪些测试必须被重复关键在决定哪些测试必须被重复q保证测试工作的可重现性保证测试工作的可重现性q尽量利用工具,提供回归测试的自动化水平尽量利用工具,提供回归测试的自动化水平编编程程测试测试发现错误发现错误更改更改回归测试回归测试软件测试技术回归测试2023年7月18日26软件测试技术静态分析(1)静态分析又称静态测试静态分析又称静态测试静态测试是不动态执行程序代码而寻找程序代码中可能存静态测试是不动态执行程序代码而寻找程序代码中可能存在的错误或评估

24、程序代码质量的过程。在的错误或评估程序代码质量的过程。静态测试可以由人工进行,充分发挥人的逻辑思维优势。静态测试可以由人工进行,充分发挥人的逻辑思维优势。可以借助软件工具自动进行可以借助软件工具自动进行2023年7月18日27软件测试技术静态分析(2)静态分析的主要方法和内容:静态分析的主要方法和内容:q代码审查,这是软件质量保证(代码审查,这是软件质量保证(SQASQA)的重要内容)的重要内容q代码统计分析代码统计分析q软件工程度量软件工程度量nMcCabe 复杂度nHalstead 复杂度n.2023年7月18日28嵌入式软件测式的基本方法嵌入式软件测式的基本方法嵌入式软件测式的基本方法嵌

25、入式软件测式的基本方法q拿来主义拿来主义充分借用充分借用PC软件的测试方法软件的测试方法n静态/动态n白盒/黑盒n单元测试/集成测试/系统测试nq全数字模拟测试全数字模拟测试q交叉测试(交叉测试(Host/Target测试)测试)q真实环境验证真实环境验证嵌入式软件测试方法(1)2023年7月18日29嵌入式软件测试方法(2)全数字模拟测试全数字模拟测试q采用数学平台的方法,将嵌入式软件从系统中剥离出来,采用数学平台的方法,将嵌入式软件从系统中剥离出来,通过开发通过开发CPUCPU指令、常用芯片、指令、常用芯片、I/OI/O、中断、时钟等模拟、中断、时钟等模拟器在器在HOSTHOST上实现嵌入

26、式软件的测试上实现嵌入式软件的测试q主要特点主要特点n与嵌入式硬件平台脱钩n操作简单,可以借鉴常规的软件测试方法n适用于功能测试n有局限性2023年7月18日30嵌入式软件测试方法(3)全数字模拟测试的局限性全数字模拟测试的局限性q通用性差,使用不同语言编写的嵌入式软件,需要不同通用性差,使用不同语言编写的嵌入式软件,需要不同的仿真程序来执行的仿真程序来执行q实时性与准确性难以反映出嵌入式软件的真实情况,测实时性与准确性难以反映出嵌入式软件的真实情况,测试出与时序有关的故障价值不大。试出与时序有关的故障价值不大。q维护统一、精确的系统时钟,理顺时序关系相当困难,维护统一、精确的系统时钟,理顺时

27、序关系相当困难,特别是当并发的事件要求一定的同步关系时。特别是当并发的事件要求一定的同步关系时。q开发成本高。设计出一个能进行系统测试的的环境代价开发成本高。设计出一个能进行系统测试的的环境代价太大太大q只能作为嵌入式软件测试的辅助手段只能作为嵌入式软件测试的辅助手段2023年7月18日31嵌入式软件测试方法(4)交叉测试交叉测试(Host/Target测试测试)q与目标环境无关的部分在与目标环境无关的部分在PCPC机上完成机上完成n充分利用高级语言的可移植性充分利用高级语言的可移植性n借鉴常规的软件测试方法借鉴常规的软件测试方法n与模拟测试不同与模拟测试不同q与硬件密切相关的部分在与硬件密切

28、相关的部分在TargetTarget上完成上完成n需要调试环境支持需要调试环境支持n测试工具需要支持目标环境测试工具需要支持目标环境q最后在目标环境中确认最后在目标环境中确认主机平台主机平台嵌入式系统嵌入式系统调试环境调试环境2023年7月18日32嵌入式软件测试方法(5)交叉测试的特点交叉测试的特点q将大部分工作转移到将大部分工作转移到PCPC平台上,在硬件环境未建好或调平台上,在硬件环境未建好或调试工具缺乏时就可以开展试工具缺乏时就可以开展n可以充分地“拿来主义”q适用于高级语言,如适用于高级语言,如C C,C+C+q操作方便,测试成本较低。操作方便,测试成本较低。q实时性受调试环境的制约

29、实时性受调试环境的制约q目标环境中测试时要占用一定的目标资源目标环境中测试时要占用一定的目标资源q注意注意目标环境和主机环境的差异:目标编译器的目标环境和主机环境的差异:目标编译器的bugbugq目标码的验证目标码的验证2023年7月18日33如何开展交叉测试(如何开展交叉测试(Host/TargetHost/Target测试)测试)n选用带有选用带有目标支持包目标支持包(Target PackageTarget Package)的软件测试工具的软件测试工具n确定哪些模块与硬件无关,哪些与硬件相关确定哪些模块与硬件无关,哪些与硬件相关n配置相应的调试环境和目标环境配置相应的调试环境和目标环境n

30、分别进行分别进行HostHost和和TargetTarget测试测试nHostHost:源代码:源代码+测试用例测试用例-编译连接编译连接-执行执行-测试结果测试结果nTargetTarget:源代码:源代码+测试用例测试用例+目标包目标包-编译连接编译连接-下载下载-执行执行-反馈测试结果反馈测试结果交叉测试的嵌入式调试环境交叉测试的嵌入式调试环境qqSimulatorSimulatorqqEmulatorEmulatorn nBDM/JTAG EmulatorBDM/JTAG Emulator嵌入式软件测试方法(6)2023年7月18日34“拿来主义拿来主义”q静态分析很重要静态分析很重要

31、Watts S.Humphrey的说法n很多软件工程师认为动态测试比静态测试更重要很多软件工程师认为动态测试比静态测试更重要并非如并非如此此n有经验的软件工程师平均每写有经验的软件工程师平均每写10001000行代码将会出现行代码将会出现100100个错误个错误n80%80%的软件错误归咎于对于编写语言的错误使用的软件错误归咎于对于编写语言的错误使用,而这些错误而这些错误往往不是功能测试能解决的往往不是功能测试能解决的n因此因此,软件工程师应该消除错误软件工程师应该消除错误,找出根源找出根源,预防再次发生同样预防再次发生同样的问题的问题q静态分析的重要内容静态分析的重要内容代码规则检查代码规则

32、检查n实施简单、方便实施简单、方便无需执行程序,与嵌入式环境无关无需执行程序,与嵌入式环境无关n早期介入,代价小,见效快早期介入,代价小,见效快n有利于降低动态测试的难度有利于降低动态测试的难度n有利于养成良好的编程习惯有利于养成良好的编程习惯n可以执行自定的规范可以执行自定的规范嵌入式软件测试方法(7)2023年7月18日35“拿来主义拿来主义”q动态测试不可少动态测试不可少动态测试是验证软件功能最直接、最有效的手段n通过运行被测程序验证其功能、性能,检查代码的执行情况n与静态分析相辅相成n需要事先设计详细、完备的测试用例n可用白盒、黑盒等方法n工作量较大、较枯燥q动态测试的主要内容动态测试

33、的主要内容n功能、性能验证,是否符合需求定义n代码覆盖。哪些代码执行了,哪些没有执行,其比例如何嵌入式软件测试方法(8)2023年7月18日36“拿来主义拿来主义”q白盒黑盒相辅成白盒黑盒相辅成n白盒测试与黑盒测试是软件测试最常用、最常规的两种技术q白盒测试白盒测试n把测试对象看作一个透明的盒子,测试人员从其逻辑结构入手,设计和选择测试用例,对路径、控制结构、数据流等进行测试n通过插装检查程序的状态,确定是否与预期的状态一致n侧重于代码运行的过程q黑盒测试黑盒测试n把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑结构,只依据其需求定义,检查程序运行的结果n多用于功能测试和性能分析n在

34、程序的接口上进行n需要设计“驱动”和“打桩”嵌入式软件测试方法(9)2023年7月18日37“拿来主义拿来主义”q单元集成两步走单元集成两步走单元测试和集成测试是软件测试的两个阶段q单元测试单元测试n将被测软件分解为单元,逐个测试n单元测试需要从程序的内部结构和功能出发设计测试用例。单元测试需要从程序的内部结构和功能出发设计测试用例。n多个模块可以平行地独立进行单元测试多个模块可以平行地独立进行单元测试n可用白盒、黑盒等方法q集成测试集成测试n在单元测试的基础上,将所有模块按照设计要求组装起来测试n主要测试内容接口间参数传递集成的功能实现模块间的影响嵌入式软件测试方法(10)2023年7月18

35、日38先静后动,从小到大,由黑到白先静后动,从小到大,由黑到白q先静态,后动态n从代码规则检查做起n测试开展得越早,付出的代价就越小n静态分析简单、方便,成本低、见效快n静态分析为动态测试打下良好基础n大大降低了测试的成本q先单元,后集成q单元测试是集成测试的基础q单元测试得越好,集成测试的工作量就越小q先黑盒后白盒q先验证软件功能是否满足需求q后验证程序覆盖率,补充测试软件测试策略(1)2023年7月18日39质量分析,事半功倍通过改善代码的结构来分析、改进软件的质量充分应用结构化测试技术 q软件模块的圈复杂度和逻辑结构能客观地反映软件的质量软件模块的圈复杂度和逻辑结构能客观地反映软件的质量

36、n逻辑越“复杂”,就越容易出错。n结构越“良好”,代码就越可靠q代码质量分析的好方法代码质量分析的好方法结构化测试结构化测试q从结构入手分析代码的复杂程度q逻辑复杂度定量化q客观q有理论基础n复杂度与代码出错的关联性非常强n指导测试的执行n指出代码质量改进的方向嵌入式软件测试策略(2)2023年7月18日40交叉测试,因地制宜交叉测试,因地制宜嵌入式软件测试嵌入式软件测试嵌入式软件测试嵌入式软件测试Compilation/Link EditionTarget PackageHostSimulatorEmulatorSpecific TargetExecution报告报告分析分析Test Rep

37、orts被测代码被测代码测试用例测试用例软件测试策略(3)2023年7月18日41选好工具,抓好管理选好工具,抓好管理n工欲善其事,必先利其器工欲善其事,必先利其器n通常工具是必需的,但不是万能的通常工具是必需的,但不是万能的n根据测试需要和工具的特长进行选择根据测试需要和工具的特长进行选择n使用测试工具带来的好处使用测试工具带来的好处n客观,准确,无感情色彩n可长时间工作,不会疲劳n高效、权威n减轻人的工作量,但不能完全代替人n测试需要管理测试需要管理n测试要长期化、常态化、系统化n测试需要维护、更新n回归测试n过程管理n缺陷追踪嵌入式软件测试策略(4)2023年7月18日42软件测试完整解

38、决方案ReqtifyDOORSCC/CQT-Plan需求追踪管理配置管理需求追踪管理配置管理RT-BuilderVisSim建模仿真验证建模仿真验证CasePlayerQA C/C+KlocworkCantata+TessyMcCabe IQ代码质量代码质量System VerifyICEbladeRational Test suite系统验证系统验证2023年7月18日43嵌入式常用软件测试工具介绍(1)各类各类MPUMPU汇编源程序汇编源程序嵌入式嵌入式C C源程序源程序和头文件和头文件打印定制最合适的布局定制最合适的布局MSWordHTML组合各类文档、源文件的专用阅读器CasePlay

39、er2单击图标便可完成C/C/汇编选项汇编选项参数文件参数文件规格说明书规格说明书-流程图-模块构造图-模块规格说明书-模块一览表-结构体规格说明书-结构体一览表定义解析方法CasePlayerq面向嵌入式开发的程序规格说明书制作工具面向嵌入式开发的程序规格说明书制作工具qCasePlayer2CasePlayer2是一种可以解析汇编、是一种可以解析汇编、C C语言(语言(ANSI CANSI C或非或非ANSI CANSI C)的源)的源代码,并且制作流程图以及模块规格说明书的制作工具代码,并且制作流程图以及模块规格说明书的制作工具2023年7月18日44嵌入式常用软件测试工具介绍(2)PR

40、QAPRQA代码规则检查代码规则检查q英国Programming Research公司出品q代码规则检查n分别针对C,C+,FORTRAN、JAVAn支持MISRA C/C+等国际标准,及用户自定义的编程规范qPRQAPRQA能发现能发现n违背程序编写标准的问题违背程序编写标准的问题n发现程序中不安全发现程序中不安全,不明确和模糊的部分不明确和模糊的部分n找出程序中不可移植部分找出程序中不可移植部分n违背程序编译格式的问题违背程序编译格式的问题n 但不可以检测程序的实际功能的正确性但不可以检测程序的实际功能的正确性qPRQAPRQA还能还能n提供多达提供多达4444种业界广泛接受的度量种业界广

41、泛接受的度量n提供多种可视化输出,包括函数结构图、函数调用树、外部参考、提供多种可视化输出,包括函数结构图、函数调用树、外部参考、头文件关联、统计度量分析头文件关联、统计度量分析2023年7月18日45嵌入式常用软件测试工具介绍(3)QAC/C+代码规则检查代码规则检查q规则可以选择、定制、汉化规则可以选择、定制、汉化q简单易用,见效快简单易用,见效快2023年7月18日46嵌入式常用软件测试工具介绍(4)TessyTessy自动单元测试自动单元测试q公司公司:德国德国Hitex/RazorcatHitex/RazorcatqC/C+C/C+语言目标系统的单元测试(动态测试)语言目标系统的单元

42、测试(动态测试)q分析源代码识别变量和类型,提供输入和输出的接口分析源代码识别变量和类型,提供输入和输出的接口q自动生成驱动和打桩自动生成驱动和打桩q管理测试用例,支持回归测试管理测试用例,支持回归测试q标准的测试报告标准的测试报告q测试驱动是基于测试驱动是基于Master/SlaveMaster/Slave结构,允许无限多的用例和结构,允许无限多的用例和很少的目标系统资源很少的目标系统资源q各种数据类型智能分析,包括指针的支持各种数据类型智能分析,包括指针的支持q批处理功能可以在批处理功能可以在GUIGUI和命令行下完成和命令行下完成q与嵌入式开发环境的无缝集成,占用资源很小与嵌入式开发环境

43、的无缝集成,占用资源很小q支持支持MC/DCMC/DC测试测试q支持低端单片机支持低端单片机2023年7月18日47嵌入式常用软件测试工具介绍(5)TessyTessy支持的嵌入式环境支持的嵌入式环境Compiler manufacturer Architecture ARM/ADSARMCosmic68HC12,68HC08,ST7Fujitsu/FFMC16MB90 xxxGNU ARMARMGNU gccHost-PCGreenhillsV850HighTecTriCoreIAR68HC12,AVR,M16C,M32C,78k0,V850Keil 8051,C16x/ST10,XC166

44、Mentor Graphics/Microtec68kMetrowerks68HC12,68HC08,ST7NationalCR16NECV850*TaskingC16x/ST10,TriCore,M16C*,XC166Texas InstrumentsTMS 470,TMS 320Wind River Systems/Diab PowerPC 2023年7月18日48嵌入式常用软件测试工具介绍(6)McCabe IQMcCabe IQ结构化测试结构化测试/质量分析质量分析q美国McCabe&Associates公司出品qMcCabe IQ适用于软件测试的不同阶段,主要构成:nMcCabe Q

45、A(质量分析)nMcCabe Test(追踪与测试)nMcCabe Reengineering(再工程)。源代码剖析技术源代码剖析技术(C,C+,Java,Visual Basic,COBOL,Fortran,Ada,PL/1)McCabe IQ 架构架构(度量,数据,可视化,测试,应用接口)QAMcCabe QAMcCabe ChangeTestMcCabe TestMcCabe TestCompressReengineerMcCabe SliceMcCabe CompareMcCabe Data2023年7月18日49嵌入式常用软件测试工具介绍(7)Cantata+Cantata+单元测试

46、单元测试/集成测试集成测试q英国IPL公司出品nCantata+for C/C+nAdaTEST for Ada83/95q主要功能主要功能n动态测试动态测试Does the code meet its specificationDoes the code meet its specification?n静态分析静态分析Does the code meet coding and complexityDoes the code meet coding and complexitystandards?standards?n覆盖分析覆盖分析How much of the code been test

47、ed?How much of the code been tested?q主要特点主要特点n自动脚本技术,自动生成驱动程序和桩模块自动脚本技术,自动生成驱动程序和桩模块n独特的独特的WrappingWrapping技术,完全控制程序的接口,做到真正的逆向测试技术,完全控制程序的接口,做到真正的逆向测试n同时进行动态同时进行动态/静态静态/覆盖测试。用户可自定义通过覆盖测试。用户可自定义通过/失败标准失败标准n可支持中文界面可支持中文界面n支持嵌入式软件测试支持嵌入式软件测试2023年7月18日50嵌入式常用软件测试工具介绍(8)KlocworkKlocwork软件缺陷检查软件缺陷检查加拿大加拿大KlocworkKlocwork公司出品公司出品能够分析能够分析C C、C+C+、C#C#和和JavaJava代码;代码;能够发现的软件缺陷种类:能够发现的软件缺陷种类:q软件质量缺陷q安全漏洞方面的缺陷q对软件架构、编程缺陷的违反情况对软件进行可视化的架构分析、优化对软件进行可视化的架构分析、优化对软件进行各种度量分析对软件进行各种度量分析能够提供与多种主流能够提供与多种主流IDEIDE开发环境的集成开发环境的集成能够分析上千万代码行的超大型软件能够分析上千万代码行的超大型软件 51TM谢谢大家谢谢大家

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!