【软件测试】HW6

Assignment

Assignment 6.

  1. 分析 Chap.5.1 (Lec.17) 自动售货机软件例子生成的判定表图例的第6列和第23列,分别给出:

    (1) 输入条件的自然语义陈述;

    (2) 输出结果的自然语义陈述;

    (3) 用命题逻辑形式描述实现上述输入-输出过程所应用的判定规则,并写出获得输出结果的推理演算过程。

Answer

  1. 分析需求说明,列出原因和结果清单

    • 原因清单 (输入条件)
      • C1 售货机可找零
      • C2 投入1元硬币
      • C3 投入5角硬币
      • C4按下橙汁按钮
      • C5按下啤酒按钮
    • 结果清单 (输出结果)
      • E21 零钱找完灯亮
      • E22 退还1元硬币
      • E23 退还5角硬币
      • E24 送出橙汁饮料
      • E25 送出啤酒饮料
    • 建立中间结点,表示处理的中间状态
      • T11 投入1元硬币且按下饮料按钮
      • T12按下橙汁或啤酒按钮
      • T13 应当找5角零钱并且售货机有零钱找
      • T14 钱已付清
  2. 画出因果图

    【软件测试】HW6

  3. 因果图转换成判定表

【软件测试】HW6
4. 判定表的分析

  • 第6列

    • 输入11010,表示C1售货机可找零、C2投入1元硬币、C4按 下橙汁按钮。输出 00110,表示 E23 退还5角硬币、E24 送出橙汁饮料。

    • 实现上述输入-输出过程的规则描述:

      C1(1)T11(1)T13(1)C1(1)\bigwedge T11(1) \rightarrow T13(1) (3)

      C2(1)T12(1)T11(1)C2(1) \bigwedge T12(1) \rightarrow T11(1) (2)

      C4(1)C5(0)T12(1)C4(1) \bigvee C5(0) \rightarrow T12(1) (1)

      C3(0)T13(1)T14(1)C3(0) \bigvee T13(1) \rightarrow T14(1) (4)

      C4(1)T14(1)E24(1)C4(1) \bigwedge T14(1) \rightarrow E24(1) (5)

      T13(1)E23(1)T13(1) \rightarrow E23(1) (6)

    • C1,C2,C4C1,C2,C4为前提,应用上述规则,可以证明逻辑结论E23E23E24E24

      可以证明结论¬E21,¬E22,¬E25\neg E21,\neg E22,\neg E25为真:

      C1(1)¬E21(0)C1(1) \rightarrow \neg E21(0)

      C1(1)¬T11(1)¬E22(0)C1(1) \bigvee \neg T11(1) \rightarrow \neg E22(0)

      ¬C5(0)¬T14(1)¬E25(0)\neg C5(0) \bigvee \neg T14(1) \rightarrow \neg E25(0)

  • 第23列

    • 输入01001,表示C1售货机不可找零、C2 投入1元硬币、C5按下啤酒按钮。输出 11000,表示 E21 零钱找完灯亮 、E22 退还1元硬币。

    • 实现上述输入-输出过程的规则描述:

      ¬C1(0)E21(1)\neg C1(0) \rightarrow E21(1) (4)

      ¬C1(0)T11(1)E22(1)\neg C1(0) \bigwedge T11(1) \rightarrow E22(1) (3)

      C2(1)T12(1)T11(1)C2(1) \bigwedge T12(1) \rightarrow T11(1) (2)

      C4(0)C5(1)T12(1)C4(0)\bigvee C5(1)\rightarrow T12(1) (1)

    • C2,C5C2,C5为前提,应用上述规则,可以证明逻辑结论$ E21$ 和 E22E22

      可以证明结论¬E23,¬E24,¬E25\neg E23,\neg E24,\neg E25为真:

      ¬C1(0)¬T11(1)¬T13(0)\neg C1(0)\bigvee \neg T11(1) \rightarrow \neg T13(0)

      ¬T13(0)¬E24(0)\neg T13(0)\leftrightarrow \neg E24(0)

      ¬C3(0)T13(0)¬T14(0)\neg C3(0) \bigwedge T13(0) \rightarrow \neg T14(0)

      ¬C4(0)¬T14(0)¬E24(0)\neg C4(0) \bigvee \neg T14(0) \rightarrow \neg E24(0)

      ¬C5(1)¬T14(0)¬E25(0)\neg C5(1) \bigvee \neg T14(0) \rightarrow \neg E25(0)