Pruebas de transición de estado con ejemplo

⚡ Resumen inteligente

Las pruebas de transición de estados son una técnica de caja negra que valida cómo una aplicación cambia de estado a medida que cambian las condiciones de entrada. Este tutorial explica las cuatro partes del diagrama, la diferencia entre diagramas de estados y tablas, y proporciona ejemplos prácticos de cajeros automáticos e inicios de sesión para los evaluadores.

  • 🔄 Idea principal: Esta técnica comprueba el comportamiento del sistema cuando la misma entrada produce diferentes salidas en función de eventos previos (un sistema de estados finitos).
  • 🧩 Cuatro bloques de construcción: Cada modelo se construye a partir de estados, transiciones, eventos y acciones.
  • 🗺️ Diagrama vs. Tabla: Los diagramas muestran las transiciones válidas; las tablas exponen las transiciones no válidas.
  • 🏧 Ejemplos prácticos: El bloqueo del PIN del cajero automático y el inicio de sesión para la reserva de vuelos demuestran una cobertura real.
  • 🤖 Habilitación de IA: Las herramientas de IA generan automáticamente modelos de estado a partir de los requisitos e identifican las transiciones que faltan o que no son válidas.

Pruebas de transición estatal — Estados

¿Qué son las pruebas de transición estatal?

Pruebas de transición estatal Es una técnica de prueba de caja negra en la que los cambios en las condiciones de entrada provocan cambios de estado o de salida en la aplicación bajo prueba (AUT). Permite analizar el comportamiento de una aplicación ante diferentes condiciones de entrada, y los evaluadores pueden proporcionar valores de entrada positivos y negativos mientras registran el comportamiento del sistema.

Se basa en el modelo sobre el que se construyen el sistema y las pruebas. Cualquier sistema en el que se obtiene una salida diferente para la misma entrada, dependiendo de lo que haya ocurrido antes, es un sistema de estados finitos. La técnica de prueba de transición de estados es útil cuando se necesita probar diferentes transiciones del sistema.

¿Cuándo utilizar las pruebas de transición de estado?

  • Cuando un evaluador está probando la aplicación con un conjunto finito de valores de entrada.
  • Cuando el evaluador está probando una secuencia de eventos que ocurren en la aplicación bajo prueba, permite verificar el comportamiento de la aplicación para una secuencia de valores de entrada.
  • Cuando el sistema bajo prueba depende de eventos o valores del pasado.

Cuándo no confiar en las pruebas de transición de estado

  • Cuando la prueba no se realiza para combinaciones de entradas secuenciales.
  • Cuando las pruebas se centran en diferentes funcionalidades, como en las pruebas exploratorias.

Cuatro partes de un diagrama de transición de estado

El modelo de transición de estados consta de cuatro componentes principales, que se describen a continuación.

1) Estados que el software podría alcanzar.

Pruebas de transición estatal — Estados

2) Transición de un estado a otro.

Pruebas de transición de estado — Transición

3) eventos que desencadenan una transición, como cerrar un archivo o retirar dinero.

Pruebas de transición de estado — Eventos

4) Acciones que resultan de una transición, como un mensaje de error o la entrega de dinero en efectivo.

Pruebas de transición de estado: acciones

Diagrama de transición de estados frente a tabla de transición de estados

Existen dos formas principales de representar o diseñar la transición de estados: el diagrama de transición de estados y la tabla de transición de estados.

Aspecto Diagrama de transición de estado Tabla de transición de estado
También llamado Diagrama/Gráfico de estados Tabla de estados
Representación Boxes para estados, flechas para transiciones Cuadrícula de estados (filas) y eventos (columnas)
Mejores para identificar Transiciones válidas Transiciones no válidas
Cada celda muestra - El estado alcanzado después de que ocurre un evento

Cómo realizar una transición de estado (ejemplos)

Ejemplo 1: Bloqueo del PIN del cajero automático

Consideremos una función de un sistema de cajero automático en la que, si el usuario introduce una contraseña incorrecta tres veces, la cuenta se bloquea.

En este sistema, si el usuario introduce una contraseña válida en cualquiera de los tres primeros intentos, inicia sesión correctamente. Si introduce una contraseña incorrecta en el primer o segundo intento, se le pide que la vuelva a introducir. Finalmente, si introduce la contraseña incorrecta por tercera vez, la cuenta se bloquea.

Diagrama de transición de estados (Ejemplo 1)

Diagrama de transición de estado del PIN del cajero automático

En el diagrama, cuando el usuario introduce el PIN correcto, pasa al estado de Acceso concedido. Si introduce la contraseña incorrecta, pasa al siguiente intento, y si lo hace una tercera vez, se alcanza el estado de Cuenta bloqueada.

Tabla de transición de estados (Ejemplo 1)

Estado PIN correcto PIN incorrecto
S1) Inicio S5 S2
S2) 1er intento S5 S3
S3) Segundo intento S5 S4
S4) Tercer intento S5 S6
S5) Acceso concedido
S6) Cuenta bloqueada

En la tabla, cuando el usuario introduce el PIN correcto, el estado cambia a S5 (Acceso concedido). Si el usuario introduce una contraseña incorrecta, pasa al siguiente estado, y tras el tercer intento fallido, llega al estado de Cuenta bloqueada.

Ejemplo 2: Inicio de sesión para reserva de vuelo

En la pantalla de inicio de sesión de reserva de vuelo, debe ingresar el nombre de agente y la contraseña correctos para acceder a la solicitud de reserva de vuelo.

Gráfico de transición de estado de reserva de vuelo

Gráfico de transición de estado

La aplicación permite tres intentos; si el usuario introduce la contraseña incorrecta en el cuarto intento, el sistema cierra la aplicación automáticamente.

El gráfico de estado le ayuda a determinar las transiciones válidas que deben probarse. Es obligatorio probar tanto con la contraseña correcta como con una incorrecta, y para el escenarios de pruebaSe podría probar el inicio de sesión en el segundo, tercer o cuarto intento. Puede utilizar una tabla de estados para determinar las transiciones del sistema que no sean válidas.

Tabla de transición de estados de reserva de vuelos

En una tabla de estados, todos los estados válidos se muestran a la izquierda y los eventos que los provocan en la parte superior. Cada celda indica el estado al que pasa el sistema cuando ocurre el evento. Por ejemplo, en el estado S1, una contraseña correcta lleva al estado S6 (Acceso concedido); una contraseña incorrecta en el primer intento lleva al estado S3 (Segundo intento). De igual forma, se pueden determinar todos los demás estados.

Mediante este método se resaltan dos estados no válidos. Supongamos que se encuentra en el estado S6 (ya ha iniciado sesión) y abre otra instancia de reserva de vuelo e introduce las contraseñas del mismo agente. Es necesario probar la respuesta del sistema ante este escenario.

Ventajas y desventajas de la técnica de transición estatal

Ventajas Desventajas
Proporciona una representación gráfica o tabular del comportamiento del sistema, ayudaping El evaluador cubre y comprende el sistema de manera efectiva. No siempre es fiable; por ejemplo, no es adecuado para sistemas que no son finitos o secuenciales.
Permite al evaluador verificar que se cumplen todas las condiciones y que se registran los resultados. Requiere definir todos los estados posibles. Esto funciona para sistemas pequeños, pero falla para sistemas más grandes debido al crecimiento exponencial del número de estados.

Preguntas Frecuentes

Las pruebas de transición de estados son una técnica de caja negra que verifica cómo un sistema transita entre estados a medida que cambian las condiciones de entrada. Son adecuadas para sistemas de estados finitos, donde una misma entrada puede producir diferentes salidas dependiendo de eventos previos.

Las cuatro partes son: Estados (condiciones en las que puede encontrarse el software), Transiciones (movimiento entre estados), Eventos (desencadenantes que provocan una transición) y Acciones (resultados de una transición, como un mensaje o una salida).

Un diagrama de transición de estados utiliza cajas y flechas y es ideal para identificar transiciones válidas. Una tabla de estados enumera los estados en relación con los eventos en una cuadrícula y es ideal para detectar transiciones no válidas.

Evítalo cuando las entradas no sean secuenciales o al realizar pruebas exploratorias de diversas funcionalidades. También falla en sistemas muy grandes, ya que el número de estados crece exponencialmente.

La cobertura de 0 interruptores prueba cada transición válida una sola vez. La cobertura de 1 interruptor prueba cada par de transiciones consecutivas. Una mayor cobertura de interruptores detecta más defectos relacionados con la secuencia, pero requiere más casos de prueba.

Se trata de una técnica de caja negra. Los casos de prueba se derivan del comportamiento externo esperado de los estados y las transiciones, sin necesidad de conocer el código fuente interno de la aplicación.

Las herramientas de IA leen los requisitos y construyen automáticamente modelos de estado, para luego generar casos de prueba que cubren rutas válidas y transiciones de aristas. Esto reduce el esfuerzo de modelado manual y mejora la cobertura de secuencias complejas.

Sí. La IA puede analizar un modelo de estado y señalar transiciones faltantes, inalcanzables o inválidas comparándolo con los patrones de comportamiento esperados.ping Los evaluadores detectan deficiencias que a menudo pasan desapercibidas en las revisiones manuales de tablas.

Resumir este post con: