APP下载

嵌入式系统的测试和可靠性评估

2010-02-09于诗华

农业科技与信息 2010年2期
关键词:嵌入式系统测试方法

于诗华

摘要:引入多种嵌入式系统测试方法;根据ISO 9000国际质量标准,提出一种切实可行的可靠性评估方案,并使它们应用于嵌入式产品测试中,测试效果良好。最后,通过测试实例说明嵌入式系统的系统测试过程和分析。

关键词:嵌入式系统;系统测试;测试方法;可靠性评估

随着嵌入式系统硬件体系结构的变化,嵌入式系统的发展趋势向嵌入式系统高端,即嵌入式软件系统转移,具体体现在嵌入式操作系统趋于多样和应用软件日渐复杂。由于嵌入式系统软硬件功能界限模糊,研究如何进行系统测试和进行质量评估来保证嵌入式系统的产品质量具有重要意义。

首先,这里明确嵌入式系统的系统测试定义,是将开发的软件系统(包括嵌入式操作系统和嵌入式应用软件)、硬件系统和其它相关因素(如人员的操作、数据的获取等)综合起来,对整个产品进行的全面测试。嵌入式系统的系统测试比PC系统软件测试要困难得多,主要体现如下:①测试软件功能依赖不需编码的硬件功能,快速定位软硬件错误困难;②强壮性测试、可知性测试很难编码实现;③交叉测试平台的测试用例、测试结果上载困难;④基于消息系统测试的复杂性,包括线程、任务、子系统之间的交互,并发、容错和对时间的要求;⑤性能测试、确定性能瓶颈困难;⑥实施测试自动化技术困难。

1测试方法

根据Goodenough和Gerhart提出的软件测试充分性准则可知,软件测试具有非复合性的特点,也就是说,即使以软件所有成分都进行了充分的测试,也并不意味着整个软件的测试已经充分。所以,即使通过了需求测试、设计测试、编码测试,并不意味着已经完全了充分的测试,还要进行软硬件全面测试,即系统测试。正确的系统测试方法能设计出良好的测试用例,而良好的测试用例是测试成功的关键。测试用例质量特性主要有以下几点。

①检验性:检测软件缺陷的有效性,是否能发现缺陷或至少可能发现缺陷。②可仿效性:可以支持测试多项内容,减少测试用例的数量。③开销:测试用例的执行、分析和调试是否经济。④修改性:每次软件修改后对测试用例的维护成本。测试方法不仅要保证测试用例具有发现缺陷的高可移植性,而且还要保证测试用例设计的经济有效。因此,在实际测试工作中,将嵌入式系统的测试方法分类如下:根据测试是否动态运行被测程序分为静态测试方法和动态测试方法;根据测试阶段分为需求测试方法、设计测试方法、编码测试(单元测试、集成测试)方法及系统测试方法;根据测试目的分为功能测试、性能测试、可靠性测试(容错性、可恢复性、成熟度测试)及信息安全保护等测试。所有这些方法的具体定义这里不一一介绍。由于不同的嵌入式系统面向的应用不同,测试方法的侧重也很不相同。

2可靠性评估

可靠性是嵌入式系统最重要的质量指标。ISO 9000国际质量标准(ISO/IEC 9126-1991)规定,软件产品的可靠性含义是:在规定的一段时间和条件下,软件能维持其性能水平的能力有关的一组属性,可用成熟性、容错性、易恢复性三个基本子特性来度量。根据我们在评估嵌入式系统中的成功经验,一般采取以下简单有效的评估方法(可以采用百分制或十分制)。

2.1成熟性度量

2.1.1错误发现率DDP(Defect Detection Percentage)。在测试中查找出来的错误越多,实际应用中出错的机会就越小,软件也就越成熟。

DDP=测试发现的错误数量/已知的全部错误数量

已知的全部错误数量是测试已发现的错误数量加上可能会发现的错误数量之和。

2.1.2测试覆盖率度量。测试的覆盖率,可以用测试项目的数量和内容进行度量。除此之外,如果测试软件的数量较大,还要考虑数据量。测试的覆盖率,可以根据测试指标进行评价。通过检查这些指标达到的程度,就可以度量出测试内容的覆盖程度。注意,对于最大值与最小值的差值超过5的情况,应该重新测试响应功能。

2.2容错性评估容错性评估分为控制容错性评估、数据容错性评估、硬件故障恢复容错性评估:

容错性=以下各条款评分之和/条款数

控制容错性度量:①对并发处理的控制能力;②错误的可修正性和处理可继续进行能力。

数据容错性度量:①非法输入数据的容错;②对相互冲突的要求和非法组合容错;③输出数据是否合理容错。

硬件故障中恢复容错性度量

故障后恢复能力容错。

2.3易恢复性度量与易恢复性紧密相关的测试是强度测试和健壮测试。强度测试又称为力度测试或极限测试,主要测试系统对空间强度和时间强度的容忍极限;健壮测试又称异常测试,是很重要的可靠性测试项目。通过易恢复性测试,一方面使系统具有异常情况的抵抗能力,另一方面使系统测试质量可控制。

易恢复性=以下各条款评分之和/条款数

①空间强度可恢复;②时间强度可恢复;③数据强度可恢复;④异常通信可恢复; ⑤数据破坏可恢复;⑥电池极限可恢复。

2.4测试可信度评估测试可信度是对测试质量的有效评估,是保证质量的必要步骤。目前虽然很难有量化的指标,但我们采取积分的方式显示可信度。例如,请4个人员(甲、乙、丙、丁)对系统5个功能打一个从0(不信任)到10(完全信任)之间的分数。

3测试实例

3.1电流测试电流测试是嵌入式系统的系统测试中首先要进行的重要测试,也是最容易被忽视的测试。主要是测试系统的工作电流、待机电流。人们一般把它当成与系统测试无关的硬件测试。但是对于嵌入式系统,软件与硬件不可能清晰地划分,硬件的性能直接影响软件的运行。实例说明了电流测试对系统运行的影响及不可替代的作用。

3.2测试现象描述进行同一厂商PDA系统测试,有几台PDA在名片子系统、行程子程序的操作过程中随机死机。我们当时的错误分析定位是:①怀疑操作系统中断处理错误;②怀疑内存泄漏,堆栈溢出;③怀疑应用程序错误。在软件开发人员为解决这个问题检查软件时,硬件开发人员提出应首先测试一下这几台机器的工作电流。结果发现,PDA的工作电流低于正常工作电流。加电容调整后随机死机问题消失。由此例还可以看出,嵌入式系统测试的软硬件测试不可分性。绝对的将硬件测试和软件测试区分开来的测试思想是不正确的。

4结语

本文的测试方法和评估方法在具体的嵌入式系统测试中,获得很好的效果。这是一项很有意义的工作,不仅要求嵌入式系统的测试人员具有很全面的软硬件知识,还需结合测试理论、统计方法,面对不同的系统进行测试方法、工具、过程评价及质量评估。随着嵌入式系统的多样性和复杂性发展,嵌入式系统的测试研究将继续深入。

参考文献

[1] 朱少民. 全程软件测试[M].北京:电子工业出版社,2007.

[2] 康一梅,嵌入式系统软件测试[M].北京:机械工业出版社,2008.

[3] 任冀,樊晓光,田涛.嵌入式系统测试环境体系结构的研究[J].计算机工程,2007,(18).

猜你喜欢

嵌入式系统测试方法
基于泊松对相关的伪随机数发生器的统计测试方法
无线电发射设备杂散发射的测试方法探讨
基于云计算的软件自动化测试方法
DLD-100C型雷达测试方法和应用
办公自动化系统的设计
基于物联网项目驱动的嵌入式系统教学改革的研究与实践
嵌入式系统课程“中断、异常与事件”教学实践及启示
面向实践创新人才培养的嵌入式系统教学研究
S700K转辙机保持力测试方法探讨
对改良的三种最小抑菌浓度测试方法的探讨