Testing Basado en Modelos para Genexus

From GXtest Wiki
Jump to: navigation, search


El testing basado en modelos (o MBT de su sigla en inglés Model Based Testing) es una técnica de testing que consiste en representar el comportamiento esperado con un modelo abstracto de la realidad. Luego, este modelo de alguna forma es ejecutado contra la aplicación, verificando así si el comportamiento esperado es el obtenido por la aplicación.

La idea es aplicar la filosofía que Genexus tiene para crear aplicaciones, para automatizar el testing. De esta forma obtener las mismas ventajas y mejorar la productividad del testing.

Contents

Usar modelos para testear

Por lo general cuando un tester se enfrenta a una aplicación o funcionalidad a testear, construye un modelo mental del mismo. Este modelo deberá tener información suficiente como para determinar si una respuesta es la esperada o no, ante cada una de las acciones que se pueden realizar sobre el sistema. La propuesta es materializar estos modelos en algo computable, de forma que una máquina sea capaz de interpretarlos y ejecutar pruebas a partir de ellos. A partir de un modelo que tenga la información de las acciones que se pueden ejecutar y de las respuestas a recibir, se pueden derivar automáticamente casos de prueba (y posteriormente ejecutar automáticamente) que cumplan un criterio determinado, como por ejemplo pasar por todas las pantallas, todos los ciclos que se puedan ejecutar, cubrir cierta cantidad de valores de entrada, etc.

Genexus parte de modelos que representan la realidad para construir aplicaciones. El MBT parte de modelos que representan la realidad y actúan como oráculos, para luego crear casos de prueba abstractos que pueden convertirse en tests automáticos.

Ventajas

Independencia de la Tecnología

MBT plantea implementar "adapters" (adaptadores) que sean capaces de abstraer a los modelos de la tecnología sobre la que se ejecuta. Esto da como resultado que los casos de prueba sean totalmente independientes de la tecnología sobre la que se ejecutan.

GXtest implementa la capa de adaptación para todas las tecnologías en las que genera Genexus, y de esa forma el tester sólo se concentra en diseñar los casos de prueba, sin importar en qué plataforma se generará la aplicación. Esto permite también:

  • Productividad
Se permite generar decenas o centenas de casos de prueba en forma automática a partir de los modelos definidos. Siguiendo criterios inteligentes de cubrimiento sobre los modelos se generan y seleccionan aquellos casos de prueba de mayor valor, descartando casos de prueba irrelevantes, que no aportan valor real al testing del producto.
El tiempo de modelado es menor que el tiempo de diseño manual de un test. Como consecuencia directa se presenta la detección temprana de ambiguedades en los requerimientos, así como la rápida respuesta ante cambios en los requerimientos. Esto último se presenta en el siguiente proceso de trabajo:
- Cambiar modelo -> Regenerar casos de pruebas -> Verificar impacto
  • Simplicidad
Es más simple y natural trabajar con modelos que trabajar con scripts (tal como pasa en el esquema tradicional de automatización de pruebas). Esto hace que no se requieran mayores conocimientos en informática para poder realizar estas tareas.
  • Mantenibilidad
Es más eficiente mantener modelos que están directamente asociados al modelo de la aplicación (KB de Genexus) que mantener scripts que no tienen una asociación automática con la aplicación.
  • Creatividad
Genexus logra que nos concentremos en las tareas más creativas de la construcción de la aplicación, dejando a Genexus las tareas automatizables.
En el MBT el objetivo es que el tester se pueda dedicar solo a describir el comportamiento que espera de la aplicación y que tareas como la generación de los casos de prueba y ejecución de los mismos se puedan hacer de manera automática.

Referencias

Harry Robinson: El gurú del MBT
En esta página podrán encontrar una serie amplia de artículos publicadas por Harry Robinson, donde explica el testing basado en modelos, mostrando incluso ejemplos en donde lo ha aplicado, en empresas donde ha trabajado, como por ejemplo Google, Microsoft, HP, etc.
Charla "Testing Basado en Modelos para Genexus"
Este artículo está basado en la charla expuesta por Abstracta en el Evento Genexus 2008, en el cual se presentó GXtest a la comunidad Genexus.