16-软件测试

测试替身

  • 测试替身:在测试中使用的对象,替代真实对象,减少测试的复杂性

  • Stub:模仿下层模块,在测试时响应上层请求,为上层方法提供假数据

  • Driver:模仿上层模块,为下层方法提供模拟环境

  • Mock:模仿下层模块测试上层,相较于 Stub 还需要验证上层方法的调用行为

常见测试方法

  • 黑盒测试:将测试对象作为一个黑盒子,完全基于输入和输出数据判断测试对象的正确性。

    • 等价类划分:将输入数据划分为有效和无效等价类,测试每个类的代表值

    • 边界值分析:测试输入数据的边界值,通常是有效等价类的边界

    • 决策表测试:四个象限,条件声明-条件选项;行动声明-行动选项

    • 状态转换测试:基于系统状态的变化,设计测试用例

  • 白盒测试:按照对象内部的逻辑结构进行测试,关注代码的执行路径和分支。

    • 语句覆盖:确保每个可执行语句至少被执行一次

    • 分支覆盖:确保每个分支(if-else)至少被执行一次

    • 路径覆盖:确保每条可能的执行路径都被测试

衡量圈复杂度

  • 画出流程图,节点数为 NN ,边数为 EE ,圈复杂度: V=EN+2V = E - N + 2

  • 也可通过 if while for等分支语句的数量 +1 来计算

JUNIT 基本语法

最后更新于