← 2022 · 奕斯伟 笔试

推荐答案 测试一下

给出自动饮料售卖机Verilog代码,功能为饮料10分钱,硬币分5分和10分,考虑找零。输入输出:A=1表示投入10分,B=1表示投入5分,Y=1表示弹出饮料,Z=1表示找零,S0表示没有进行投币,S1表示已经有5分硬币。请列出测试用例。

编程题 中等 笔试真题

参考答案

测试用例应覆盖所有状态和输入组合,包括正常流程、边界条件、无效输入及复位。状态机定义:S0(未投币),S1(已投5分)。输入:A(10分),B(5分),假设A和B不同时为1。输出:Y(出饮料),Z(找零)。 测试用例列表: 1. 复位测试:初始状态应为S0,输出Y=0,Z=0。 2. S0状态下,投入5分(B=1):下一状态S1,Y=0,Z=0。 3. S0状态下,投入10分(A=1):下一状态S0,Y=1,Z=0(正好10分,无需找零)。 4. S0状态下,无投币(A=0,B=0):状态保持S0,输出不变。 5. S1状态下,投入5分(B=1):总金额10分,下一状态S0,Y=1,Z=0。 6. S1状态下,投入10分(A=1):总金额15分,下一状态S0,Y=1,Z=1(找零5分)。 7. S1状态下,无投币(A=0,B=0):状态保持S1,输出不变。 8. 同时投币(A=1,B=1):根据设计约定处理,若视为非法,则保持当前状态且无输出;若视为有效,可参考优先级(例如A优先),但通常应避免。测试用例应覆盖此情形。 9. 连续投币序列:如S0→投5分→S1→投5分→出饮料→回到S0;或S0→投10分→出饮料→回到S0;或S0→投5分→S1→投10分→出饮料+找零→S0。 10. 复位后重复操作:验证状态机可重复工作。 测试用例需验证状态转换正确,输出逻辑无误,特别关注找零条件(S1+10分)。

涉及知识点

  • 状态机测试用例设计
  • 边界值分析
  • 输入组合全覆盖
  • 复位与初始状态验证
  • 输出与状态转换同步检验
← 上一题
登录后反馈错题
下一题 →