《2022年嵌入式软件调试技术 .pdf》由会员分享,可在线阅读,更多相关《2022年嵌入式软件调试技术 .pdf(4页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、嵌入式软件测试技术徐东(机械电子工程 2110801068)摘要 :本文主要对嵌入式软件测试的定义、方法、软件测试的通用要素等内容做了论述,指出了嵌入式软件测试的策略及方法,可以使系统开发的效率最大化,避免目标系统的瓶颈,确保嵌入式软件的质量。关键词 :嵌入式系统、软件测试、白盒测试、黑盒测试1 引 言嵌人式系统已经广泛应用于人类生活中,包括消费电子产品、 交通系统、 工业过程控制等。 嵌入式系统中软件的规模和复杂性正在迅速增加。这为嵌入式软件产品创造了巨大的商业机会, 同时也对嵌入式软件的开发技术和测试技术提出了新的挑战。 嵌入式系统必须依赖于高品质的硬件和高性能的软件,因此对于测试嵌人式系
2、统而言, 硬件测试和软件测试都是至关重要的部分。而嵌入式系统及软件对可靠性的要求比较高,嵌入式系统安全性的失效可能会导致灾难性的后果,即使是非安全性系统, 由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统及软件必须进行严格的测试、确认和验证。2 嵌入式系统软件的特征嵌入式处理器的应用软件是实现嵌入式系统功能的关键,对嵌入式处理器系统软件和应用软件的要求也和通用计算机有所不同:1) 软件要求固态化存储。为了提高执行速度和系统可靠性,嵌入式系统中的软件一般都固化在存储器芯片或单片机本身中,而不是存贮于磁盘等载体中。2)软件代码高质量、 高可靠性。尽管半导体技术的发展使处理器速度不断提高、
3、片上存储器容量不断增加,但在大多数应用中,存储空间仍然是宝贵的,还存在实时性的要求。 为此要求程序编写和编译工具的质量要高,以减少程序二进制代码长度、提高执行速度。3)系统软件 (0S) 的高实时性是基本要求。 在多任务嵌入式系统中, 对重要性各不相同的任务进行统筹兼顾的合理调度是保证每个任务及时执行的关键,单纯通过提高处理器速度是无法完成和没有效率的,这种任务调度只能由优化编写的系统软件来完成,因此系统软件的高实时性是基本要求。4)多任务操作系统是知识集成的平台和走向工业标准化道路的基础。5)嵌入式系统软件需要 RT0S 开发平台。嵌入式系统与通用计算机不同, 应用程序可以没有操作系统直接在
4、芯片上运行;但是为了合理地调度多项任务、 利用系统资源、系统函数以及和专家库函数接口,用户必须自行选配RTOS 开发平台,名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 4 页 - - - - - - - - - 这样能保证程序执行的实时性、可靠性,并减少开发时间,保障软件质量。3 测试策略在嵌入式软件测试中, 采用正确的测试策略, 可以提高嵌入式软件性能测试效率,避免目标系统的瓶颈。 自从出现高级语言, 开发环境与最终运行环境通常都是存在差异的, 嵌入式系统更是如此。
5、开发环境被认为是主机平台, 软件运行环境为目标平台。相应的测试为lost target测试和或 cross testing 对于嵌入式软件测试或叫交叉测试(cross test) , 在测试的各个阶段有着通用的策略:31 单元测试所有单元级测试都可以在主机环境上进行,除非少数情况, 特别具体指定了单元测试直接在目标环境进行 最大化在主机环境进行软件测试的比例,通过尽可能小的目标单元访问所有目标指定的界面在主机平台上运行测试的速度比在目标平台上快得多, 当在主机平台完成测试时, 可以在目标环境上重复作一次简单的确认测试, 确认测试结果在主机和目标机上没有被他们的不同影响在目标环境上进行确认测试将
6、确定一些未知的、未预料到的、未说明的主机与目标机的不同例如,目标编译器可能有bug,但在主机编译器上没有。32 集成测试软件集成也可在主机环境上完成,在主机平台上模拟目标环境运行,当然在目标环境上重复测试也是必须的, 在此级别上的确认测试将确定一些环境上的问题,比如内存定位和分配上的一些错误在主机环境上的集成测试的使用,依赖于目标系统的具体功能有多少 有些嵌入式系统与目标环境耦合的非常紧密,若在主机环境做集成是不切实际的一个大型软件的开发可以分几个级别的集成。低级别的软件集成在主机平台上完成有很大优势,越往后的集成越依赖于目标环境。33 确认测试和系统测试所有的确认测试和系统测试必须在目标环境
7、下执行当然在主机上开发和执行系统测试, 然后移植到目标环境重复执行是很方便的对目标系统的依赖性会妨碍将主机环境上的系统测试移植到目标系统上,况且只有少数开发者会卷入系统测试,所以有时放弃在主机环境上执行系统测试可能更方便确认( 验收) 测试最终的实施舞台必须在目标环境中,系统的确认必须在真实系统之下测试,而不能在主机环境下模拟 这关系到嵌入式软件的最终使用包括恢复测试、 安全测试、强度测试、性能测试,已超出了软件测试的范畴,本文暂不讨论使用有效的cross test 测试策略可以极大的提高嵌入式软件开发测试的水平和效率,应用以上测试工具进行 cross test 时的策略如下:1)使用测试工具
8、的插装功能(主机环境 )执行静态测试分析, 并且为动态覆盖测试准备好一插装好的软件代码。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 4 页 - - - - - - - - - 2)使用源码在主机环境执行功能测试,修正软件的错误和测试脚本中的错误。3)使用插装后的软件代码执行覆盖率测试,添加测试用例或修正软件的错误,保证达到所要求的覆盖率目标。4)在目标环境下重复 2),确认软件在目标环境中执行测试的正确性。5)若测试需要达到极端的完整性, 最好在目标系统上重复 3)
9、,确定软件的覆盖率没有改变。 通常在主机环境执行多数的测试,只是在最终确定测试结果和最后的系统测试才移植到目标环境,这样可以避免发生访问目标系统资源上的瓶颈,也可以减少昂贵资源如在线仿真器上的费用。另外,若目标系统的硬件由于某种原因而不能使用时, 最后的确认测试可以推迟直到目标硬件可用,这为嵌入式软件的开发测试提供了弹性。设计软件的可移植性是成功进行cross test 的先决条件, 它通常可以提高软件的质量,并且对软件的维护大有益处。 以上所提到的测试工具, 都可以通过各自的方式提供测试在主机与目标之间的移植,从而使嵌入式软件的测试得以方便的执行。使用有效的cross test 测试策略可以
10、极大地提高嵌入式软件开发测试的水平和效率,提高嵌入式软件的质量。4 测试方法分析按测试方法, 软件测试分为静态测试和动态测试,其中静态测试又分为代码审查和静态分析,而动态测试又分为黑盒测试和白盒测试。41 白盒测试与黑盒测试相结合在白盒测试之后应该对该系统进行黑盒测试。白盒测试和黑盒测试是动态测试的两种主要方法。 白盒测试的主要测试依据是软件设计。它对软件内部工作过程的细致检查, 允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。 黑盒测试的主要测试依据是软件需求。它着眼于软件的外部结构, 不考虑程序的逻辑结构和内部特性,仅依据软件的需求规格说明书,
11、在软件界面上检查程序的功能是否符合要求回。42 静态测试和动态测试1)静态测试 (Static Test)。对软件文档或程序进行扫描分析,不运行。人工或借助专用的软件测试工具评审软件文档或程序,度量程序静态复杂度, 检查软件是否符合编程标准,借以发现编写的程序的不足之处。2)动态测试 (Dynamic Test) 。是另一种基本测试技术,运行被测代码,观察代码运行时所体现的功能、逻辑、行为、结构等。5 结论在嵌入式系统设计中, 软件正越来越多地取代硬件,以降低系统的成本, 获得更大的灵活性, 软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入名师资料总结 - - -精品资料欢迎下载 - -
12、 - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 4 页 - - - - - - - - - 式系统的测试势在必行。 这就需要使用更好的测试方法和策略进行嵌入式软件的测试,从而能够对日益复杂的嵌入式软件进行快速有效的测试,提高软件测试效率,开发出用户满意的高质量的软件。参考文献1 奚雪峰嵌入式软件测试技术研究I南京:东南大学,2004:13 182 魏洪兴嵌入式系统设计师教程M 北京:清华大学出版社,2006.4. 3 秦春燕,姚竹亭. 嵌入式系统软件测试的研究J. 机械管理开发 , 2008.6. 4 顾永峰实时嵌入式软件测试脚本技术研究J 计算机工程, 2003,29(1) :118119 5 杜延,刘从越嵌入式实时系统软件测试实践J 微计算机信息,2006,22(26) :3133名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 4 页 - - - - - - - - -