- 1、本文档共40页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件测试教程(华为培训专用)-第4章讲述
基于缺陷模式的软件测试
基于缺陷模式的软件测试
基于缺陷模式的软件测试概述
基于缺陷模式的软件测试指标分析
缺陷模式
基于缺陷模式的软件测试系统(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语言为背景来描述其缺陷模式,将软件的缺陷模式分为四个层次,即故障模式、漏洞模式、缺陷模式和规则模式。
故障模式:此类缺陷是故障,一经产生,会导致系统出错。
存储器泄露模式
资源泄漏模式
指针使用错误模式
数组越界模式
非法计算模式
使用未初始化变量模式
死循环结构模式
死锁模式
缺陷模式概述
缺陷模式概述
安全漏洞模式:此类缺陷会给系统留下安全隐患,为攻击该系统开了绿灯。
缓冲区溢出模式
被感染的数据模式
竞争条件模式
风险操作模式
缺陷模式概述
缺陷模式:此类缺陷是不应该发生的,它未必会造成系统的错误,但可能会隐含某些故障,或者是由初级软件工程师不理解造成的。
性能缺陷模式:此类缺陷会降低系统的性能
疑问代码模式:让人费解的代码
缺陷模式概述
规则模式:软件开发总要遵循一定的规则,某个团队也有一些开发规则,违反这些规则也是不允许的。
代码规则
复杂性规则
控制流规则
命名规则
可移植性规则
资源规则
缺陷模式
缺陷模式概述
故障模式
安全漏洞模式
缺陷模式
故障模式
故障模式中给出的故障描述,是程序中可能存在的故障,这些故障一旦被激活,就会使系统发生错误。包括以下几种故障模式:
故障模式
存储泄漏的故障模式(Memory Leak Fault MLF)
定义:内存泄漏故障(Memory Leak Faults):设在程序的某处申请了大小为M的空间,凡在程序结束时M或者M的一部分没被释放、或者多次释放M或M的一部分都是内存泄漏故障。
MLF有三种形式:
遗漏故障:是指申请的内存没有被释放。
不匹配故障:是指申请函数和释放函数不匹配。
不相等的释放错误:是指释放的空间和申请的空间大小不一样。
故障模式
数组越界故障的故障模式(Out of Bounds Array Access Fault OBAF)
定义:数组越界故障:设某数组定义为Array[min?max],若引用Array[i]且imin或imax都是数组越界故障。在C++中,若i0或i?max是数组越界故障。
(1)对程序中任何出现Array[i]
文档评论(0)