第4章基于缺陷模式的软件测试

上传人:沈*** 文档编号:243911302 上传时间:2024-10-01 格式:PPT 页数:36 大小:134.50KB
返回 下载 相关 举报
第4章基于缺陷模式的软件测试_第1页
第1页 / 共36页
第4章基于缺陷模式的软件测试_第2页
第2页 / 共36页
第4章基于缺陷模式的软件测试_第3页
第3页 / 共36页
点击查看更多>>
资源描述
,基于缺陷模式的软件测试,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,基于缺陷模式的软件测试,基于缺陷模式的软件测试,基于缺陷模式的软件测试概述,基于缺陷模式的软件测试指标分析,缺陷模式,基于缺陷模式的软件测试概述,缺陷模式必须满足下列几个条件:,该模式下的缺陷是符合实际的。,基于该模式的缺陷数目是可以容忍的。,该模式下的缺陷是可以测试的。,基于缺陷模式的软件测试概述,基于模式的软件测试技术具有如下特点:,针对性强:如果说某种模式的缺陷是经常发生的,并且在被测软件中是存在的,则面向缺陷的测试可以检测出此类缺陷。,基于缺陷模式的软件测试技术往往能发现其他测试技术难以发现的故障,如内存泄漏缺陷,空指针引用缺陷。,工具自动化程度高以及测试效率高。,缺陷定位准确:对测试所发现的缺陷能够准确定位。,易学、易使用,基于缺陷模式的软件测试概述,基于缺陷模式的软件测试指标分析,缺陷模式,基于缺陷模式的软件测试系统(,DTS,),基于缺陷模式的软件测试,基于缺陷模式的软件测试指标分析,设,P,是待测程序,将缺陷模式,M,分成类,M=M1,,,M2,,,Mn,,每类分成种,Mi=Mi1,,,Mi2,,,,,MiL,从,P,中计算出和,M,相匹配的检查点的集合,IP=IP1,IP2,IPm,可以定义如下技术指标:,漏报率,(ER),:设,P,是程序,,M,是缺陷模式,,A,是算法,,IP,(,M,,,A,,,P,)是,IP,总的数目,考虑到测试算法实现过程中的不同假设,会导致,IP,(,M,,,A,,,P,)不同。漏报率定义为:,基于缺陷模式的软件测试指标分析,准确率,(CR),:,误报率,(DR),:,基于缺陷模式的软件测试指标分析,缺陷检测率,(DDR),:,自动缺陷检测率,(ADR),:,用,IPAY,(,P,,,A,,,M,)表示不需人工确认,工具可以自动缺陷的检测个数。,基于缺陷模式的软件测试指标分析,计算复杂性:,在理论上,基于缺陷的软件测试技术可以,100%,的检测所定义的缺陷模式,但由于缺陷的检测可以模型化程序的遍历问题,对于大型程序,全部遍历虽然可以提高精度,但需要花费大量的时间。因此,该技术有一个性价比的问题,在时间遍历过程中,往往都有一定的限制,如在一个函数内、一个类内、一个文件内等。,基于缺陷模式的软件测试指标分析,基于缺陷模式的软件测试,基于缺陷模式的软件测试概述,基于缺陷模式的软件测试指标分析,缺陷模式,基于缺陷模式的软件测试系统(,DTS,),缺陷模式,缺陷模式概述,故障模式,安全漏洞模式,缺陷模式,缺陷模式概述,缺陷模式是和语言本身相关的,不同的语言有着不同的缺陷模式。我们以,C+,语言和,Java,语言为背景来描述其缺陷模式,将软件的缺陷模式分为四个层次,即故障模式、漏洞模式、缺陷模式和规则模式。,故障模式,:,此类缺陷是故障,一经产生,会导致系统出错。,存储器泄露模式,资源泄漏模式,指针使用错误模式,数组越界模式,非法计算模式,使用未初始化变量模式,死循环结构模式,死锁模式,缺陷模式概述,缺陷模式概述,安全漏洞模式:此类缺陷会给系统留下安全隐患,为攻击该系统开了绿灯。,缓冲区溢出模式,被感染的数据模式,竞争条件模式,风险操作模式,缺陷模式概述,缺陷模式:此类缺陷是不应该发生的,它未必会造成系统的错误,但可能会隐含某些故障,或者是由初级软件工程师不理解造成的。,性能缺陷模式:此类缺陷会降低系统的性能,疑问代码模式:让人费解的代码,缺陷模式概述,规则模式:软件开发总要遵循一定的规则,某个团队也有一些开发规则,违反这些规则也是不允许的。,代码规则,复杂性规则,控制流规则,命名规则,可移植性规则,资源规则,缺陷模式,缺陷模式概述,故障模式,安全漏洞模式,缺陷模式,故障模式,故障模式中给出的故障描述,是程序中可能存在的故障,这些故障一旦被激活,就会使系统发生错误。包括以下几种故障模式:,故障模式,存储泄漏的故障模式(,Memory Leak Fault MLF,),定义:内存泄漏故障(,Memory Leak Faults,):设在程序的某处申请了大小为,M,的空间,凡在程序结束时,M,或者,M,的一部分没被释放、或者多次释放,M,或,M,的一部分都是内存泄漏故障。,MLF,有三种形式:,遗漏故障:是指申请的内存没有被释放。,不匹配故障:是指申请函数和释放函数不匹配。,不相等的释放错误:是指释放的空间和申请的空间大小不一样。,故障模式,数组越界故障的故障模式(,Out of Bounds Array Access Fault OBAF,),定义:数组越界故障:设某数组定义为,Arraymin,max,,若引用,Arrayi,且,imax,都是数组越界故障。在,C+,中,若,i0,或,i,max,是数组越界故障。,(,1,)对程序中任何出现,Arrayi,的地方,都要判断,i,的范围,可能有三种情况:,若,i,是在数组定义的范围内,则是正确的;,若,i,是在数组定义的范围外,则是,OBAF,;,若,i,不确定,则,Arrayi,是否是,OBAF,则不确定;,(,2,)字符串拷贝过程中存在的数组越界故障。,故障模式,3,使用未初始化变量故障模式(,Uninitialized Variable Fault,,,UVF,),定义:使用未初始化变量故障:存在一个路径,在该路径上使用前面没有被赋初值的变量是使用未初始化变量故障。,4,空指针使用故障(,NULL Pointer Dereference Fault NPDF,),定义:空指针使用故障:引用空指针或给空指针赋值的都是空指针使用故障。,故障模式,5,非法计算类故障(,Illegal Computing Fault ILCF,),定义:非法计算类故障:是指计算机不允许的计算。,一旦非法计算类故障产生,系统将强行退出。例如:,除数为,0,故障。,对数自变量为,0,或负数故障。,根号内为负数的故障。,故障模式,6,死循环结构模式,(Dead Loop Fault DLF),定义:在控制流图中,对任何一个循环结构,包括,:,FOR,语句中的死循环结构;,WHILE,语句中的死循环结构;,DO-WHILE,语句中的死循环结构;,GOTO,语句中的死循环结构;,函数循环调用造成的死循环结构。,故障模式,7,资源泄漏故障(,RLF,),定义:资源泄漏故障:在,Java,程序中,当一个资源被打开后,如果并不是在所有的可执行路径上都对其进行了显式的释放操作,则是一个资源泄漏故障。,故障模式,8.,并发故障模式,该模式主要是针对程序员对多线程的编码机制、各种同步方法、,Java,存储器模式和,java,虚拟机的工作机制不清楚,而且由于线程启动的任意性和不确定性使用户无法确定所编写的代码具体何时执行而导致对公共区域的错误使用。这类模式主要包括不正确的同步、死锁、多线程应用中方法调用时机或方式不正确、同一变量的双重验证、相互初始化的类和临界区内调用阻塞函数等。,缺陷模式,缺陷模式概述,故障模式,安全漏洞模式,缺陷模式,安全漏洞模式,安全漏洞模式为他人攻击软件提供可能。而一旦软件被攻击成功,系统就可能发生瘫痪,所造成的危害较大,因此,此类漏洞应当尽量避免。,下面以,C+,为基础,介绍基于安全漏洞检测的缺陷模式。,安全漏洞模式,缓冲区溢出(,buffer overflow,)漏洞模式,定义:当程序要在一个缓冲区内存储比该缓冲区的大小还要多的数据时,即会产生缓冲区溢出漏洞。,缓存区溢出主要有,2,种类型:数据拷贝造成的缓冲区溢出和格式化字符串造成的缓冲区溢出。,main(,int,argc,char*,argv,),short,lastError,;,char argvBuffer16;,if(argc,=2),strcpy(argvBuffer,argv1);,安全漏洞模式,被污染的数据模式,(Tainted Data),定义:程序从外部获取数据时,这些数据可能含有具有欺骗性或者是不想要的垃圾数据,如果在使用这些数据前不进行合法性检查则将威胁到程序的安全,造成一个,tainted data,缺陷。,tainted data,可能会导致程序不按原计划执行,也有可能直接或间接地导致缓冲区溢出缺陷。,被污染的数据模式主要有两种类型:使用的数据来自外部的全局变量和使用的数据来自输入函数。,安全漏洞模式,竞争条件,(Race Condition),定义,:,如果程序中有两种不同的,I/O,调用同一文件进行操作,而且这两种调用是通过绝对路径或相对路径引用文件的,那么就易出现,Race Condition,问题。在两种操作进行的间隙,黑客可能改变文件系统,那么将会导致对两个不同的文件操作而不是同一文件进行操作。,这种典型的问题发生在用户拥有不同的权限运行的程序中,(,例如:,setuid,程序、数据库和服务器程序等,),。,安全漏洞模式,风险操作(,Risky Operation,),定义:如果不恰当地使用了某些标准库函数,可能会带来安全隐患。甚至在某些情况下,某些函数一经被使用,就可能会带来安全隐患。,例如像,rand(),和,random(),这样的随机数生成函数,它们在生成伪随机值的时候表现出来的性能是非常差的,如果用它们来生成默认的口令,这些口令将很容易被攻击者猜测到。,缺陷模式,缺陷模式概述,故障模式,安全漏洞模式,缺陷模式,缺陷模式,低性能模式,:,该模式导致软件运行效率低下,因此建议采用更高效的代码来完成同样的功能。这类模式主要包括使用低效函数,/,代码、使用多余函数、,Java,中显式垃圾回收、冗余代码、头文件中定义的静态变量、不必要的文件包含、字符串低效操作和有更简单的运算可以替代等。,思考:,1,、研究软件缺陷模式有何意义?与黑盒测试和白盒测试相比,基于缺陷模式的软件测试方法有什么好处?,2,、,MLF,有哪三种形式?,3,、什么是,OBAF,?一般何种情况下产生?,4,、在,C+,中,使用未初始化的静态变量和全局变量是否会产生,UVF,类故障?,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!