状态转换测试示例
什么是状态转换测试?
状态转换测试 黑盒测试是一种黑盒测试技术,其中输入条件的变化会导致被测应用程序 (AUT) 的状态或输出发生变化。它有助于分析应用程序在不同输入条件下的行为,测试人员可以在记录系统行为的同时提供正负输入值。
它基于系统和测试所构建的模型。任何对于相同的输入,根据之前发生的事情而产生不同输出的系统都是有限状态系统。状态转换测试技术在需要以下情况时非常有用: 测试不同的系统转换.
何时使用状态转换测试
- 当测试人员使用有限的一组输入值测试应用程序时。
- 当测试人员测试 AUT 中发生的一系列事件时,允许检查应用程序针对一系列输入值的行为。
- 当被测系统依赖于过去的事件或值时。
何时不应依赖状态转换测试
- 当没有对连续输入组合进行测试时。
- 当测试针对不同功能时,例如探索性测试。
状态转换图的四个组成部分
状态转换模型主要由以下四个部分组成。
1)各州 软件可能达到的程度。
2)过渡 从一个州到另一个州。
3)活动 触发转换的操作,例如关闭文件或取款。
4)行动 因转换而产生的结果,例如错误消息或获得现金。
状态转换图与状态转换表
表示或设计状态转换主要有两种方法:状态转换图和状态转换表。
| 方面 | 状态转换图 | 状态转换表 |
|---|---|---|
| 也叫 | 状态图/图表 | 状态表 |
| 代表性 | Boxes 表示状态,箭头表示状态转换 | 状态(行)和事件(列)网格 |
| 最适合识别 | 有效转换 | 无效转换 |
| 每个单元格显示 | - | 事件发生后所达到的状态 |
如何实现状态转换(示例)
示例 1:ATM 密码锁定
考虑一个 ATM 系统功能,如果用户连续三次输入错误密码,则账户将被锁定。
在这个系统中,如果用户在前三次尝试中输入了有效的密码,则登录成功。如果用户在第一次或第二次尝试中输入了无效密码,系统会提示用户重新输入密码。最后,如果用户第三次输入错误密码,账户将被冻结。
状态转换图(示例 1)
如图所示,每当用户输入正确的PIN码,系统就会进入“访问已授予”状态。如果用户输入错误的密码,系统会进行下一次尝试;如果第三次仍然输入错误密码,系统则会进入“账户已锁定”状态。
状态转换表(示例 1)
| 州 | 正确的 PIN | PIN码不正确 |
|---|---|---|
| S1)开始 | S5 | S2 |
| S2)第一次尝试 | S5 | S3 |
| S3)第二次尝试 | S5 | S4 |
| S4)第三次尝试 | S5 | S6 |
| S5) 已授予访问权限 | – | – |
| S6) 账户已封禁 | – | – |
在表格中,当用户输入正确的PIN码时,状态会转换到S5(已授权访问)。如果用户输入错误的密码,则会进入下一个状态,第三次输入错误后,状态会变为“账户已冻结”。
示例 2:航班预订登录
在航班预订登录界面,您必须输入正确的代理名称和密码才能访问。 航班预订申请.
状态转换图
该应用程序允许三次尝试;如果用户在第四次尝试中输入错误的密码,系统将自动关闭应用程序。
状态图可以帮助您确定要测试的有效转换。使用正确密码和错误密码进行测试是强制性的,并且对于 测试场景可以分别测试第二次、第三次或第四次登录尝试。您可以使用状态表来确定无效的系统转换。
在状态表中,所有有效状态列在左侧,触发这些状态的事件列在顶部。每个单元格显示事件发生时系统进入的状态。例如,在状态 S1 中,输入正确的密码会进入状态 S6(已授权访问);第一次输入错误的密码会进入状态 S3(第二次尝试)。同样,您也可以确定所有其他状态。
此方法会突出显示两种无效状态。假设您处于状态 S6(已登录),然后打开另一个航班预订实例,并为同一客服人员输入密码。需要测试系统对此场景的响应。
状态转换技术的优点和缺点
| 优势 | 缺点 |
|---|---|
| 提供系统行为的图形或表格表示,帮助ping 测试人员能够有效覆盖并理解系统。 | 并非每次都适用——例如,它不适用于非有限或非顺序的系统。 |
| 让测试人员验证所有条件是否都已涵盖,并且结果是否已记录。 | 需要定义所有可能的状态。这种方法适用于小型系统,但对于大型系统则失效,因为状态数量呈指数级增长。 |






