




已阅读5页,还剩35页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于缺陷模式的软件测试,基于缺陷模式的软件测试,基于缺陷模式的软件测试概述基于缺陷模式的软件测试指标分析缺陷模式基于缺陷模式的软件测试系统(DTS),基于缺陷模式的软件测试概述,缺陷模式必须满足下列几个条件:该模式下的缺陷是符合实际的。基于该模式的缺陷数目是可以容忍的。该模式下的缺陷是可以测试的。,基于缺陷模式的软件测试概述,基于模式的软件测试技术具有如下特点:针对性强:如果说某种模式的缺陷是经常发生的,并且在被测软件中是存在的,则面向缺陷的测试可以检测出此类缺陷。基于缺陷模式的软件测试技术往往能发现其他测试技术难以发现的故障,如内存泄漏缺陷,空指针引用缺陷。工具自动化程度高以及测试效率高。缺陷定位准确:对测试所发现的缺陷能够准确定位。易学、易使用:对一般的IT专业专科以上的毕业生,该测试方法一般经过数天的培训即可掌握其使用方法。,基于缺陷模式的软件测试概述基于缺陷模式的软件测试指标分析缺陷模式基于缺陷模式的软件测试系统(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语言为背景来描述其缺陷模式,将软件的缺陷模式分为四个层次,即故障模式、漏洞模式、缺陷模式和规则模式。,故障模式:此类缺陷是故障,一经产生,会导致系统出错。存储器泄露模式资源泄漏模式指针使用错误模式数组越界模式非法计算模式使用未初始化变量模式死循环结构模式死锁模式,缺陷模式概述,缺陷模式概述,安全漏洞模式:此类缺陷会给系统留下安全隐患,为攻击该系统开了绿灯。缓冲区溢出模式被感染的数据模式竞争条件模式风险操作模式,缺陷模式概述,缺陷模式:此类缺陷是不应该发生的,它未必会造成系统的错误,但可能会隐含某些故障,或者是由初级软件工程师不理解造成的。性能缺陷模式:此类缺陷会降低系统的性能疑问代码模式:让人费解的代码,缺陷模式概述,规则模式:软件开发总要遵循一定的规则,某个团队也有一些开发规则,违反这些规则也是不允许的。代码规则复杂性规则控制流规则命名规则可移植性规则资源规则,缺陷模式,缺陷模式概述故障模式安全漏洞模式缺陷模式,故障模式,故障模式中给出的故障描述,是程序中可能存在的故障,这些故障一旦被激活,就会使系统发生错误。包括以下几种故障模式:,故障模式,存储泄漏的故障模式(MemoryLeakFaultMLF)定义:内存泄漏故障(MemoryLeakFaults):设在程序的某处申请了大小为M的空间,凡在程序结束时M或者M的一部分没被释放、或者多次释放M或M的一部分都是内存泄漏故障。MLF有三种形式:遗漏故障:是指申请的内存没有被释放。不匹配故障:是指申请函数和释放函数不匹配。不相等的释放错误:是指释放的空间和申请的空间大小不一样。,故障模式,数组越界故障的故障模式(OutofBoundsArrayAccessFaultOBAF)定义:数组越界故障:设某数组定义为Arrayminmax,若引用Arrayi且imax都是数组越界故障。在C+中,若i0或imax是数组越界故障。(1)对程序中任何出现Arrayi的地方,都要判断i的范围,可能有三种情况:若i是在数组定义的范围内,则是正确的;若i是在数组定义的范围外,则是OBAF;,故障模式,(2)字符串拷贝过程中存在的数组越界故障。(3)在结构类型中,由于结构体中的成员变量是连续存放的,在数组的拷贝过程中,多余的数据会自动的存放在后面所定义的成员变量中,这种情况数组并不产生越界错误。,故障模式,3使用未初始化变量故障模式(UninitializedVariableFault,UVF)定义:使用未初始化变量故障:存在一个路径,在该路径上使用前面没有被赋初值的变量是使用未初始化变量故障。4空指针使用故障(NULLPointerDereferenceFaultNPDF)定义:空指针使用故障:引用空指针或给空指针赋值的都是空指针使用故障。,故障模式,5非法计算类故障(IllegalComputingFaultILCF)定义:非法计算类故障:是指计算机不允许的计算。一旦非法计算类故障产生,系统将强行退出。例如:除数为0故障。对数自变量为0或负数故障。根号内为负数的故障。,故障模式,6死循环结构模式(DeadLoopFaultDLF)定义:在控制流图中,对任何一个循环结构,包括:FOR语句中的死循环结构;WHILE语句中的死循环结构;DO-WHILE语句中的死循环结构;GOTO语句中的死循环结构;函数循环调用造成的死循环结构。,故障模式,7资源泄漏故障(RLF)定义:资源泄漏故障:在Java程序中,当一个资源被打开后,如果并不是在所有的可执行路径上都对其进行了显式的释放操作,则是一个资源泄漏故障。,故障模式,8.并发故障模式该模式主要是针对程序员对多线程的编码机制、各种同步方法、Java存储器模式和java虚拟机的工作机制不清楚,而且由于线程启动的任意性和不确定性使用户无法确定所编写的代码具体何时执行而导致对公共区域的错误使用。这类模式主要包括不正确的同步、死锁、多线程应用中方法调用时机或方式不正确、同一变量的双重验证、相互初始化的类和临界区内调用阻塞函数等。,缺陷模式,缺陷模式概述故障模式安全漏洞模式缺陷模式,安全漏洞模式,安全漏洞模式为他人攻击软件提供可能。而一旦软件被攻击成功,系统就可能发生瘫痪,所造成的危害较大,因此,此类漏洞应当尽量避免。下面以C+为基础,介绍基于安全漏洞检测的缺陷模式。,安全漏洞模式,缓冲区溢出(bufferoverflow)漏洞模式定义:当程序要在一个缓冲区内存储比该缓冲区的大小还要多的数据时,即会产生缓冲区溢出漏洞。缓存区溢出主要有2种类型:数据拷贝造成的缓冲区溢出和格式化字符串造成的缓冲区溢出。,安全漏洞模式,被污染的数据模式(TaintedData)定义:程序从外部获取数据时,这些数据可能含有具有欺骗性或者是不想要的垃圾数据,如果在使用这些数据前不进行合法性检查则将威胁到程序的安全,造成一个tainteddata缺陷。tainteddata可能会导致程序不按原计划执行,也有可能直接或间接地导致缓冲区溢出缺陷。被污染的数据模式主要有两种类型:使用的数据来自外部的全局变量和使用的数据来自输入函数。,安全漏洞模式,竞争条件(RaceCondition)定义:如果程序中有两种不同的I/O调用同一文件进行操作,而且这两种调用是通过绝对路径或相对路径引用文件的,那么就易出现RaceCondition问题。在两种操作进行的间隙,黑客可能改变文件系统,那么将会导致对两个不同的文件操作而不是同一文件进行操作。这种典型的问题发生在用户拥有不同的权限运行的程序中(例如:setuid程序、数据库和服务器程序等)。,安全漏洞模式,风险操作(RiskyOperation)定义:如果不恰当地使用了某些标准库函数,可能会带来安全隐患。甚至在某些情况下,某些函数一经被使用,就可能会带来安全隐患。例如像rand()和random()这样的随机数生成函数,它们在生成伪随机值的时候表现出来的性能是非常差的,如果用它们来生成默认的口令,这些口令将很容易被攻击者猜测到。,缺陷模式,缺陷模式概述故障模式安全漏洞模式缺陷模式,缺陷模式,低性能模式:该模式导致软件运行效率低下,因此建议采用更高效的代码来完成同样的功能。这类模式主要包括使用低效函数/代码、使用多余函数、Java中显式垃圾回收、冗余代码、头文件中定义的静态变量、不必要的文件包含、字符串低效操作和有更简单的运算可以替代等。,基于缺陷模式的软件测试,基于缺陷模式的软件测试概述基于缺陷模式的软件测试指标分析缺陷模式基于缺陷模式的软件测试系统(DTS),基于缺陷模式的软件测试系统(DTS),下面以作者自主开发的基于缺陷模式的测试系统DTS为例,介绍基于缺陷模式的软件测试的基本原理。DTS是作者在国家863“软件的故障模式与面向故障的软件测试系统”资助下开发的测试系统,能对上面介绍的缺陷模式进行有效测试
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年宠物美容AI技术面试题库
- 2025年安全战略填空题库
- 2025年导盲犬训练高级面试实战题库
- 2025年广播电视台后期制作面试常见问题解答
- 2025年语音合成师职业发展面试题及答案
- 2025年高效学习方法与技巧高级笔试预测题
- 2025年地震救援面试重点题解析及答案
- 2025年建筑装饰设计师专业技术考核试卷及答案解析
- 课件中控件的使用
- 2025年环保工程技术师资格考试试题及答案解析
- 2025北京平谷区初三二模数学试题及答案
- 2025年中级会计职称考试经济法冲刺试题及答案
- 乐器供销合同范本
- 2025年辽宁省中考生物学试卷真题附答案
- 2025-2030牛肉分销渠道冲突与供应链协同优化报告
- 《法律职业伦理(第3版)》全套教学课件
- 2025年青岛市崂山旅游集团招聘考试笔试试题
- 2025年秋季新学期全体中层干部会议校长讲话:在挑战中谋突破于坚实处启新篇
- 2025年幼儿园保育员考试试题(附答案)
- 2025年上半年中国铁路兰州局集团有限公司校招笔试题带答案
- 《物联网导论》课程标准
评论
0/150
提交评论