版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第9章 嵌入式测试(csh) 共三十四页本章(bn zhn)内容9.1 嵌入式软件测试的方法 9.2 嵌入式软件测试的过程 9.3 嵌入式软件测试的特点(tdin) 9.4 嵌入式软件测试的工具 9.5 嵌入式软件测试策略 9.6 嵌入式软件测试实例 共三十四页9.1 嵌入式软件测试(csh)的方法嵌入式软件测试分为4个阶段,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。在嵌入式软件测试中,常采取折中(zhzhng)的方式。基于目标机的测试消耗较多的经费和时
2、间,而基于宿主机的测试代价较小,但毕竟是在模拟环境中进行的。目前的趋势是把更多的测试转移到宿主环境中进行,但是,目标环境的复杂性和独特性不可能完全模拟。共三十四页在目标环境和宿主环境中的测试可以出现不同的软件缺陷。在宿主环境中,可以进行逻辑或界面的测试以及与硬件无关的测试。这一部分的测试所消耗的时间通常相对较少,用调试(dio sh)工具可以更快地完成调试(dio sh)和测试任务。而与定时问题有关的白盒测试、中断测试、硬件接口测试只能在目标环境中进行。在软件测试周期中,基于目标的测试是在较晚的硬件/软件集成测试阶段开始的。共三十四页9.2 嵌入式软件测试(csh)的过程根据嵌入式系统的开发流
3、程,为了最经济地实现系统的功能,一般采用自顶向下、层层推进的方法对嵌入式系统进行测试。嵌入式软件测试的总体步骤为:首先进行操作系统移植并编写系统底层(d cn)驱动,然后进行系统平台测试,其中包括硬件电路测试、操作系统及底层(d cn)驱动程序的测试等。如果此测试通过,可以进入下一步的开发用模块化的方法编写应用代码,随后再对软件模块进行测试。如果所有的模块都通过测试,需要进行集成测试。如果集成测试通过,则需要进行系统测试。如果系统测试通过,就可以退出测试。在第一件产品生产出来之后,需要对产品进行测试,如果测试通过,则表示嵌入式产品的所有测试步骤已经完成。共三十四页YN开始NNNYYYYY根据需
4、求修改程序代码只修改应用代码测试通过?系统测试测试通过?集成测试编写接口函数,装载到模块数据之间测试通过?软件模块测试用模块化的方法编写应用代码测试通过?系统平台测试移植操作系统,编写系统底层驱动产品测试模块接口函数确定错误模块修改错误模块代码关联矩阵确定需测试模块修改错误模块代码N测试通过?结束共三十四页9.3 嵌入式软件测试(csh)的特点嵌入式软件测试作为一种特殊的软件测试,它的目的和原则同普通的软件测试是一样的,都是为了验证或达到可靠性要求而对软件所进行的测试。嵌入式软件测试除了要遵循普通软件测试的原则之外,还需要遵循以下几个(j )原则:(1) 嵌入式软件测试对软件在硬件平台的测试是
5、必不可少的。(2) 嵌入式软件测试需要在特定的环境下对软件进行测试。(3) 嵌入式软件需进行必要的可靠性负载测试。 (4) 除了要对嵌入式软件系统的功能进行测试之外,还需要对实时性进行测试。在判断系统是否失效方面,除了看它的输出结果是否正确,还应考虑其是否在规定的时间里输出了结果。(5) 在对嵌入式软件进行测试的时候,需要在特定的硬件平台上进行性能测试、内存测试、GUI测试、覆盖分析测试。共三十四页9.4 嵌入式软件测试(csh)的工具1内存分析工具在嵌入式系统中,内存容量通常是有限的。内存分析工具用来处理在动态内存分配中存在的缺陷。动态内存分配错误,通常是难以复原的,其导致的失效难以追踪,使
6、用内存分析工具可以避免这类缺陷进入功能测试阶段。目前有两类内存分析工具:软件工具和硬件工具。基于软件的内存分析工具可能会对代码的性能造成很大影响,从而严重影响实时(sh sh)操作;基于硬件的内存分析工具价格昂贵,而且只能在工具所限定的运行环境中使用。共三十四页2性能分析工具性能分析工具会提供有关的数据,说明执行时间是如何消耗,什么时候消耗的,以及每个例程所用的时间。根据这些数据,确定哪些例程消耗部分执行时间,从而可以决定如何优化软件,以获得更好的时间性能。对于大多数应用(yngyng)来说,大部分执行时间用在相对少量的代码上,费时的代码估计只占所有软件总量的5%20%。性能分析工具不仅能指出
7、哪些例程花费了时间,而且与调试工具联合使用可以引导开发人员查看需要优化的特定函数,性能分析工具还可以引导开发人员发现在系统调用中存在的错误以及程序结构上的缺陷。共三十四页3GUI测试工具GUI测试工具可以作为脚本工具在开发环境中运行测试用例,其功能包括(boku)对操作的记录和回放、抓取屏幕显示供以后分析和比较、设置和管理测试过程。对没有GUI的嵌入式设备,可以对其进行插桩来运行GUI测试脚本。共三十四页4覆盖分析工具在进行白盒测试时,可以使用(shyng)代码覆盖分析工具追踪被执行过的代码。分析过程可以通过插桩的方式来完成,插桩可以是在测试环境中嵌入硬件,也可以是在可执行代码中加入软件,也可
8、以是二者相结合。测试人员对结果数据加以总结,确定哪些代码被执行过,哪些代码被遗漏了。覆盖分析工具一般会提供有关功能覆盖、分支覆盖、条件覆盖的信息。对于嵌入式软件来说,代码覆盖分析工具可能侵入代码的执行,影响实时代码的运行过程。基于硬件的代码覆盖分析工具的侵入程度要小一些,但是价格一般比较昂贵,而且限制被测代码的数量。共三十四页补充(bchng):插桩插桩技术最早是由J.C. Huang 教授提出的, 它是在保证被测程序原有逻辑完整性的基础上在程序中插入一些探针(又称为“探测仪”),通过探针的执行并抛出程序运行的特征数据,通过对这些数据的分析,可以获得程序的控制流和数据流信息,进而得到逻辑覆盖等
9、动态信息,从而实现(shxin)测试目的的方法。共三十四页9.5 嵌入式软件测试(csh)策略在测试的各个阶段,采用(ciyng)host-target或是cross-test,应遵循以下策略。1单元测试所有单元测试都可以在主机环境上进行,除非少数情况会特别指定了单元测试直接在目标环境进行。测试时,尽可能在主机环境中进行软件测试,通过尽可能小的目标单元访问所有目标指定的界面。在主机平台完成测试后,可以在目标环境中重复作一次简单的确认测试,在目标环境中进行确认测试将确定一些未知的、未预料到的、未说明的主机与目标机的不同之处。共三十四页嵌入式软件插桩测试(csh)插桩测试(csh)流程已编译通过的
10、代码NY插桩处理宿主机上编译通过?下载到目标机上执行数据返回到宿主机上宿主机处理数据共三十四页嵌入式软件插桩测试(csh)插桩测试(csh)原理循环源代码插桩器插桩插桩后的源码编译后的源码编译器编译编译后的源码触发桩程序生成数据数据处理程序或软件宿主机目 标 机串口线、JTAG网线、串口线、USB数据线共三十四页2集成测试软件集成也可在主机环境上完成,并在主机平台上模拟目标环境运行。在目标环境上重复测试也是必需的,在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误。有些嵌入式系统与目标环境耦合得非常紧密,则在主机环境做集成是不切实际的。 对于大型软件的开发则可以(ky)
11、分为几个级别的集成。低级别的软件集成在主机平台上完成有很大优势,越往后的集成越依赖于目标环境。共三十四页3系统测试和确认测试所有的系统测试和确认测试都必须在目标环境下执行。当然在主机上开发和执行系统测试,然后移植到目标环境重复执行是很方便(fngbin)的。确认测试最终必须在目标环境中进行,系统的确认必须在真实系统之下测试,而不能在主机环境下模拟。这关系到嵌入式软件的最终使用。共三十四页应用测试工具进行Cross-test时的策略:A) 使用测试工具的插桩功能(gngnng)(主机环境)执行静态测试分析,并且为动态覆盖测试准备好一插桩好的软件代码。B) 使用源码在主机环境执行功能测试,修正软件
12、的错误和测试脚本中的错误。C) 使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。D) 在目标环境下重复(B),确认软件在目标环境中执行测试的正确性。E) 若测试需要达到极端的完整性,最好在目标系统上重复(C),确定软件的覆盖率没有改变。共三十四页19嵌入式软件测式的基本方法拿来主义(n li zh y)充分借用PC软件的测试方法静态/动态白盒/黑盒单元测试/集成测试/系统测试全数字模拟测试交叉测试(Host/Target测试)真实环境验证补充(bchng):嵌入式软件测试方法(1)共三十四页20嵌入式软件测试方法(2)全数字模拟测试采用数学平台的方
13、法,将嵌入式软件从系统中剥离出来,通过开发CPU指令、常用芯片、I/O、中断、时钟等模拟器在HOST上实现嵌入式软件的测试主要特点(tdin)与嵌入式硬件平台脱钩操作简单,可以借鉴常规的软件测试方法适用于功能测试有局限性共三十四页21嵌入式软件测试方法(3)全数字模拟测试的局限性通用性差,使用(shyng)不同语言编写的嵌入式软件,需要不同的仿真程序来执行实时性与准确性难以反映出嵌入式软件的真实情况,测试出与时序有关的故障价值不大。维护统一、精确的系统时钟,理顺时序关系相当困难,特别是当并发的事件要求一定的同步关系时。开发成本高。设计出一个能进行系统测试的的环境代价太大只能作为嵌入式软件测试的
14、辅助手段共三十四页22嵌入式软件测试方法(4)交叉测试(Host/Target测试)与目标环境无关(wgun)的部分在PC机上完成充分利用高级语言的可移植性借鉴常规的软件测试方法与模拟测试不同与硬件密切相关的部分在Target上完成需要调试环境支持测试工具需要支持目标环境最后在目标环境中确认主机平台嵌入式系统调试环境共三十四页2022年7月19日23嵌入式软件测试方法(5)交叉测试的特点将大部分工作转移到PC平台上,在硬件(yn jin)环境未建好或调试工具缺乏时就可以开展可以充分地“拿来主义”适用于高级语言,如C,C+操作方便,测试成本较低。实时性受调试环境的制约目标环境中测试时要占用一定的
15、目标资源注意目标环境和主机环境的差异:目标编译器的bug目标码的验证共三十四页24如何开展交叉测试(Host/Target测试)选用带有目标支持包(Target Package)的软件测试工具确定哪些模块与硬件无关,哪些与硬件相关配置相应的调试环境和目标环境分别进行(jnxng)Host和Target测试Host:源代码+测试用例-编译连接-执行-测试结果Target:源代码+测试用例+目标包-编译连接-下载-执行-反馈测试结果交叉测试的嵌入式调试环境SimulatorEmulatorBDM/JTAG Emulator嵌入式软件测试方法(6)共三十四页25“拿来主义”静态分析很重要Watts
16、S. Humphrey的说法很多软件工程师认为动态测试比静态测试更重要并非如此有经验的软件工程师平均每写1000行代码将会出现100个错误80%的软件错误归咎于对于编写语言的错误使用,而这些错误往往不是功能测试能解决的因此,软件工程师应该消除错误,找出根源,预防再次发生同样的问题静态分析的重要内容(nirng)代码规则检查实施简单、方便无需执行程序,与嵌入式环境无关早期介入,代价小,见效快有利于降低动态测试的难度有利于养成良好的编程习惯可以执行自定的规范嵌入式软件测试方法(7)共三十四页26“拿来主义”动态测试不可少动态测试是验证软件功能最直接、最有效的手段通过运行被测程序验证其功能、性能,检
17、查代码的执行情况与静态分析相辅相成需要事先(shxin)设计详细、完备的测试用例可用白盒、黑盒等方法工作量较大、较枯燥动态测试的主要内容功能、性能验证,是否符合需求定义代码覆盖。哪些代码执行了,哪些没有执行,其比例如何嵌入式软件测试方法(8)共三十四页27“拿来主义”白盒黑盒相辅(xin f)成白盒测试与黑盒测试是软件测试最常用、最常规的两种技术白盒测试把测试对象看作一个透明的盒子,测试人员从其逻辑结构入手,设计和选择测试用例,对路径、控制结构、数据流等进行测试通过插装检查程序的状态,确定是否与预期的状态一致侧重于代码运行的过程黑盒测试把测试对象看做一个黑盒子,测试人员完全不考虑程序内部的逻辑
18、结构,只依据其需求定义,检查程序运行的结果多用于功能测试和性能分析在程序的接口上进行需要设计“驱动”和“打桩”嵌入式软件测试方法(9)共三十四页2022年7月19日28“拿来主义”单元集成两步走单元测试和集成测试是软件测试的两个阶段单元测试将被测软件分解为单元,逐个测试单元测试需要从程序的内部结构和功能出发设计测试用例。多个模块可以平行地独立进行单元测试可用白盒、黑盒等方法集成测试在单元测试的基础上,将所有模块按照(nzho)设计要求组装起来测试主要测试内容接口间参数传递集成的功能实现模块间的影响嵌入式软件测试方法(10)共三十四页9.6 嵌入式软件测试(csh)实例1) 软件指令仿真软件指令
19、仿真的主要工作是对相关的I/O操作进行替换。在80X86系列CPU指令集中,I/O指令有两个IN和OUT,对这两个指令,我们都定义相应的宏来代替(dit)其操作,同时在内存中组织变量来代替(dit)I/O操作中的寄存器变量。在软件中,I/O指令主要有以下几类:IN REGISTER, BYTEIN REGISTER, WORDOUT BYTE, REGISTEROUT REGISTER, WORD共三十四页构造如下的宏指令仿真上述(shngsh)指令的功能:共三十四页outw macro reg, port mov di, counto mov word ptr outbufdi, ax Inc di mov counto, di endm共三十四页2)
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 提高班级学习积极性的方案计划
- 企业人事部的数字化转型之路计划
- 音乐创作委托合同三篇
- 市场推广的创新方式计划
- 安全教育小班安全意识培养计划
- 邢台学院《学前儿童文学》2022-2023学年第一学期期末试卷
- 信阳师范大学《素描全身像写生》2022-2023学年第一学期期末试卷
- 关注学生学习动力的激发策略计划
- 营销策划推广服务委托合同三篇
- 西南医科大学《流行病学》2021-2022学年第一学期期末试卷
- 2025届浙江省杭州市高三一模语文试题
- 人工智能概论课件完整版
- 中学教学课件:下第课《认识人工智能》课件
- 企业清算解散方案
- 10以内连加连减练习题(直接打印版)
- 2024秋期国家开放大学《机械设计基础》一平台在线形考(形考任务1至4)试题及答案
- 北师版八年级数学上册 第四章 一次函数(压轴专练)(十大题型)
- 2024年安徽省合肥仲裁委员会招聘历年高频难、易错点500题模拟试题附带答案详解
- 2024秋期国家开放大学《高层建筑施工》一平台在线形考(形考作业1至3)试题及答案
- 新视野大学英语(第四版)视听说教程1(思政智慧版)课件 B1U5 Get from A to B
- 2024中国铝业集团限公司应届高校毕业生招聘高频难、易错点500题模拟试题附带答案详解
评论
0/150
提交评论