运用状态迁移法来设计测试用例,关键是划出有限状态机,再根据状态之间转换的条件来设计测试用例。
比如说,我们测试一个权限审批的功能。用户在登录系统之前需要申请权限,管理员审批通过后,用户才能正常登录。在对这个功能进行测试用例设计的时候,就可以以状态迁移法来设计。
权限状态有三种:有权限、权限待审批、无权限三种状态,他们之间可以相互转换。我们可以据此设计以下测试用例:
- 无权限用户申请权限,期间登录提示权限待审批,耐心等待审批结果。
- 管理员审批通过,用户正常登录。
- 管理员审批不通过,用户登录失败。提示用户是否重新发起权限申请。(此状态机无结束出口,循环)
- 管理员取消授权用户。用户登录失败。提示用户是否重新发起权限申请。(此状态机无结束出口,循环)
如果没有有限状态机的提醒,我们容易遗漏测试“权限待审批”状态的情况。也容易遗漏管理员审批不通过后、界面只是提示审批不通过、但是不提供重新申请权限的入口的这种情况。