摘要:针对嵌入式软件的特点,通过对现有一些软件缺陷分类方法进行研究分析,本文提出了一种基于故障模型的缺陷分类方法,这种方法在软件测试中能有效的发现一些极易疏忽的软件故障。

  关键词:嵌入式测试;软件缺陷;故障模型;缺陷分类

  一、引言

  在嵌入式领域目标系统的应用系统日益复杂,开发技术日新月异,同时硬件发展的日益稳定,而软件缺陷问题却日益突出,软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入式系统的测试势在必行。但由于嵌入式系统具有实时性、内存不丰富、I/O通道少,CPU种类繁多等特点,相对非嵌入式软件开发和策略有很大不同,测试更复杂。

  针对嵌入式软件难测的特点,使用有效的测试策略是的出路,而面向故障的软件测试方法是比较有效的方法之一。面向故障的测试包括故障模型和基于该模型的软件测试方法。软件的故障模型一直是软件测试的瓶颈,而如何对软件故障进行分类,是软件故障模型研究的关键点之一。

  二、软件缺陷分析

  1、软件缺陷

  软件缺陷不只是程序中存在的错误或疏忽,还包括在软件相关产品中存在的错误。在软件工程整个生命周期中,任何背离需求,无法正确完成用户所要求的功能问题,都属于缺陷范畴。

  2、软件缺陷的分类

  软件缺陷的分类方法很多,各种分类方法的目的不同,观察问题的角度和复杂程度也不一样。程序是软件的具体表现,所以为了便于测试,其定义的故障模型必须落实到程序上,也是说,故障是程序中某个或某几个程序元素的错误。定义在程序中的故障必须满足下列几个条件:

  1)故障必须是和实际是对应的。

  2)故障必须能引起错误。

  3)故障的个数是可以容忍的。

  根据以上对缺陷的分析和研究以及项目研究的特点,我们尝试对缺陷进行一种新的分类,即按照故障模型来对缺陷进行分类。

  三、缺陷分类模型

  根据嵌入式软件应用的特点,可以分为以下几类型,分别是存储型、计算型、分支型、循环型、功能型、死锁型。

  1、存储型

  包括坏的存储和存储泄露错误;坏的存储指没有指向存储块的指针被释放,或用Delete释放被new[]定义的简单数组等。存储泄漏指动态分配的指针变量没有释放,造成存储泄漏。