如何做好嵌入式软件开发测试? 嵌入式软件测试的目的是保证软件满足需求规格说明,与非嵌入式软件的测试目的是一样的。系统失效是系统没有满足—个或多个正式需求规范中所要求的需求项,嵌入式软件有其特殊的失效判定准则。 而且嵌入式软件对可靠性的要求比较高。安全性的缺陷往往会导致灾难性的后果,即使是非安全性系统,由于大批量生产也会导致严重的经济损失。这就要求对嵌入式系统,包括嵌入式软件、嵌入式硬件进行严格的测试、确认和验证。 一般来说,软件测试有7 个基本阶段,即单元或模块测试、集成测试、外部功能测试、回归测试、系统测试、验收测试、安装测试。嵌入式软件测试在4 个阶段上进行,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3 个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。 2、嵌入式软件测试环境 嵌入式软件测试的测试环境主要有两种: 1)目标环境测试:基于目标的测试测试全面有效,但是消耗较多的经费和时间。 2)宿主环境测试:基于宿主的测试代价较小,但是有些对环境要求高的功能和性能宿主机无法模拟,测试无法实现。 目前的趋势是把更多的测试转移到宿主环境中进行,把宿主环境测试无法实现的复杂和独特功能放在目标环境测试。我们的工作重点是基于宿主环境的测试,基于目标环境的测试作为补充。 在两个环境中可以出现不同的软件缺陷,重要的是目标环境和宿主环境的测试内容有所选择。在宿主环境中,可以进行逻辑或界面的测试、以及与硬件无关的测试。在模拟或宿主环境中的测试消耗时间通常相对较少,用调试工具可以更快地完成调试和测试任务。而与定时问题有关的白盒测试、中断测试、硬件接口测试只能在目标环境中进行。在软件测试周期中,基于目标的测试是在较晚的“硬件/软件集成测试”阶段开始的,如果不更早地在模拟环境中进行白盒测试,而是等到“硬件/软件集成测试”阶段进行全部的白盒测试,将耗费更多的财力和人力。 3、白盒测试与黑盒测试 白盒测试或基本代码的测试主要任务为检查程序的内部设计,或者在开发环境中进行硬件仿真,一般不必在目标硬件上进行。根据源 代码的组织结构查找软件缺陷,要求测试人员对软件的结构和功能有详细深入的了解。白盒测试与代码覆盖率密切相关,可以在测试中计算出代码的覆盖率,保证测试的充分性。嵌入式软件测试通常要求有较高的代码覆盖率,要选...