Difference between revisions of "Testing Basado en Modelos para Genexus"

From GXtest Wiki
Jump to: navigation, search
m (Reverted edits by Amyjumyhawu (Talk) to last version by Ftoledo)
(Usar modelos para testear)
Line 6: Line 6:
  
 
== Usar modelos para testear ==
 
== Usar modelos para testear ==
Por lo general cuando un tester se enfrenta a una aplicación a testear, este se arma un modelo mental el cual tiene información suficiente como para determinar cuál es la respuesta esperada ante cada una de las acciones que se pueden realizar sobre el sistema. La propuesta es materializar estos modelos, y transformarlos en algo computable, como para que una máquina sea capaz de interpretar estos modelos y ejecutar las pruebas por nosotros. 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 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.
+
Por lo general cuando un tester se enfrenta a una aplicación o funcionalidad a testear, construye un modelo mental. 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 a partir modelos que representan la realidad permite construir aplicaciones. El MBT a partir de modelos que representan la realidad y la aplicación a testear, permiten crear casos de prueba abstractos, que luego se pueden convertir en ejecutables.
+
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 ==
 
== Ventajas ==

Revision as of 15:28, 2 July 2013


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. 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 mas 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

Tiempo de modelado < tiempo de diseño manual de un test.

Detección temprana de ambiguedades en los requerimientos.

Rápida respuesta al cambiar requerimientos:

- 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.