软件测试教程华为培训专用-第4章.ppt
- 文档编号:2209968
- 上传时间:2022-10-27
- 格式:PPT
- 页数:40
- 大小:261.50KB
软件测试教程华为培训专用-第4章.ppt
《软件测试教程华为培训专用-第4章.ppt》由会员分享,可在线阅读,更多相关《软件测试教程华为培训专用-第4章.ppt(40页珍藏版)》请在冰豆网上搜索。
基于缺陷模式的软件测试基于缺陷模式的软件测试基于缺陷模式的软件测试基于缺陷模式的软件测试n基于缺陷模式的软件测试概述基于缺陷模式的软件测试概述n基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析n缺陷模式缺陷模式n基于缺陷模式的软件测试系统(基于缺陷模式的软件测试系统(DTS)基于缺陷模式的软件测试概述基于缺陷模式的软件测试概述n缺陷模式必须满足下列几个条件:
缺陷模式必须满足下列几个条件:
1.该模式下的缺陷是符合实际的。
该模式下的缺陷是符合实际的。
2.基于该模式的缺陷数目是可以容忍的。
基于该模式的缺陷数目是可以容忍的。
3.该模式下的缺陷是可以测试的。
该模式下的缺陷是可以测试的。
基于缺陷模式的软件测试概述基于缺陷模式的软件测试概述n基于模式的软件测试技术具有如下特点:
基于模式的软件测试技术具有如下特点:
1.针对性强:
如果说某种模式的缺陷是经常发生的,针对性强:
如果说某种模式的缺陷是经常发生的,并且在被测软件中是存在的,则面向缺陷的测试可并且在被测软件中是存在的,则面向缺陷的测试可以检测出此类缺陷。
以检测出此类缺陷。
2.基于缺陷模式的软件测试技术往往能发现其他测试基于缺陷模式的软件测试技术往往能发现其他测试技术难以发现的故障,如内存泄漏缺陷,空指针引技术难以发现的故障,如内存泄漏缺陷,空指针引用缺陷。
用缺陷。
3.工具自动化程度高以及测试效率高。
工具自动化程度高以及测试效率高。
4.缺陷定位准确:
对测试所发现的缺陷能够准确定位。
缺陷定位准确:
对测试所发现的缺陷能够准确定位。
5.易学、易使用:
对一般的易学、易使用:
对一般的IT专业专科以上的毕业生,专业专科以上的毕业生,该测试方法一般经过数天的培训即可掌握其使用方该测试方法一般经过数天的培训即可掌握其使用方法。
法。
n基于缺陷模式的软件测试概述基于缺陷模式的软件测试概述n基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析n缺陷模式缺陷模式n基于缺陷模式的软件测试系统(基于缺陷模式的软件测试系统(DTS)基于缺陷模式的软件测试基于缺陷模式的软件测试基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析n设设P是待测程序,将缺陷模式是待测程序,将缺陷模式M分成类分成类M=M1,M2,Mn,每类分成种,每类分成种Mi=Mi1,Mi2,MiL,从从P中计算出中计算出和和M相匹配的检查点的集合相匹配的检查点的集合IP=IP1,IP2,IPm,可以定义如下技术可以定义如下技术指标:
指标:
1.漏报率漏报率(ER):
设:
设P是程序,是程序,M是缺陷模是缺陷模式,式,A是算法,是算法,IP(M,A,P)是)是IP总总的数目,考虑到测试算法实现过程中的的数目,考虑到测试算法实现过程中的不同假设,会导致不同假设,会导致IP(M,A,P)不)不同。
漏报率定义为:
同。
漏报率定义为:
基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析2.准确率准确率(CR):
3.误报率误报率(DR):
基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析4.缺陷检测率缺陷检测率(DDR):
5.自动缺陷检测率自动缺陷检测率(ADR):
用用IPAY(P,A,M)表示不需人工确)表示不需人工确认,工具可以自动缺陷的检测个数。
认,工具可以自动缺陷的检测个数。
基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析6.计算复杂性:
计算复杂性:
在理论上,基于缺陷的软件测试技术可在理论上,基于缺陷的软件测试技术可以以100%的检测所定义的缺陷模式,但由于的检测所定义的缺陷模式,但由于缺陷的检测可以模型化程序的遍历问题,缺陷的检测可以模型化程序的遍历问题,对于大型程序,全部遍历虽然可以提高精对于大型程序,全部遍历虽然可以提高精度,但需要花费大量的时间。
因此,该技度,但需要花费大量的时间。
因此,该技术有一个性价比的问题,在时间遍历过程术有一个性价比的问题,在时间遍历过程中,往往都有一定的限制,如在一个函数中,往往都有一定的限制,如在一个函数内、一个类内、一个文件内等。
内、一个类内、一个文件内等。
基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试基于缺陷模式的软件测试n基于缺陷模式的软件测试概述基于缺陷模式的软件测试概述n基于缺陷模式的软件测试指标分析基于缺陷模式的软件测试指标分析n缺陷模式缺陷模式n基于缺陷模式的软件测试系统(基于缺陷模式的软件测试系统(DTS)缺陷模式缺陷模式缺陷模式概述缺陷模式概述故障模式故障模式安全漏洞模式安全漏洞模式缺陷模式缺陷模式缺陷模式概述缺陷模式概述n缺陷模式是和语言本身相关的,不同的缺陷模式是和语言本身相关的,不同的语言有着不同的缺陷模式。
我们以语言有着不同的缺陷模式。
我们以C+语言和语言和Java语言为背景来描述其缺陷模语言为背景来描述其缺陷模式,将软件的缺陷模式分为四个层次,式,将软件的缺陷模式分为四个层次,即故障模式、漏洞模式、缺陷模式和规即故障模式、漏洞模式、缺陷模式和规则模式。
则模式。
1.故障模式故障模式:
此类缺陷是故障,一经产生,会导致系统此类缺陷是故障,一经产生,会导致系统出错。
出错。
存储器泄露模式存储器泄露模式资源泄漏模式资源泄漏模式指针使用错误模式指针使用错误模式数组越界模式数组越界模式非法计算模式非法计算模式使用未初始化变量模式使用未初始化变量模式死循环结构模式死循环结构模式死锁模式死锁模式缺陷模式概述缺陷模式概述缺陷模式概述缺陷模式概述2.安全漏洞模式:
此类缺陷会给系统留下安全安全漏洞模式:
此类缺陷会给系统留下安全隐患,为攻击该系统开了绿灯。
隐患,为攻击该系统开了绿灯。
缓冲区溢出模式缓冲区溢出模式被感染的数据模式被感染的数据模式竞争条件模式竞争条件模式风险操作模式风险操作模式缺陷模式概述缺陷模式概述3.缺陷模式:
此类缺陷是不应该发生的,它未缺陷模式:
此类缺陷是不应该发生的,它未必会造成系统的错误,但可能会隐含某些故必会造成系统的错误,但可能会隐含某些故障,或者是由初级软件工程师不理解造成的。
障,或者是由初级软件工程师不理解造成的。
性能缺陷模式:
此类缺陷会降低系统的性能性能缺陷模式:
此类缺陷会降低系统的性能疑问代码模式:
让人费解的代码疑问代码模式:
让人费解的代码缺陷模式概述缺陷模式概述4.规则模式:
软件开发总要遵循一定的规则,规则模式:
软件开发总要遵循一定的规则,某个团队也有一些开发规则,违反这些规则某个团队也有一些开发规则,违反这些规则也是不允许的。
也是不允许的。
代码规则代码规则复杂性规则复杂性规则控制流规则控制流规则命名规则命名规则可移植性规则可移植性规则资源规则资源规则缺陷模式缺陷模式缺陷模式概述缺陷模式概述故障模式故障模式安全漏洞模式安全漏洞模式缺陷模式缺陷模式故障模式故障模式n故障模式中给出的故障描述,是程序中故障模式中给出的故障描述,是程序中可能存在的故障,这些故障一旦被激活,可能存在的故障,这些故障一旦被激活,就会使系统发生错误。
包括以下几种故就会使系统发生错误。
包括以下几种故障模式:
障模式:
故障模式故障模式1.存储泄漏的故障模式(存储泄漏的故障模式(MemoryLeakFaultMLF)定义:
内存泄漏故障(定义:
内存泄漏故障(MemoryLeakFaults):
):
设在程序的某处申请了大小为设在程序的某处申请了大小为M的空间,凡在程序结的空间,凡在程序结束时束时M或者或者M的一部分没被释放、或者多次释放的一部分没被释放、或者多次释放M或或M的一部分都是内存泄漏故障。
的一部分都是内存泄漏故障。
MLF有三种形式:
有三种形式:
遗漏故障:
是指申请的内存没有被释放。
遗漏故障:
是指申请的内存没有被释放。
不匹配故障:
是指申请函数和释放函数不匹配。
不匹配故障:
是指申请函数和释放函数不匹配。
不相等的释放错误:
是指释放的空间和申请的空间大不相等的释放错误:
是指释放的空间和申请的空间大小不一样。
小不一样。
故障模式故障模式2.数组越界故障的故障模式(数组越界故障的故障模式(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虚拟机的工作虚拟机的工作机制不清楚,而且由于线程启动的任意性和不确定性机制不清楚,而且由于线程启动的任意性和不确定性使用户无法确定所编写的代码具体何时执行而导致对使用户无法确定所编写的代码具体何时执行而导致对公共区域的错误使用。
这类模式主要包括不正确的同公共区域的错误使用。
这类模式主要包括不正确的同步、死锁、多线程应用中方法调用时机或方式不正确、步、死锁、多线程应用中方法调用时机或方式不正确、同一变量的双重验证、
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件 测试 教程 华为 培训 专用