1. 黑盒测试

黑盒测试也称功能测试,测试中把被测的软件当成一个黑盒子,不关心盒子的内部结构是什么,只关心软件的输入数据与输出数据。

黑盒测试的方法有7个, 分别是: 基于需求的设计方法, 等价类划分, 边界值, 因果图, 正交矩阵法, 场景设计法, 错误推测法

黑盒测试方法, 详见哦~

白盒测试

白盒测试又称结构测试、透明盒测试、逻辑驱动测试或基于代码的测试。白盒指的打开盒子,去研究里面的源代码和程序结果。
接口测试也是白盒测试的是一种 。

白盒测试的方法总体上分为静态方法动态方法两大类. 强度由低到高有 "语句覆盖, 判定覆盖, 条件覆盖, 判定条件覆盖, 条件组合覆盖, 路径覆盖".

  • 静态方法: 不运行程序, 测试的是代码及文档(语法, 业务逻辑, 词义, 数据结构). 对代码的测试: 代码走查, 代码审查, coderiviwer.对文档的测试: 验证文档的一致性, 完整性, 可读性
  • 动态方法: 运行程序, 通常所说的测试, 就是动态测试, 根据需求对功能进行测试

白盒测试的方法:

  1. 语句覆盖, 就是设计若干个测试用例, 运行被测程序, 使得每一可执行语句至少执行一次.
  2. 判定覆盖, 使设计的测试用例保证程序中每个判断的每个取值分支(true or false)至少经历一次, 判定覆盖具有比语句覆盖更强的测试能力, 而且具有和语句覆盖一样的简单性, 无需细分每个判定就可以得到测试用例.
  3. 条件覆盖, 条件覆盖是指选择足够的测试用例, 使得运行这些测试用例时, 判定中每个条件的所有可能结果至少出现一次, 但未必能覆盖全部分支, 条件覆盖要检查每个符合谓词的子表达式值为真和假两种情况, 要独立衡量每个子表达式的结果, 以确保每个子表达式的值为真和假两种情况都被测试到.
  4. 判定条件覆盖, 就是设计足够的测试用例, 使得判断中每个条件的所有可能取值至少执行一次, 同时每个判断的所有可能判断结果至少执行, 即要求各个判断条件的所有可能的条件取值组合至少执行一次.
  5. 条件组合覆盖, 在白盒测试法中, 选择足够的测试用例, 使所有判定中各条件判断结果的所有组合至少出现一次, 满足这种覆盖标准称为条件组合覆盖.
  6. 路径覆盖, 是每条可能执行到的路径至少执行一次.

语句覆盖是一种最弱的覆盖, 判定覆盖和条件覆盖比语句覆盖强, 满足判定/条件覆盖标准的测试用例一定也满足判定覆盖, 条件覆盖和语句覆盖, 条件组合覆盖是除路径覆盖外最强的, 路径覆盖也是一种比较强的覆盖, 但未必考虑判定条件结果的组合, 并不能代替条件覆盖和条件组合覆盖.

白盒测试作用, 通过检查软件内部的逻辑结构, 对软件中的逻辑路径进行覆盖测试, 在程序不同地方设立检查点, 检查程序的状态, 以确定实际运行状态与预期状态是否一致.