¿Qué son las pruebas basadas en modelos?

¿Qué son las pruebas basadas en modelos?

Las pruebas basadas en modelos son una técnica de prueba de software en la que el comportamiento en tiempo de ejecución del software bajo prueba se compara con las predicciones realizadas por un modelo. Un modelo es una descripción del comportamiento de un sistema. El comportamiento se puede describir en términos de secuencias de entrada, acciones, condiciones, salida y flujo de datos de entrada a salida. Debe ser prácticamente comprensible y reutilizable; compartible debe tener una descripción precisa del sistema bajo prueba.

Hay numerosos modelos disponibles y describen diferentes aspectos del comportamiento del sistema. Ejemplos del modelo son:

  • Flujo de datos
  • Flujo de control
  • Gráficos de dependencia
  • Tablas de decisiones
  • Máquinas de transición de estados

Las pruebas basadas en modelos describen cómo se comporta un sistema en respuesta a una acción (determinada por un modelo). Proporcione acciones y vea si el sistema responde según las expectativas.

Es un método formal ligero para validar un sistema. Esta prueba se puede aplicar tanto a pruebas de hardware como de software.

Ejemplo de prueba basada en modelos

Pruebas basadas en modelos

El modelo anterior explica el enfoque simplificado de escribir poesía en un bloc de notas y las posibles acciones relacionadas con cada paso. Para todas y cada una de las acciones (como comenzar, ingresar un poema, guardar), Caso de prueba Se pueden generar datos y se puede verificar el resultado.

Tipos de MBT

Hay dos tipos de marcos de prueba basados ​​​​en modelos:

  1. Offline/a priori: Generación de Test Suites antes de ejecutarlo. Un conjunto de pruebas no es más que una colección de casos de prueba.
  2. En línea/sobre la marcha: Generación de Suites de Pruebas durante la ejecución de las pruebas

Diferentes modelos en pruebas

Para entender el MBT es necesario entender algunos de los modelos que se explican a continuación. Repasémoslos uno por uno:

Máquinas de estado finito

Este modelo ayuda a los evaluadores a evaluar el resultado según la entrada seleccionada. Diversas combinaciones de las entradas pueden dar como resultado un estado correspondiente del sistema.

El sistema tendrá un estado específico y un estado actual, que se rige por un conjunto de entradas proporcionadas por los evaluadores.

Considere el ejemplo-

Existe un sistema que permite a los empleados iniciar sesión en la aplicación. Ahora, el estado actual del empleado es "Fuera" y se convierte en "Adentro" una vez que inicia sesión en el sistema. En el estado "en", un empleado puede ver, imprimir y escanear documentos en el sistema.

Máquinas de estado finito

Gráficos estatales

Es una extensión de la máquina de estados finitos y se puede utilizar para sistemas complejos y en tiempo real. Los diagramas de estados se utilizan para describir diversos comportamientos del sistema. Tiene un número definido de estados. El comportamiento del sistema se analiza y se representa en forma de eventos para cada estado.

Por ejemplo -

Los defectos se generan en la herramienta de gestión de defectos con el estado Nuevo. Una vez que los desarrolladores lo solucionan, debe cambiarse al estado Corregido. Si un defecto no se soluciona, cambie el estado a Reabrir. Los gráficos estatales deben diseñarse de tal manera que requieran un evento para cada estado.

Gráficos estatales

Lenguaje unificado de modelado UML)

Lenguaje de modelado unificado (UML) es un lenguaje de modelado estandarizado de propósito general. UML incluye un conjunto de técnicas de notación gráfica para crear modelos visuales que pueden describir el comportamiento muy complicado del sistema.

UML tiene notaciones como:

  • Actividades
  • Actores
  • Procesos de negocio
  • Componentes de la bolsa de equipaje
  • Lenguaje de programación

Lenguaje de modelado unificado

Desafíos de las pruebas basadas en modelos

La implementación de MBT en cualquier organización obviamente requiere una gran cantidad de inversión y esfuerzo. A continuación se enumeran las desventajas de MBT en Ingeniería de Software.

  • Habilidades necesarias requeridas en los probadores
  • El tiempo de la curva de aprendizaje será más
  • Difícil entender el modelo en sí.

Ventajas de las pruebas de modelos

Los siguientes son los beneficios del MBT:

  • Fácil mantenimiento de casos/suites de pruebas
  • Reducción de costos
  • Cobertura de prueba mejorada
  • Puede ejecutar diferentes pruebas en n número de máquinas.
  • Detección temprana de defectos
  • Aumento del número de defectos
  • Ahorro de tiempo
  • Mejora de la satisfacción laboral del evaluador

Conclusión

Los evaluadores construyen modelos mentales de todos modos durante sus pruebas. Esos modelos mentales se pueden transformar en modelos sobre papel. Esto ayuda a los evaluadores a lograr legibilidad y reutilización.

Las pruebas basadas en modelos son un nuevo enfoque para pruebas de software. La evolución de las pruebas de software se muestra a continuación:

Evolución de las pruebas de software