嵌入式系统产品正不断渗透到各个行业,嵌入式软件作为包含在这些硬件产品中的特殊软件形态已成为软件体系的重要组成部分,其产业增幅不断加大。而随着嵌入式技术的不断发展,嵌入式系统越来越复杂,同时要求软件精简高效、稳定可靠,这使得嵌入式软件的质量对产品的最终质量起到了决定性的作用,其测试成为影响嵌入式应用和嵌入式产品上市的重要因素。
嵌入式软件与硬件紧密耦合、具有实时性和高可靠性要求等特点决定了其测试与一般软件测试不同,需要额外考虑硬件的影响,缺乏有效的测试和验证手段,对人员和测试工具的要求较高,具有一定的测试难度。但嵌入式软件测试总体遵循软件测试的基本原则和基本策略,同时由于嵌入式软件在开发过程、性能要求方面的特殊性,嵌入式软件测试原则和策略也有其独有的特点。
1、嵌入式软件测试的基本原则
(1)软硬件分离原则
嵌入式系统是软硬件耦合系统,把软硬件分离开来,建立嵌入式软件相对独立的运行环境是一个关键,而要把硬件分离开来,建立嵌入式软件的独立运行环境必然带着与其相关的硬件特征,这种硬件特征随着测试目的的不同而有所区别。
(2)测不准原则
对嵌入式软件的测试,测试性能和测试定位精度是一个平衡,对嵌入式软件的测试是一个对其施加干扰的过程,如果想得到定位就有可能丧失性能的准确性;反之依然。
(3)黑白盒测试结合原则
将黑盒测试的测试设计与白盒测试的过程结果结合起来可进行灰盒甚至是透明盒子测试。黑盒测试着眼于程序外部结构、不考虑内部逻辑结构、针对软件界面和软件功能进行测试;白盒测试以源代码为测试对象,除对软件进行通常的结构分析和质量度量等静态分析,主要进行动态测试。黑盒和白盒测试结合将从软件外部特征和内部结构两方面实现软件全方位的测试。
种类 | 黑盒测试 | 白盒测试 |
测试对象 | 程序的功能 | 程序的结构 |
测试要求 | 逐一验证程序的功能 | 程序的每一组成部分至少被测试一次 |
采用技术 | 等价分类法 边界值分析法 因果图法 | 逻辑覆盖法 路径测试法 |