黑盒测试

🧩 黑盒测试常见方法

1. 等价类划分 (Equivalence Partitioning)

  • 核心思想:把所有可能输入划分成“有效类”和“无效类”。只需从每一类里挑代表值测试。
  • 例子:年龄输入 1–120 合法。
    • 有效类:20, 35, 100
    • 无效类:-5, 0, 130 👉 优点:减少用例数量,但覆盖常见情况。

2. 边界值分析 (Boundary Value Analysis)

  • 核心思想:错误最容易发生在边界附近。
  • 例子:输入范围 1–100
    • 边界值:1, 100
    • 临近值:0, 2, 99, 101 👉 常和等价类一起用,防止“临门一脚出 bug”。

3. 因果图法 (Cause-Effect Graphing)

  • 核心思想:通过逻辑关系(if-then)分析输入条件与输出的对应关系。
  • 例子:输入条件 A、B 决定输出 X。 👉 适用于复杂逻辑组合,能系统化生成用例。

4. 判定表驱动法 (Decision Table Testing)

  • 核心思想:当输入条件很多且组合复杂时,用判定表列出各种组合及期望输出。
  • 例子:会员等级 × 是否有优惠券 × 是否节日 → 最终折扣。 👉 很适合业务规则、合同逻辑。

5. 状态迁移测试 (State Transition Testing)

  • 核心思想:系统往往有不同状态(登录/未登录、草稿/已提交),输入可能让它转移到另一状态。
  • 方法:画状态机图,用例覆盖 有效转移、无效转移。 👉 适合工作流、协议栈、UI 界面。

6. 场景测试 (Scenario Testing)

  • 核心思想:以用户的使用场景为主线,设计一整串操作步骤,测试系统是否符合预期。
  • 例子:电商下单 → 加购物车 → 支付 → 生成订单 → 发货。 👉 模拟真实用户体验,常用于系统测试和验收测试。

7. 错误推测法 (Error Guessing)

  • 核心思想:靠经验“拍脑袋”,去尝试那些开发最容易出错的点。
  • 例子:输入空字符串、特殊字符、SQL 注入语句。 👉 经验越多,越能发现奇葩 bug。

8. 随机测试 / 猴子测试 (Random / Monkey Testing)

  • 核心思想:随机输入各种数据或操作,看系统是否崩溃。 👉 常用于容错性和鲁棒性检查,尤其是 UI 应用。