一、嵌入式软件测试的方法
嵌入式软件测试分为4个阶段,即模块测试、集成测试、系统测试、硬件/软件集成测试。前3个阶段适用于任何软件的测试,硬件/软件集成测试阶段是嵌入式软件所特有的,目的是验证嵌入式软件与其所控制的硬件设备能否正确地交互。
在嵌入式软件测试中,常采取折中的方式。基于目标的测试消耗较多的经费和时间,而基于宿主的测试代价较小,但毕竟是在模拟环境中进行的。目前的趋势是把更多的测试转移到宿主环境中进行,但是,目标环境的复杂性和独特性不可能完全模拟。
在两个环境中可以出现不同的软件缺陷,重要的是目标环境和宿主环境的测试内容有所选择。在宿主环境中,可以进行逻辑或界面的测试以及与硬件无关的测试。在模拟或宿主环境中的测试所消耗的时间通常相对较少,用调试工具可以更快地完成调试和测试任务。而与定时问题有关的白盒测试、中断测试、硬件接口测试只能在目标环境中进行。在软件测试周期中,基于目标的测试是在较晚的硬件/软件集成测试阶段开始的,如果不更早地在模拟环境中进行白盒测试,而是等到硬件/软件集成测试阶段再进行全部的白盒测试,将耗费更多的财力和人力。
二、嵌入式软件测试的过程
根据嵌入式系统的开发流程,为了最经济地实现系统的功能,一般采用自顶向下、层层推进的方法对嵌入式系统进行测试。图9.1为基于模块化设计的嵌入式软件测试流程。
嵌入式软件测试的总体步骤为:首先进行操作系统移植并编写系统底层驱动,然后进行系统平台测试,其中包括硬件电路测试、操作系统及底层驱动程序的测试等。如果测试未通过,需要重新进行操作系统移植和编写系统底层驱动;如果此测试通过,可以进入下一步的开发——用模块化的方法编写应用代码,随后再对软件模块进行测试。如果测试没有通过,则要对此代码模块进行修改,然后对软件模块进行测