Testing Basado en Modelos para Genexus
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 (Model Based Testing) 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
- Podemos generar cientos de casos de prueba en forma automática a partir de los modelos definidos. Siguiendo criterios inteligentes de cubrimiento sobre los modelos podemos generar y seleccionar casos de prueba interesantes, y no simplemente tener miles de casos de prueba irrelevantes.
- Simplicidad
- Es más simple 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 factible 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.
- Modelar
- 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
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.