嵌入式软件测试方法研究

Roxana ·
更新时间:2024-11-14
· 776 次阅读

  1、引言

  随着经济的发展和科技的进步,信息技术的发展使人类进入数字时代,而伴随着计算机技术发展起来的嵌入式技术得到了巨大的发展,改变了人们的日常生活。随着对嵌入式产品对各方面的要求越来越高,对嵌入式产品的性能有着决定性影响的嵌入式软件的测试显得尤为重要。

  嵌入式软件测试的目的是保证软件满足需求规格说明,与非嵌入式软件的测试目的是一样的。系统失效是系统没有满足?个或多个正式需求规范中所要求的需求项,嵌入式软件有其特殊的失效判定准则。

  而且嵌入式软件对可靠性的要求比较高。安全性的缺陷往往会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这要求对嵌入式系统,包括嵌入式软件、嵌入式硬件进行严格的测试、确认和验证。

  一般来说,软件测试有7个基本阶段,即单元或模块测试、集成测试、外部功能测试、回归测试、系统测试、验收测试、安装测试。嵌入式软件测试在4个阶段上进行,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。

  2、嵌入式软件测试环境

  嵌入式软件测试的测试环境主要有两种:

  1)目标环境测试:基于目标的测试测试全面有效,但是消耗较多的经费和时间。

  2)宿主环境测试:基于宿主的测试代价较小,但是有些对环境要求高的功能和性能宿主机无法模拟,测试无法实现。

  目前的趋势是把更多的测试转移到宿主环境中进行,把宿主环境测试无法实现的复杂和独特功能放在目标环境测试。我们的工作重点是基于宿主环境的测试,基于目标环境的测试作为补充。

  在两个环境中可以出现不同的软件缺陷,重要的是目标环境和宿主环境的测试内容有所选择。在宿主环境中,可以进行逻辑或界面的测试、以及与硬件无关的测试。在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工具可以更快地完成调试和测试任务。而与定时问题有关的白盒测试、中断测试、硬件接口测试只能在目标环境中进行。在软件测试周期中,基于目标的测试是在较晚的“硬件/软件集成测试”阶段开始的,如果不更早地在模拟环境中进行白盒测试,而是等到“硬件/软件集成测试”阶段进行全部的白盒测试,将耗费更多的财力和人力。

  3、白盒测试与黑盒测试

  白盒测试或基本代码的测试主要任务为检查程序的内部设计,或者在开发环境中进行硬件仿真,一般不必在目标硬件上进行。根据源代码的组织结构查找软件缺陷,要求测试人员对软件的结构和功能有详细深入的了解。白盒测试与代码覆盖率密切相关,可以在测试中计算出代码的覆盖率,保证测试的充分性。嵌入式软件测试通常要求有较高的代码覆盖率,要选择重要的代码进行白盒测试。

  黑盒测试在某些情况下也称为功能测试。这类测试方法根据软件的用途和外部特征查找软件缺陷,不需要了解程序的内部结构。黑盒测试不依赖代码,从实际使用的角度进行测试。黑盒测试与需求紧密相关,需求规格说明的质量会直接影响测试的结果。在进行嵌入式软件黑盒测试时,要把系统的预期用途作为重要依据,根据需求中对负载、定时、性能的要求,判断软件是否满足这些需求规范。

  4、嵌入式测试内容

  嵌入式软件测试的内容主要为:软件代码测试、编程规范标准符合性测试、代码编码规范符合性测试、开发维护文档规范符合性测试、用户文档测试。

  其中软件测试服务范围包括:系统级测试、应用测试、中间件测试、BSP及驱动程序测试、嵌入式硬件设计测试。

  其中,按照嵌入式软件有无操作系统将嵌入式系统分为两大类:无操作系统的嵌入式软件、有操作系统的嵌入式软件。

  4.1 无操作系统的嵌入式软件

  无操作系统的嵌入式软件主要包括C语言代码、汇编语言代码、Apa代码等。

  C语言模式软件测试:硬件设备及其他宏定义(编译阶段处理)、API函数测试、模块初始化(包括系统初始化)、中间功能件测试、功能模块测试、中断处理测试、任务调度测试、区域功能测试、总体功能测试。

  汇编语言模式软件测试:硬件设备及其他宏定义(编译阶段处理)、模块初始化(包括系统初始化)、中间功能件测试、功能模块测试、中断处理测试、区域功能测试、总体功能测试。



软件测试方法 测试方法 嵌入式软件 方法 嵌入 软件测试 嵌入式 测试 软件

需要 登录 后方可回复, 如果你还没有账号请 注册新账号