软件测试基础教程_宫云战_第4章

上传人:xmg****18 文档编号:120306589 上传时间:2020-02-06 格式:PPT 页数:41 大小:919.50KB
返回 下载 相关 举报
软件测试基础教程_宫云战_第4章_第1页
第1页 / 共41页
软件测试基础教程_宫云战_第4章_第2页
第2页 / 共41页
软件测试基础教程_宫云战_第4章_第3页
第3页 / 共41页
软件测试基础教程_宫云战_第4章_第4页
第4页 / 共41页
软件测试基础教程_宫云战_第4章_第5页
第5页 / 共41页
点击查看更多>>
资源描述

《软件测试基础教程_宫云战_第4章》由会员分享,可在线阅读,更多相关《软件测试基础教程_宫云战_第4章(41页珍藏版)》请在金锄头文库上搜索。

1、基于缺陷模式的软件测试 基于缺陷模式的软件测试 n基于缺陷模式的软件测试概述 n基于缺陷模式的软件测试指标分析 n缺陷模式 n基于缺陷模式的软件测试系统 DTS 基于缺陷模式的软件测试概述 n缺陷模式必须满足下列几个条件 1 该模式下的缺陷是符合实际的 2 基于该模式的缺陷数目是可以容忍的 3 该模式下的缺陷是可以测试的 基于缺陷模式的软件测试概述 n基于模式的软件测试技术具有如下特点 1 针对性强 如果说某种模式的缺陷是经常发生的 并且在被测软件中是存在的 则面向缺陷的测试可 以检测出此类缺陷 2 基于缺陷模式的软件测试技术往往能发现其他测试 技术难以发现的故障 如内存泄漏缺陷 空指针引 用

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是缺陷

3、模式 A是算法 IP M A P 是IP 总的数目 考虑到测试算法实现过程中 的不同假设 会导致IP M A P 不同 漏报率定义为 基于缺陷模式的软件测试指标分析 2 准确率 CR 3 误报率 DR 基于缺陷模式的软件测试指标分析 4 缺陷检测率 DDR 5 自动缺陷检测率 ADR 用IPAY P A M 表示不需人工确 认 工具可以自动缺陷的检测个数 基于缺陷模式的软件测试指标分析 6 计算复杂性 在理论上 基于缺陷的软件测试技术可 以100 的检测所定义的缺陷模式 但由于 缺陷的检测可以模型化程序的遍历问题 对于大型程序 全部遍历虽然可以提高精 度 但需要花费大量的时间 因此 该技 术有

4、一个性价比的问题 在时间遍历过程 中 往往都有一定的限制 如在一个函数 内 一个类内 一个文件内等 基于缺陷模式的软件测试指标分析 基于缺陷模式的软件测试 n基于缺陷模式的软件测试概述 n基于缺陷模式的软件测试指标分析 n缺陷模式 n基于缺陷模式的软件测试系统 DTS 缺陷模式 缺陷模式概述 故障模式 安全漏洞模式 缺陷模式 缺陷模式概述 n缺陷模式是和语言本身相关的 不同的 语言有着不同的缺陷模式 我们以C 语言和Java语言为背景来描述其缺陷模 式 将软件的缺陷模式分为四个层次 即故障模式 漏洞模式 缺陷模式和规 则模式 1 故障模式 此类缺陷是故障 一经产生 会导致系 统出错 存储器泄露

5、模式 资源泄漏模式 指针使用错误模式 数组越界模式 非法计算模式 使用未初始化变量模式 死循环结构模式 死锁模式 缺陷模式概述 缺陷模式概述 2 安全漏洞模式 此类缺陷会给系统留下安全 隐患 为攻击该系统开了绿灯 缓冲区溢出模式 被感染的数据模式 竞争条件模式 风险操作模式 缺陷模式概述 3 缺陷模式 此类缺陷是不应该发生的 它未 必会造成系统的错误 但可能会隐含某些故 障 或者是由初级软件工程师不理解造成的 性能缺陷模式 此类缺陷会降低系统的性能 疑问代码模式 让人费解的代码 缺陷模式概述 4 规则模式 软件开发总要遵循一定的规则 某个团队也有一些开发规则 违反这些规则 也是不允许的 代码规

6、则 复杂性规则 控制流规则 命名规则 可移植性规则 资源规则 缺陷模式 缺陷模式概述 故障模式 安全漏洞模式 缺陷模式 故障模式 n故障模式中给出的故障描述 是程序中 可能存在的故障 这些故障一旦被激活 就会使系统发生错误 包括以下几种 故障模式 故障模式 1 存储泄漏的故障模式 Memory Leak Fault MLF 定义 内存泄漏故障 Memory Leak Faults 设在程序的某处申请了大小为M的空间 凡在程序结 束时M或者M的一部分没被释放 或者多次释放M或 M的一部分都是内存泄漏故障 MLF有三种形式 遗漏故障 是指申请的内存没有被释放 不匹配故障 是指申请函数和释放函数不匹

7、配 不相等的释放错误 是指释放的空间和申请的空间大 小不一样 故障模式 2 数组越界故障的故障模式 Out of Bounds Array Access Fault OBAF 定义 数组越界故障 设某数组定义为 Array min max 若引用Array i 且imax都 是数组越界故障 在C 中 若i 0或i max是数组越 界故障 1 对程序中任何出现Array i 的地方 都要判断i的范 围 可能有三种情况 若i是在数组定义的范围内 则是正确的 若i是在数组定义的范围外 则是OBAF 故障模式 2 字符串拷贝过程中存在的数组越界故障 3 在结构类型中 由于结构体中的成员变量是连续存 放

8、的 在数组的拷贝过程中 多余的数据会自动的存 放在后面所定义的成员变量中 这种情况数组并不产 生越界错误 故障模式 3 使用未初始化变量故障模式 Uninitialized Variable Fault UVF 定义 使用未初始化变量故障 存在一个路径 在该路径上使用前面没有被赋初值的变量是使用未初 始化变量故障 4 空指针使用故障 NULL Pointer Dereference Fault NPDF 定义 空指针使用故障 引用空指针或给空指针 赋值的都是空指针使用故障 故障模式 5 非法计算类故障 Illegal Computing Fault ILCF 定义 非法计算类故障 是指计算机不

9、允许的计算 一旦非法计算类故障产生 系统将强行退出 例如 除数为0故障 对数自变量为0或负数故障 根号内为负数的故障 故障模式 6 死循环结构模式 Dead Loop Fault DLF 定义 在控制流图中 对任何一个循环结构 包括 FOR语句中的死循环结构 WHILE语句中的死循环结构 DO WHILE语句中的死循环结构 GOTO语句中的死循环结构 函数循环调用造成的死循环结构 故障模式 7 资源泄漏故障 RLF 定义 资源泄漏故障 在Java程序中 当一个资 源被打开后 如果并不是在所有的可执行路径上都对 其进行了显式的释放操作 则是一个资源泄漏故障 故障模式 8 并发故障模式 该模式主要

10、是针对程序员对多线程的编码机制 各种同步方法 Java存储器模式和java虚拟机的工作 机制不清楚 而且由于线程启动的任意性和不确定性 使用户无法确定所编写的代码具体何时执行而导致对 公共区域的错误使用 这类模式主要包括不正确的同 步 死锁 多线程应用中方法调用时机或方式不正确 同一变量的双重验证 相互初始化的类和临界区内 调用阻塞函数等 缺陷模式 缺陷模式概述 故障模式 安全漏洞模式 缺陷模式 安全漏洞模式 n安全漏洞模式为他人攻击软件提供可能 而一旦软件被攻击成功 系统就可能 发生瘫痪 所造成的危害较大 因此 此类漏洞应当尽量避免 n下面以C 为基础 介绍基于安全漏洞 检测的缺陷模式 安全

11、漏洞模式 1 缓冲区溢出 buffer overflow 漏洞模式 定义 当程序要在一个缓冲区内存储比该缓冲 区的大小还要多的数据时 即会产生缓冲区溢出漏 洞 缓存区溢出主要有2种类型 数据拷贝造成的缓 冲区溢出和格式化字符串造成的缓冲区溢出 安全漏洞模式 2 被污染的数据模式 Tainted Data 定义 程序从外部获取数据时 这些数据可能含 有具有欺骗性或者是不想要的垃圾数据 如果在使用 这些数据前不进行合法性检查则将威胁到程序的安全 造成一个tainted data缺陷 tainted data可能会导 致程序不按原计划执行 也有可能直接或间接地导致 缓冲区溢出缺陷 被污染的数据模式主

12、要有两种类型 使用的数据 来自外部的全局变量和使用的数据来自输入函数 安全漏洞模式 3 竞争条件 Race Condition 定义 如果程序中有两种不同的I O调用同一文 件进行操作 而且这两种调用是通过绝对路径或相 对路径引用文件的 那么就易出现Race Condition问 题 在两种操作进行的间隙 黑客可能改变文件系 统 那么将会导致对两个不同的文件操作而不是同 一文件进行操作 这种典型的问题发生在用户拥有不同的权限运 行的程序中 例如 setuid程序 数据库和服务器程序 等 安全漏洞模式 4 风险操作 Risky Operation 定义 如果不恰当地使用了某些标准库函数 可能会带

13、来安全隐患 甚至在某些情况下 某些函 数一经被使用 就可能会带来安全隐患 例如像rand 和random 这样的随机数生成函 数 它们在生成伪随机值的时候表现出来的性能是非 常差的 如果用它们来生成默认的口令 这些口令将 很容易被攻击者猜测到 缺陷模式 缺陷模式概述 故障模式 安全漏洞模式 缺陷模式 缺陷模式 低性能模式 该模式导致软件运行效率低下 因此建议采用 更高效的代码来完成同样的功能 这类模式主要包 括使用低效函数 代码 使用多余函数 Java中显式 垃圾回收 冗余代码 头文件中定义的静态变量 不必要的文件包含 字符串低效操作和有更简单的 运算可以替代等 基于缺陷模式的软件测试 n基于

14、缺陷模式的软件测试概述 n基于缺陷模式的软件测试指标分析 n缺陷模式 n基于缺陷模式的软件测试系统 DTS 基于缺陷模式的软件测试系统 DTS n下面以作者自主开发的基于缺陷模式的测试系 统DTS为例 介绍基于缺陷模式的软件测试的 基本原理 DTS是作者在国家863 软件的故障 模式与面向故障的软件测试系统 资助下开发 的测试系统 能对上面介绍的缺陷模式进行有 效测试 nDTS系统结构 基于缺陷模式的软件测试系统 DTS nDTS缺陷模式描述 1 缺陷模式状态机 有限自动机是计算机科学的重要基石 它在软件 开发领域内通常被称作有限状态机 2 缺陷模式状态机的xml描述 作者用xml来对缺陷模式状态机进行描述 xml schema定义了描述缺陷模式状态机的语法 包括标签 以及标签的各个属性 基于缺陷模式的软件测试系统 DTS nDTS的测试界面 基于缺陷模式的软件测试系统 DTS 知识回顾知识回顾 Knowledge Knowledge ReviewReview

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 大杂烩/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号