软件测试类有关论文范文检索,与软件故障模型驱动软件测试相关毕业论文开题报告

时间:2020-07-05 作者:admin
后台-系统-系统设置-扩展变量-(内容页告位1-手机版)

本论文是一篇软件测试类有关毕业论文开题报告,关于软件故障模型驱动软件测试相关研究生毕业论文开题报告范文。免费优秀的关于软件测试及可靠性及故障方面论文范文资料,适合软件测试论文写作的大学硕士及本科毕业论文开题报告范文和学术职称论文参考文献下载。

摘 要:为了解决软件测试中的盲目性和不确定性,本文从软件故障模型分析出发,阐述利用目前成熟的动态内存故障模型如何驱动软件测试,提出由软件故障模型驱动软件测试的思路.并对现在软件故障模型的分析提出进一步开展的一些想法.

关 键 词:软件故障模型驱动软件测试软件可靠性

中图分类号:TP311.52文献标识码:A文章编号:1007-9416(2013)10-0147-03

软件测试一直是提高软件产品(文档、数据、程序)质量的重要方法,在大量的工程实践过程中,不管是面向程序结构的白盒测试,还是面向程序功能的黑盒测试,测试人员都是通过测试活动尽可能多地发现软件缺陷,通过长期的测试增强对产品发布的信心,降低发布风险.但是,由于这种测试方法缺乏有效的理论指导,使得软件测试工作比较盲目,测试工作的针对性不强.即使现在的测试方法和工具在不断地完善,但是测试人员仍然无法确定产品缺陷是否都被发现,发布的产品是否不在存在缺陷,测试仍然是尽可能多地发现问题,但软件产品中还存在多少问题,仍然无法定量说清楚,软件测试仍然没有从本质上改变软件产品质量和可靠性.软件故障模型脱胎于以硬件为主的设备故障模型,随着硬件的逐步成熟和软件规模、复杂度的逐步增加,软件故障模型逐渐被重视,虽然不够完善,但为软件测试走向更科学,更自信提供了一个新的发展方向.本文拟从软件故障模型中寻找驱动软件测试的动力,寻求一种能说明软件存在哪些类型的故障,以及依据故障模型改进软件测试的方法.


怎么写软件测试本科论文的参考文献
播放:32850次 评论:7928人

1软件故障与软件测试

蔡开元先生对软件失效机理进行了如下描述:软件错误是一种人为错误,一个软件错误必定会产生一个或多个软件缺陷;当一个软件缺陷被激活时,便产生一个软件故障.同一个软件缺陷在不同条件下被激活,可能产生不同的软件故障;软件故障如果没有及时的容错处理,便不可避免的导致软件失效,同一个软件故障在不同条件下可能产生不同的软件失效.这样的复杂关系如图1所示.

图1可以很好地说明软件故障产生与测试的复杂性,软件功能层面的失效往往是由各种特定的条件和环境决定的,存在必然的复杂性和多样性.而测试虽然能从软件的不同层次开展测试,但如果不能从问题的根源处着手,要测试出全部问题是不可能的,这也导致了测试再充分也不能保证测试后的软件没有问题.同样地,我们也能看出,如果从问题产生的根源出发开展软件的测试,是可以将后续环境中无穷发散的问题解决的.这无疑是改善测试不确定性和盲目性的一个有效办法.

2用软件故障模型驱动软件测试

软件故障模型(SFMEA)从发生的软件错误入手探究和分析导致软件故障模型,是寻找软件问题产生的根源的一种有效方法,是软件测试的基础.这里以成熟的动态内存故障模型为例阐述利用故障模型来驱动软件测试的方法.

2.1动态内存故障分析

(1)动态内存是一个自由存储区域,编程人员根据需要,利用编程语言提供的动态内存管理命令,进行动态内存的分配、访问、回收等操作.各类操作后的结果与该内存区域当前所处状态紧密相关,由此产生了动态内存使用过程中的各类问题,在分析导致其错误的原因的基础上,可以建立动态内存故障模型.如图2所示.


本文url:http://www.sxsky.net/benkelunwen/060167197.html

Start表示开始状态;MemoryAllocate表示对内存进行动态内存分配,若没有足够的动态内存,则内存指针为NULL;CheckMemory检查动态内存分配的结果,以保证后续动态内存操作的正确性;AccessMemory表示对动态内存中的内容进行写、读、修改等操作;FreeMemory表示动态内存操作结束,进行动态内存的释放;End表示结束状态;

(2)动态内存的四个核心操作缺一不可,且在不同状态下操作也有约束,由此导致了诸多与动态内存使用相关的问题,如图3所示.

图3中的连线表示了引起动态管理错误出现的几种操作,箭尾表示当前的动态内存管理状态,箭头表示在当前状态下的操作请求,将引起动态内存错误产生的操作请求进行分类,可分为如下几类:1)Memoryallocate操作请求引起的错误,在图中,6,5,7表示了与动态内存分配操作请求有关的错误.2)Checkmemory操作请求引起的错误,图中连线10表示了动态内存检测操作有关的错误.导致错误发生的原因是在动态内存释放之后,又对动态内存进行检测(试图重新使用已回收的动态内存).3)Accessmemory操作请求有关的错误.在图中,3、9表示了由内存访问引起的错误.导致该错误出现的原因有两个,3表示在动态内存访问之前未进行指针P的检测,本文将这种错误定义为空指针引用,操作9表示在动态内存释放之后,重新进行动态内存的访问,从而造成动态内存的未分配使用错误.4)Freememory操作请求引起的错误,1,11表示了由动态内存回收操作引起的错误,1表示没有进行动态内存的分配而进行动态内存的释放,11表示在对指针变量P进行了动态内存的释放之后,重新进行释放工作,这两种情况是等价的,即在没有可以用的动态内存的情况下,尝试使用动态内存空间,产生了动态内存未分配使用错误.5)与end有关的错误.在图中,2,6,8表示在程序结束阶段出现的错误,导致错误产生的原因是在进行了动态内存的分配、检测或访问之后,没有进行动态内存的释放,因此,造成了内存泄露的问题.

以上就是动态内存故障模型分析的核心部分,这样的故障模型能从问题产生的根源出发阐述软件缺陷发生的机制,为软件测试提供了一个寻求有效测试方法的窗口.

2.2故障模型驱动软件测试

(1)在有了软件故障模型之后,在软件测试时即可针对这类故障的根源开展测试,做到有的放矢,达到通过测试将该类软件问题从程序中剔除的目的.动态内存故障模型从动态内存故障产生机理开展分析,切入软件代码编写的最初级过程,我们这里以C语言为例阐述利用动态内存故障模型驱动软件测试的过程.C语言中与动态内存管理相关的操作有几类,可以分别与动态内存管理的四个阶段对应:1)动态内存分配类操作:如malloc;calloc;realloc等动态内存分配类函数.2)动态内存检测类操作:内存指针检测if(p!等于NULL),动态内存初始化memset等操作.3)动态内存读写访问类操作:各种动态内存空间赋值、引用、函数间的调用等,都可能形成动态内存的读写操作.4)动态内存释放类操作:如free等内存释放函数.(2)与故障模型进行对应之后(见图4),即可开展软件测试工作,最简单的方式就是采用人

后台-系统-系统设置-扩展变量-(内容页告位2-手机版)
声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:123456789@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。
后台-系统-系统设置-扩展变量-(内容页告位3-手机版)