软件测试学习笔记
软件测试 由于项目需要进行测试,先来学习一下软件测试中的基本概念, 测试的内容很多,这里就简单介绍一下白盒测试/黑盒测试/灰盒测试. 动态测试 首先介绍一下动态测试 动态测试基本流程: 运行被测程序 检查运行结果与预期结果的差异 分析运行效率和健壮性等性能 动态测试由三部分组成: 测试实例的构造, 被测程序的执行,输出结果分析 从是否了解软件内部结构 (程序源代码) 的角度划分, 我们可以将动态测试分为白盒/黑盒/灰盒测试三类. 白盒测试 白盒测试按照程序内部逻辑结构和编码结构来设计测试数据并完成测试,是一种典型的动态测试方法。白盒测试又称为结构测试或逻辑驱动测试. 白盒测试的主要特点: 可以构造测试数据以测试特定程序部分 有一定的充分性度量手段 可以获得较多工具支持 通常只用于单元测试 白盒测试采用的测试方法: 逻辑覆盖 逻辑覆盖是以程序内部的逻辑结构为测试基础的一种白盒测试方法 主要分类: 语句覆盖 语句覆盖要求设计足够多的测试用例,使得被测程序的每一条语句至少被执行一次。 判定覆盖 判定覆盖要求设计足够多的测试用例,使得被测程序中的每一个 (判定) 分支至少通过一次。 条件覆盖 条件覆盖要求设计足够多的测试用例,使得程序中的每一个判定中的每个条件获得所有各种可能结果 判定覆盖只关心整个判定表达式的结果,条件覆盖关心的则是逻辑复合的判定表达式中每个条件各种取值的结果. 判定-条件覆盖 判定-条件覆盖要求设计足够多的测试用例,使得判定中每个条件的所有可能取值至少能够获取一次,同时每个判断的所有可能的判定结果至少执行一次。 条件组合覆盖 条件组合覆盖要求设计足够多的测试用例,使得每个判定中条件的各种组合至少出现一次。 路径覆盖 路径覆盖要求设计足够多的测试用例,使得程序中所有的路径都至少执行一次 路径测试 路径测试是根据程序的逻辑控制结构所产生的执行路径进行测试用例设计的方法 基本路径测试 基本路径测试是 McCabe 提出的一种白盒测试方法. 根据过程设计画出程序控制流图 (CFG); 计算程序控制流图的 McCabe 环路复杂度; 确定一个线性独立路径 (数量由环路复杂度确定) 的基本集合; 为上述每条独立路径设计可强制执行该路径的测试用例; 测试用例总体保证了语句覆盖和 (单条件判定情况下的) 条件覆盖 数据流测试 数据流测试也称“定义/引用”测试,其目的是发现定义/引用的异常缺陷。 数据流测试重点关注变量的定义与使用. 信息流分析 信息流测试通过分析输入数据、输出数据和语句之间的关系来检查程序错误...