状态转换测试 – 图表与技术(示例)

什么是状态转换测试?

状态转换测试是一种黑盒测试技术,其中输入条件的改变导致被测应用程序(AUT)的状态改变或输出改变。状态转换测试有助于分析应用程序在不同输入条件下的行为。测试人员可以提供正向和负向的输入测试值,并记录系统行为。

它是系统和测试所基于的模型。任何系统,如果相同的输入根据之前发生的情况产生不同的输出,那么它就是一个有限状态系统。

状态转换测试技术在需要测试不同系统转换时非常有用。

何时使用状态转换?

  • 当测试人员测试有限输入值集的应用程序时,可以使用此方法。
  • 当测试人员试图测试被测应用程序中发生的一系列事件时。也就是说,这将允许测试人员测试应用程序在一系列输入值下的行为。
  • 当被测系统依赖于过去的事件/值时。

何时不依赖状态转换?

  • 当测试不是针对顺序输入组合进行时。
  • 如果测试是针对不同功能(如探索性测试)进行时

状态转换图的四个部分

状态转换模型有以下4个主要组成部分

1) 状态 软件可能进入的

States

2) 转换 从一个状态到另一个状态

Transition

3) 事件 引起转换的事件,例如关闭文件或取款

Events

4) 动作 转换产生的动作(错误消息或收到现金)

Actions

状态转换图和状态转换表

有两种主要方式来表示或设计状态转换:状态转换图和状态转换表。

在状态转换图中,状态显示在方框文本中,转换由箭头表示。它也称为状态图或图形。它有助于识别有效转换。

在状态转换表中,所有状态都列在左侧,事件描述在顶部。表中的每个单元格都表示事件发生后系统的状态。它也称为状态表。它有助于识别无效转换。

如何进行状态转换(状态转换示例)

示例 1

让我们考虑一个ATM系统功能,如果用户三次输入无效密码,账户将被锁定。

在该系统中,如果用户在前三次尝试中的任何一次输入正确密码,用户将成功登录。如果用户在第一次或第二次尝试中输入无效密码,系统将要求用户重新输入密码。最后,如果用户第三次输入不正确密码,账户将被锁定。

状态转换图

State transition diagram

在图中,当用户输入正确的PIN时,他会进入“访问被授予”状态;如果他输入错误的密码,他会进入“下次尝试”;如果他第三次这样做,账户将被锁定。

状态转换表

正确密码 错误密码
S1) 开始 S5 S2
S2) 第一次尝试 S5 S3
S3) 第二次尝试 S5 S4
S4) 第三次尝试 S5 S6
S5) 访问被授予
S6) 账户已锁定

在表中,当用户输入正确的PIN时,状态转换为S5,即“访问被授予”。如果用户输入错误的密码,他将进入下一个状态。如果他第三次这样做,他将到达“账户已锁定”状态。

示例 2

在参考以下示例之前,请观看此状态转换测试视频

如果视频无法访问,请点击此处

在航班预订登录界面,假设您必须输入正确的代理名称和密码才能访问航班预订应用程序

State Transition Graph
状态转换图

它允许您使用正确的密码和登录名访问应用程序,但如果您输入了错误的密码怎么办?

应用程序允许三次尝试,如果用户在第四次尝试时输入错误的密码,系统将自动关闭应用程序。

状态图有助于确定要测试的有效转换。在这种情况下,使用正确密码和不正确密码进行测试是强制性的。对于测试场景,可以在第2次、第3次和第4次尝试时进行登录测试。

您可以使用状态表来确定无效的系统转换。

State Transition Table

在状态表中,所有有效状态列在表的左侧,而导致这些状态的事件列在顶部。

每个单元格代表当相应事件发生时系统将进入的状态。

例如,当处于S1状态时,您输入正确密码,就会进入S6状态(访问被授予)。假设您在第一次尝试时输入了错误的密码,您将被带到S3状态或“第二次尝试”。

同样,您可以确定所有其他状态。

通过这种方法突出显示了两种无效状态。假设您处于S6状态,即您已经登录到应用程序,并且您打开了另一个航班预订实例并为同一代理输入了有效或无效密码。对于这种情况,系统响应需要进行测试。

状态转换技术的优缺点

优点 缺点
这种测试技术将提供系统行为的图形或表格表示,这将使测试人员有效地覆盖和理解系统行为。 这种测试技术的主要缺点是我们不能每次都依赖它。例如,如果系统不是有限系统(不按顺序),则不能使用此技术。
通过使用这种测试技术,测试人员可以验证所有条件都已覆盖,并且结果已捕获。 另一个缺点是您必须定义系统的所有可能状态。对于小型系统来说这没有问题,但对于大型系统来说,由于状态数量呈指数级增长,很快就会崩溃。

摘要

  • 状态转换测试被定义为一种测试技术,其中输入条件的改变导致被测应用程序的状态改变。
  • 软件工程中,状态转换测试技术在需要测试不同系统转换时非常有用。
  • 表示或设计状态转换的两种主要方式是状态转换图和状态转换表。
  • 在状态转换图中,状态显示在方框文本中,转换由箭头表示。
  • 在状态转换表中,所有状态都列在左侧,事件描述在顶部。
  • 这种测试技术的主要优点是,它将提供系统行为的图形或表格表示,这将使测试人员能够高效地覆盖和理解系统行为。
  • 这种测试技术的主要缺点是我们不能每次都依赖它。