状态转换测试
软件测试大致分为白盒测试和黑盒测试。在黑盒测试中,软件生成的输出会根据输入数据集进行测试。状态转换测试是黑盒测试下的概念之一。它是一种测试设计技术,可用于为经历多个状态的软件功能派生测试用例。
什么是软件状态转换测试?
进行软件状态转换测试是为了验证软件在不同输入下的状态变化。如果修改了所提供输入的情况,则软件状态会更新。
软件状态转换测试属于黑盒测试,用于验证软件在特定顺序输入的多组输入条件下的特性。它包括对正向和负向流的验证。当需要验证软件的各种状态转换时,采用这种类型的测试。
软件状态转换测试的目标
状态转换测试的目标列于下方 −
- 进行状态转换测试是为了检测软件的多个阶段。这些阶段与软件内的特定标准相互关联。
- 状态转换测试有助于创建描述软件多个阶段及其变化的状态转换图。
- 状态转换测试有助于验证软件在不同情况下是否移动到正确状态。
- 状态转换测试验证软件的起始和结束状态是否正确。
- 进行状态转换测试以检查软件如何应对意外情况。
软件状态转换测试的各个部分
软件状态转换测试的各个部分列于下方 −
状态 − 它们用圆角矩形表示,描述软件的条件。每个状态代表状态转换图中的一个节点,其中一个节点指向特定状态/条件。
转换 −它们用箭头表示,用于指示软件对事件作出反应时从一个状态到另一个状态的变化。
事件 − 它们标记在转换箭头上方。事件是导致软件状态发生变化的活动。
操作 − 它们用消息框表示。动作是软件在其状态被修改时产生的特性。
软件状态转换测试的优点
软件状态转换测试的优点如下 −
- 状态转换测试有助于创建状态转换图,该图可以清晰地描述所有软件状态,并提出更好的沟通、文档和对完整软件的理解。
- 状态转换测试是一种很好的测试用例设计技术,它可以结合正向和负向流程。
- 状态转换测试通过验证软件状态的每次转换,有助于在软件开发生命周期 (SDLC) 的早期阶段检测缺陷。
软件状态转换测试的缺点
软件状态转换测试的缺点如下 −
- 状态转换测试可能会遗漏软件的某些状态。
- 状态转换测试不包括对输入数据集的所有可能组合进行测试。
- 如果状态转换测试中遗漏了任何状态,则会导致测试覆盖不完整。
示例
让我们以银行应用程序为例,我们将在下面列出的登录模块功能上创建状态转换图 −
- 用户在第一次尝试中输入正确的凭据,用户登录银行系统。
- 用户在第二次尝试中输入正确的凭据,用户登录银行系统。
- 用户在第三次尝试中输入正确的凭据,用户登录银行系统。
- 用户在四次尝试中输入正确的凭据,用户凭据被锁定。

根据上述状态转换图可以设计出的测试用例总数如下 −
测试用例 1 − 用户处于登录页面,然后在第一次尝试中输入正确的凭据,从而登录成功。
测试用例 2 − 用户处于登录页面,然后在第二次尝试中输入正确的凭据,从而登录成功。
测试用例 3 − 用户处于登录页面,然后在第三次尝试中输入正确的凭据,从而登录成功。
测试用例 4 −用户在登录页面,然后在第三次尝试中输入了错误的凭据,导致帐户被锁定。
结论
这就是我们对软件状态转换测试教程的全面介绍。我们首先描述了什么是软件状态转换测试,软件状态转换测试的目标是什么,软件状态转换测试的组成部分是什么,软件状态转换测试的优点是什么,软件状态转换测试的缺点是什么,以及状态转换测试的示例。这使您具备了软件状态转换测试的深入知识。明智的做法是继续练习您学到的知识并探索与软件测试相关的其他知识,以加深您的理解并拓展您的视野。