Difference between revisions of "Tutorial de GXtest Generator"

From GXtest Wiki
Jump to: navigation, search
(Completar los casos de prueba generados)
Line 1: Line 1:
 
[[category:Guías de GXtest]]
 
[[category:Guías de GXtest]]
  
== ¿Que es GXtest Generator? ==
+
Para empezar a automatizar con GXtest, es posible realizar la inicialización del proyecto y la KB de GXtest de manera automática.
 +
Utilizando la extensión GXtest Generator para GeneXus(Evolution 1 o mayor), tendrá disponibles algunas herramientas que serán de utilidad para trabajar con la KB y GXtest desde GeneXus.
  
GXtest Generator es una herramienta que nos ayuda a comenzar a automatizar pruebas con GXtest, generando de forma automática casos de prueba. Para esto se instala como extensión en GeneXus Ev1 o Ev2.
+
GXtest Generator le ayuda a comenzar a automatizar pruebas con GXtest, generando de forma automática casos de prueba e inicializando el entorno de trabajo para GXtest.
  
* ¿En que me ayuda este generador automático?
+
Si aún no tiene la extensión instalada en GeneXus, puede revisar el paso 3 de la [[Guias_de_Instalacion]] de GXtest, o bajar la extensión desde [http://marketplace.genexus.com/product.aspx?gxtestextension GeneXus Marketplace].
Una vez instalada la extensión en GeneXus, basta con hacer clic en un botón para generar un conjunto de casos de prueba que testeen aproximadamente el 80% de la aplicación.
+
  
* ¿Qué testean los casos de prueba automáticos?
+
Para realizar este tutorial se utiliza la KB [[http://open.genexusserver.com/xev1/home.aspx?AjaxSample AjaxSample]] de los samples de GeneXus.
Se genera un caso de prueba para cada entidad de la aplicación, el cual probará el Alta, Baja, Modificación, Visualización y Búsqueda de una instancia de dicha entidad. Por ejemplo, para la transacción Client, se dará de alta un cliente, se lo buscará en el "Trabajar Con" asociado, se lo modificará, y finalmente se lo dará de baja.
+
  
* ¿Para qué más me sirven estos casos de prueba?
 
Si bien sirven para probar el ABM (Alta, Baja y Modificación) de todas las entidades de la KB, la principal finalidad de dichos casos de prueba es utilizarlos como base para comenzar la automatización de pruebas sobre una aplicación.
 
Dependiendo del tipo de aplicación, los ABM de datos pueden significar un 80% de la totalidad de las funcionalidades de la aplicación. Por ello, generar estas pruebas de forma automática implica reducir los tiempos de automatización de gran forma, pudiendo utilizar ese tiempo en extender las pruebas generadas, o realizar nuevos casos de prueba, utilizando incluso los ya generados.
 
  
== Guía de Instalación ==  
+
== Paso 1: Inicialización automática  ==  
  
Antes de comenzar se debe tener instalado y activado GXtest en algún PC, de modo de poder ejecutar las pruebas (Ver [[Installation guide]] de GXtest).
+
Al abrir GeneXus, aparecerá un nuevo menú GXtest que tendrá el ítem Autogenerate TestCases. Dicha opción de menú abre la ventana de generación automática de GXtest Generator.  
  
GXtest Generator se distribuye en un instalador, que instala como una extensión en GeneXus Ev1 o Ev2.
+
[[Image:GXMenuGXtest.png|center]]
Durante la instalación:
+
* Se deberá indicar el path de la instalación de GeneXus donde se quiere instalar la extensión. Puede aplicarla en más de una instalación de GeneXus (si tuviera varias).
+
* Se deberá proporcionar una base de datos de GXtest, donde la extensión guardará los casos de prueba generados. La versión de GXtest instalada debe ser 1.2.0 +, y además debe coincidir con la versión de la extensión.
+
Las versiones soportadas para la base de datos son Microsoft SQLServer 2005 o mayor, pudiendo ser una Express Edition.
+
  
== GXtest Generator en GeneXus==
+
Allí se verá información de testing asociada a la KB que está abierta, y estará disponible el botón para iniciar el proceso: Generate tests.
  
Al abrir GeneXus, aparecerá un nuevo menú GXtest que tendrá el ítem Autogenerate TestCases. Dicha opción de menú abre la ventana de generación automática de GXtest Generator.
+
En caso de ser necesario, antes de comenzar a generar los casos de prueba es posible configurar las opciones de generación que la extensión provee (Ver [[Generación automática: GXtest Generator#Opciones de Configuración]]), pero por ahora las opciones por defecto le servirán.
Allí se verá información de testing asociada a la KB que está abierta (si es que ya generamos un proyecto en GXtest), y estará disponible el botón para iniciar el proceso: Generate tests.
+
En caso de ser necesario, antes de comenzar a generar los casos de prueba es posible configurar las opciones de generación que la extensión provee (Ver [[Manual de Usuario de GXtest Generator]]), pero por ahora las opciones por defecto nos servirán.
+
  
== Proceso de generación automática ==
+
Haciendo clic en el botón, comenzará el proceso de generación automática, y se mostrará el avance del mismo en la pantalla.
 +
Una vez finalizado el proceso, dejará creado un proyecto en GXtest con su respectiva KB, e importará todos los casos de prueba generados automáticamente.
  
Para iniciar el proceso de generación basta con hacer clic en el botón Generate tests.
+
Los casos de prueba generados automáticamente cubren dos tipos de pruebas:
Una vez finalizado el proceso, dejará creado un proyecto en GXtest, e importará todos los casos de prueba generados. Todo proyecto en GXtest tienen asociado una o varias KBs GeneXus, por lo que también se importará la KB abierta en GeneXus de manera automática.
+
* Para cada transacción, se genera un caso de prueba que probará crear la entidad, buscarla, visualizarla, actualizarla, y eliminarla.
 +
Por ejemplo, si tuviera una transacción Producto en la KB, se generaría un juego de casos de prueba de forma automática que siguiera el siguiente flujo:
  
== Utilizando GXtest Designer  ==
 
Terminada la generación automática, podemos ver en GXtest Designer el proyecto y los casos de prueba generados.
 
Luego de abrir GXtest Designer, abrimos el proyecto en Project -> Open Project, y seleccionamos el proyecto generado con el nombre de la KB y el sufijo "_Auto".
 
  
En el árbol de la derecha podemos ver los casos de prueba importados.
+
[[Image:EjemploTCauto.png|center]]
 +
 
 +
 
 +
* Para cada WebPanel que no sea autogenerado(1) se generará un caso de prueba básico que ingrese valores en todos los campos editables y presione los botones.
 +
 
 +
(1) Los webpanels autogenerados son los que genera GeneXus de forma automática. Un ejemplo de esto son los prompts y las pantallas de los patrones WorkWith.
 +
 
 +
Puede visitar [[Manual de Usuario de GXtest Generator]] para ver más información sobre la generación automática.
 +
 
 +
== Paso 2: Ejecución de las pruebas generadas  ==
 +
 
 +
Terminada la generación automática, se puede ver en GXtest Designer el proyecto y los casos de prueba generados.
 +
Luego de abrir GXtest Designer, abrir el proyecto en Project -> Open Project, y seleccionar el proyecto generado con el nombre de la KB y el sufijo "_Auto".
 +
Por ejemplo, para la KB AjaxSample, el nombre del proyecto generado de manera automáticamente será AjaxSample_Auto.
 +
 
 +
En el árbol de la derecha es posible ver los casos de prueba generados e importados.
 +
 
 
  [[Image: Tctree.PNG|center]]
 
  [[Image: Tctree.PNG|center]]
  
En la KB de ejemplo que utilizamos, las entidades para las que se generaron las pruebas son City, Client, Country, Invoice y Product.
 
Para cada una de estas entidades, se creó un caso de prueba principal (por ejemplo City), y otros casos de prueba secundarios que realizan las diferentes operaciones (Alta: City_Insert, Baja: City_Delete, etc), los cuales están incluídos en el primero.
 
  
Este es un ejemplo de como se vería un caso de prueba principal (por ejemplo City).
+
Todo esto se generó de manera automática a partir del clic realizado en GeneXus.
 +
 
 +
En la KB de ejemplo que se utilizó (AjaxSample), las entidades para las que se generaron las pruebas son City, Client, Country, Invoice y Product.
 +
Para cada una de estas entidades, se creó un caso de prueba principal (por ejemplo City), y otros casos de prueba secundarios que realizan las diferentes operaciones (Creación: City_Insert, Eliminación: City_Delete, etc), los cuales son utilizados por el primero.
 +
 
 +
Este es un ejemplo de como se vería un caso de prueba City (Crea, busca, visualiza, modificar, y elimina una Ciudad).
 +
 
 
  [[Image: TCMain.PNG|center]]
 
  [[Image: TCMain.PNG|center]]
 +
  
 
Con el Test Case abierto, podemos ejecutarlo en el navegador, presionando el botón ejecutar (o Shift F5) que se encuentra en la barra de herramientas:
 
Con el Test Case abierto, podemos ejecutarlo en el navegador, presionando el botón ejecutar (o Shift F5) que se encuentra en la barra de herramientas:
Line 53: Line 63:
 
[[Image:ejecutar.JPG|center]]
 
[[Image:ejecutar.JPG|center]]
  
Esto provocará que se abra el navegador y se comiencen a reproducir las acciones que realizamos nosotros previamente. Tengan en cuenta que si no está dada de alta en la aplicación el cliente Abstracta, la ejecución fallará.
+
Esto provocará que se abra el navegador, y se comiencen a ejecutar las acciones que contiene la definición de la prueba.  
 +
 
 +
En la siguiente imagen se muestran en GXtest los resultados de la prueba:
  
En la siguiente imagen vemos como nos muestra GXtest los resultados:
 
  
 
[[Image: resultadosVerCliente.JPG|center]]
 
[[Image: resultadosVerCliente.JPG|center]]
  
  
 +
== Paso 3: Agregar o modificar los datos  ==
 +
 +
 +
== Crear un nuevo caso de prueba ==
 +
 +
A partir de aquí se tiene el entorno de trabajo de GXtest inicializado, y es posible seguir agregando nuevos casos de prueba o reutilizando los ya creados.
 +
 +
Por ejemplo, puede ser interesante crear un caso de prueba mas complejo que genere un nuevo producto, luego un nuevo cliente, una factura para ese cliente y ese producto, y luego intentar borrar el cliente.
 +
 +
[[Image:TCComplejoAuto.png|center]]
 +
 +
 +
Si quisiera generar este caso de prueba complejo, puedo reutilizar los casos de prueba ya generados de forma automática para cada uno de esos pasos, e incluirlos en un único caso de prueba.
 +
 +
[[Image:TCComplejoAuto_GXtest.png|center]]
 +
 +
 +
Para esto, puede crear un nuevo caso de prueba en el menú "Test Cases" -> New. Luego ingresar el nombre del caso de prueba, por ejemplo "Factura".
 +
Para incluir los casos de prueba ya generados y utilizarlos dentro de "Factura", puede arrastrar de la barra de objetos un caso de prueba al nuevo caso de prueba en blanco.
 +
 +
[[Image:ToolboxGXtest.png|center]]
 +
 +
 +
Aparecerá una ventana para seleccionar el caso de prueba que se desea incluir. Escribir Client_Insert en el filtro y seleccionarlo cuando aparezca en la grilla. Realizar lo mismo con el resto de los casos de prueba (Product_Insert, etc).
 +
 +
Por último, es necesario conectarlos con aristas de forma de completar el flujo mostrado en el ejemplo.
 +
 +
Listo. El caso de prueba está listo para ser ejecutado.
 +
 +
 +
== Como seguir? ==
  
== Completar los casos de prueba generados ==
+
Es recomendable continuar el tutorial en [[Empezando con GXtest]] para completar el proyecto, y por ejemplo grabar un caso de prueba utilizando el navegador.
ToDo:
+
* Completar un TC agregando algunos comandos y validaciones.
+
* Generar un nuevo TC incluyendo algunos TC generados automáticamente.
+

Revision as of 16:27, 21 May 2013


Para empezar a automatizar con GXtest, es posible realizar la inicialización del proyecto y la KB de GXtest de manera automática. Utilizando la extensión GXtest Generator para GeneXus(Evolution 1 o mayor), tendrá disponibles algunas herramientas que serán de utilidad para trabajar con la KB y GXtest desde GeneXus.

GXtest Generator le ayuda a comenzar a automatizar pruebas con GXtest, generando de forma automática casos de prueba e inicializando el entorno de trabajo para GXtest.

Si aún no tiene la extensión instalada en GeneXus, puede revisar el paso 3 de la Guias_de_Instalacion de GXtest, o bajar la extensión desde GeneXus Marketplace.

Para realizar este tutorial se utiliza la KB [AjaxSample] de los samples de GeneXus.


Contents

Paso 1: Inicialización automática

Al abrir GeneXus, aparecerá un nuevo menú GXtest que tendrá el ítem Autogenerate TestCases. Dicha opción de menú abre la ventana de generación automática de GXtest Generator.

GXMenuGXtest.png

Allí se verá información de testing asociada a la KB que está abierta, y estará disponible el botón para iniciar el proceso: Generate tests.

En caso de ser necesario, antes de comenzar a generar los casos de prueba es posible configurar las opciones de generación que la extensión provee (Ver Generación automática: GXtest Generator#Opciones de Configuración), pero por ahora las opciones por defecto le servirán.

Haciendo clic en el botón, comenzará el proceso de generación automática, y se mostrará el avance del mismo en la pantalla. Una vez finalizado el proceso, dejará creado un proyecto en GXtest con su respectiva KB, e importará todos los casos de prueba generados automáticamente.

Los casos de prueba generados automáticamente cubren dos tipos de pruebas:

  • Para cada transacción, se genera un caso de prueba que probará crear la entidad, buscarla, visualizarla, actualizarla, y eliminarla.

Por ejemplo, si tuviera una transacción Producto en la KB, se generaría un juego de casos de prueba de forma automática que siguiera el siguiente flujo:


EjemploTCauto.png


  • Para cada WebPanel que no sea autogenerado(1) se generará un caso de prueba básico que ingrese valores en todos los campos editables y presione los botones.

(1) Los webpanels autogenerados son los que genera GeneXus de forma automática. Un ejemplo de esto son los prompts y las pantallas de los patrones WorkWith.

Puede visitar Manual de Usuario de GXtest Generator para ver más información sobre la generación automática.

Paso 2: Ejecución de las pruebas generadas

Terminada la generación automática, se puede ver en GXtest Designer el proyecto y los casos de prueba generados. Luego de abrir GXtest Designer, abrir el proyecto en Project -> Open Project, y seleccionar el proyecto generado con el nombre de la KB y el sufijo "_Auto". Por ejemplo, para la KB AjaxSample, el nombre del proyecto generado de manera automáticamente será AjaxSample_Auto.

En el árbol de la derecha es posible ver los casos de prueba generados e importados.

Tctree.PNG


Todo esto se generó de manera automática a partir del clic realizado en GeneXus.

En la KB de ejemplo que se utilizó (AjaxSample), las entidades para las que se generaron las pruebas son City, Client, Country, Invoice y Product. Para cada una de estas entidades, se creó un caso de prueba principal (por ejemplo City), y otros casos de prueba secundarios que realizan las diferentes operaciones (Creación: City_Insert, Eliminación: City_Delete, etc), los cuales son utilizados por el primero.

Este es un ejemplo de como se vería un caso de prueba City (Crea, busca, visualiza, modificar, y elimina una Ciudad).

TCMain.PNG


Con el Test Case abierto, podemos ejecutarlo en el navegador, presionando el botón ejecutar (o Shift F5) que se encuentra en la barra de herramientas:

Ejecutar.JPG

Esto provocará que se abra el navegador, y se comiencen a ejecutar las acciones que contiene la definición de la prueba.

En la siguiente imagen se muestran en GXtest los resultados de la prueba:


ResultadosVerCliente.JPG


Paso 3: Agregar o modificar los datos

Crear un nuevo caso de prueba

A partir de aquí se tiene el entorno de trabajo de GXtest inicializado, y es posible seguir agregando nuevos casos de prueba o reutilizando los ya creados.

Por ejemplo, puede ser interesante crear un caso de prueba mas complejo que genere un nuevo producto, luego un nuevo cliente, una factura para ese cliente y ese producto, y luego intentar borrar el cliente.

TCComplejoAuto.png


Si quisiera generar este caso de prueba complejo, puedo reutilizar los casos de prueba ya generados de forma automática para cada uno de esos pasos, e incluirlos en un único caso de prueba.

TCComplejoAuto GXtest.png


Para esto, puede crear un nuevo caso de prueba en el menú "Test Cases" -> New. Luego ingresar el nombre del caso de prueba, por ejemplo "Factura". Para incluir los casos de prueba ya generados y utilizarlos dentro de "Factura", puede arrastrar de la barra de objetos un caso de prueba al nuevo caso de prueba en blanco.

ToolboxGXtest.png


Aparecerá una ventana para seleccionar el caso de prueba que se desea incluir. Escribir Client_Insert en el filtro y seleccionarlo cuando aparezca en la grilla. Realizar lo mismo con el resto de los casos de prueba (Product_Insert, etc).

Por último, es necesario conectarlos con aristas de forma de completar el flujo mostrado en el ejemplo.

Listo. El caso de prueba está listo para ser ejecutado.


Como seguir?

Es recomendable continuar el tutorial en Empezando con GXtest para completar el proyecto, y por ejemplo grabar un caso de prueba utilizando el navegador.