嵌入式软件调试技术
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
嵌入式论文
软件调试技术
院(系)名称信息工程学院
专业班级12 普专电子一班学号1201020047
学生姓名段锐
指导教师姚培娟
2015年6月10日
摘要:
本文主要对嵌入式软件测试的定义、方法、软件测试的通用要素等内容做了论述,指出了嵌入式软件测试的策略及方法,可以使系统开发的效率最大化,避免目标系统的瓶颈,确保嵌入式软件的质量。
关键词:嵌入式系统、软件测试、白盒测试、黑盒测试
目录
1 引言 (4)
2 嵌入式系统软件的特征 (4)
3 测试策略 (5)
3.2 集成测试 (5)
3.3 确认测试和系统测试 (5)
4 测试方法分析 (6)
4.1 白盒测试与黑盒测试相结合 (6)
4.2 静态测试和动态测试 (7)
5 结论 (7)
参考文献 (8)
1 引言
随着经济的发展和科技的进步,信息技术的发展使人类进入数字时代,而伴随着计算机技术发展起来的嵌入式技术得到了巨大的发展,改变了人们的日常生活。随着对嵌入式产品对各方面的要求越来越高,对嵌入式产品的性能有着决定性影响的嵌入式如软件的测试显得尤为重要。嵌入式软件测试的目的是保证软件满足需求规格说明,与非嵌入式软件的测试目的是一样的。系统失效是系统没有满足—个或多个正式需求规范中所要求的需求项,嵌入式软件有其特殊的失效判定准则。而且嵌入式软件对可靠性的要求比较高。安全性的缺陷往往会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件、嵌入式硬件进行严格的测试、确认和验证。一般来说,软件测试有7个基本阶段,即单元或模块测试、集成测试、外部功能测试、回归测试。系统测试、验收测试、安装测试。嵌入式软件测试在4个阶段上进行,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。
2 嵌入式系统软件的特征
嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有所不同:
1) 软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。
2)软件代码高质量、高可靠性。尽管半导体技术的发展使处理器速度不断提高、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。
3)系统软件(0S)的高实时性是基本要求。在多任务嵌入式系统中,对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。
4)多任务操作系统是知识集成的平台和走向工业标准化道路的基础。
5)嵌入式系统软件需要RT0S开发平台。嵌入式系统与通用计算机不同,应用
程序可以没有操作系统直接在芯片上运行;但是为了合理地调度多项任务、利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS开发平台,这样能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。
3 测试策略
在嵌入式软件测试中,采用正确的测试策略,可以提高嵌入式软件性能测试效率,避免目标系统的瓶颈。自从出现高级语言,开发环境与最终运行环境通常都是存在差异的,嵌入式系统更是如此。开发环境被认为是主机平台,软件运行环境为目标平台。相应的测试为lost target测试和或cross—testing.对于嵌入式软件测试或叫交叉测试(cross—test),在测试的各个阶段有着通用的策略:3.1 单元测试
所有单元级测试都可以在主机环境上进行,除非少数情况,特别具体指定了单元测试直接在目标环境进行.最大化在主机环境进行软件测试的比例,通过尽可能小的目标单元访问所有目标指定的界面.在主机平台上运行测试的速度比在目标平台上快得多,当在主机平台完成测试时,可以在目标环境上重复作一次简单的确认测试,确认测试结果在主机和目标机上没有被他们的不同影响.在目标环境上进行确认测试将确定一些未知的、未预料到的、未说明的主机与目标机的不同.例如,目标编译器可能有bug,但在主机编译器上没有。
3.2 集成测试
软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在目标环境上重复测试也是必须的,在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误.在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多少.有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做集成是不切实际的.一个大型软件的开发可以分几个级别的集成。低级别的软件集成在主机平台上完成有很大优势,越往后的集成越依赖于目标环境。
3.3 确认测试和系统测试
所有的确认测试和系统测试必须在目标环境下执行.当然在主机上开发和执行系统测试,然后移植到目标环境重复执行是很方便的.对目标系统的依赖性会妨碍将主机环境上的系统测试移植到目标系统上,况且只有少数开发者会卷入系统测试,所以有时放弃在主机环境上执行系统测试可能更方便.确认(验收)测试最终的实施舞台必须在目标环境中,系统的确认必须在真实系统之下测试,而不
能在主机环境下模拟.这关系到嵌入式软件的最终使用.包括恢复测试、安全测试、强度测试、性能测试,已超出了软件测试的范畴,本文暂不讨论.使用有效的cross—test测试策略可以极大的提高嵌入式软件开发测试的水平和效率,应用以上测试工具进行cross—test时的策略如下:
1)使用测试工具的插装功能(主机环境)执行静态测试分析,并且为动态覆盖测试准备好一插装好的软件代码。
2)使用源码在主机环境执行功能测试,修正软件的错误和测试脚本中的错误。
3)使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。
4)在目标环境下重复2),确认软件在目标环境中执行测试的正确性。
5)若测试需要达到极端的完整性,最好在目标系统上重复3),确定软件的覆盖率没有改变。通常在主机环境执行多数的测试,只是在最终确定测试结果和最后的系统测试才移植到目标环境,这样可以避免发生访问目标系统资源上的瓶颈,也可以减少昂贵资源如在线仿真器上的费用。另外,若目标系统的硬件由于某种原因而不能使用时,最后的确认测试可以推迟直到目标硬件可用,这为嵌入式软件的开发测试提供了弹性。设计软件的可移植性是成功进行cross—test的先决条件,它通常可以提高软件的质量,并且对软件的维护大有益处。以上所提到的测试工具,都可以通过各自的方式提供测试在主机与目标之间的移植,从而使嵌入式软件的测试得以方便的执行。使用有效的cross—test测试策略可以极大地提高嵌入式软件开发测试的水平和效率,提高嵌入式软件的质量。
4 测试方法分析
按测试方法,软件测试分为静态测试和动态测试,其中静态测试又分为代码审查和静态分析,而动态测试又分为黑盒测试和白盒测试。
4.1 白盒测试与黑盒测试相结合
在白盒测试之后应该对该系统进行黑盒测试。白盒测试和黑盒测试是动态测试的两种主要方法。白盒测试的主要测试依据是软件设计。它对软件内部工作过程的细致检查,允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。黑盒测试的主要测试依据是软件需求。它着眼于软件的外部结构,不考虑程序的逻辑结构和内部特性,仅依据软件的需求规格说明书,在软件界面上检查程序的功能是否符合要求回。