摘要:针对嵌入式软件的特点,通过对现有一些软件缺陷分类方法进行研究分析,本文提出了一种基于故障模型的缺陷分类方法,这种方法在软件测试中能有效的发现一些极易疏忽的软件故障。
关键词:嵌入式测试;软件缺陷;故障模型;缺陷分类
一、引言
在嵌入式领域目标系统的应用系统日益复杂,开发技术日新月异,同时硬件发展的日益稳定,而软件缺陷问题却日益突出,软件的重要性逐渐引起人们的重视,越来越多的人认识到嵌入式系统的测试势在必行。但由于嵌入式系统具有实时性、内存不丰富、I/O通道少,CPU种类繁多等特点,相对非嵌入式软件开发和策略有很大不同,测试更复杂。
针对嵌入式软件难测的特点,使用有效的测试策略是唯一的出路,而面向故障的软件测试方法是比较有效的方法之一。面向故障的测试包括故障模型和基于该模型的软件测试方法。软件的故障模型一直是软件测试的瓶颈,而如何对软件故障进行分类,是软件故障模型研究的关键点之一。
二、软件缺陷分析
1、软件缺陷
软件缺陷不只是程序中存在的错误或疏忽,还包括在软件相关产品中存在的错误。在软件工程整个生命周期中,任何背离需求,无法正确完成用户所要求的功能问题,都属于缺陷范畴。
2、软件缺陷的分类
软件缺陷的分类方法很多,各种分类方法的目的不同,观察问题的角度和复杂程度也不一样。程序是软件的具体表现,所以为了便于测试,其定义的故障模型必须落实到程序上,也就是说,故障是程序中某个或某几个程序元素的错误。定义在程序中的故障必须满足下列几个条件:
1)故障必须是和实际是对应的。
2)故障必须能引起错误。
3)故障的个数是可以容忍的。
根据以上对缺陷的分析和研究以及项目研究的特点,我们尝试对缺陷进行一种新的分类,即按照故障模型来对缺陷进行分类。
三、缺陷分类模型
根据嵌入式软件应用的特点,可以分为以下几类型,分别是存储型、计算型、分支型、循环型、功能型、死锁型。
1、存储型
包括坏的存储和存储泄露错误;坏的存储指没有指向存储块的指针被释放,或用Delete释放被new[]定义的简单数组等。存储泄漏指动态分配的指针变量没有释放,造成存储泄漏。