Construyendo una herramienta para pruebas unitarias en GeneXus

Preview:

DESCRIPTION

Presentación del proyecto GxUnit en la reunión del Grupo de Usuarios Genexus Montevideo, en Noviembre 2008.

Citation preview

Construyendo una Construyendo una herramienta para pruebas herramienta para pruebas

unitarias en GeneXusunitarias en GeneXus©©

Enrique Almeida Enrique Almeida ealmeida@concepto.com.uyealmeida@concepto.com.uyAlejandro AraújoAlejandro Araújo alar758@gmail.comalar758@gmail.comUruguay Larre Borges Uruguay Larre Borges ularre@genexusconsulting.comularre@genexusconsulting.com

Proyecto GxUnitProyecto GxUnit

Reunión 1/11/2008 - GUG Montevideo - Uruguay

Agenda

• Problema• GxUnit• Demostración• Hacia el futuro

Reunión 1/11/2008 - GUG Montevideo - Uruguay

• ¿Cómo se efectúan las pruebas unitarias en GeneXus?

Desarrollo

ProblemaProblema

Pruebas Unitarias

Reunión 1/11/2008 - GUG Montevideo - Uruguay

• Crear herramienta para prueba Unitaria • Fácil de usar • Detectar errores muy temprano• Hecha por la comunidad

Proyecto GxUnitProyecto GxUnit

Objetivos

Reunión 1/11/2008 - GUG Montevideo - Uruguay

Evolución

“Proyectode Ingeniería de

Software”. UDELAR

Proyecto GxUnitProyecto GxUnit

Características

• Dos equipos: 14 estudiantes c/u

• Dos soluciones independientes

• Rol cumplido: CLIENTES

Reunión 1/11/2008 - GUG Montevideo - Uruguay

Alcance de objetos a probar:

Prueba parcial de procedures

¿Qué obtuvimos? GxUnitGxUnit

Reunión 1/11/2008 - GUG Montevideo - Uruguay

Reunión 1/11/2008 - GUG Montevideo - Uruguay

GxUnit 1GxUnit 1

GxUnit 1GxUnit 1

Procedure verificador

Resultados esperados

Características: Casos de Prueba

Parte para definir casos de prueba

Parm(in:entrada,out:salida)

Grilla para edición de la tabla con los casos de prueba

GxUnit 1GxUnit 1Características: Bitácora

Verde=SatisfactorioRojo=Fallido

Resultados esperados vs. obtenidos

Características: Casos de Prueba

GxUnit 1GxUnit 1

Parámetros SDT

Resumen GxUnit 1GxUnit 1

Reunión 1/11/2008 - GUG Montevideo - Uruguay

• Genera un procedure verificador por cada objeto verificable • Se implementan como WS

• Crea una “parte” nueva para todo procedure

• No presenta restricciones en la cantidad de parámetros y admite SDT

• Almacena los datos y los resultados en archivos XML

• Permite reconstruir los casos de prueba ante cambios en la regla parm del procedure a verificar

• Ofrece una primera aproximación a la verificación de la BD

Reunión 1/11/2008 - GUG Montevideo - Uruguay

GxUnit 2GxUnit 2

GxUnit 2GxUnit 2Características: Objeto Caso de Prueba (TestSet)Objeto

Objeto “conjunto de casos de prueba”

GxUnit 2GxUnit 2Características: Objeto Caso de Prueba (TestSet)

Extensible mediante

procedimientos verificadores del

usuario (PVU)

Grilla para edición de la tabla con los casos de prueba

Procedure a probar

GxUnit 2GxUnit 2Características: Bitácora

Verde=SatisfactorioRojo=Fallido

Resultados esperados vs. obtenidos

GxUnit 2GxUnit 2Características: Bitácora

Resultados esperados vs. obtenidos

Resultados PVUs

Resumen GxUnit 2GxUnit 2

Reunión 1/11/2008 - GUG Montevideo - Uruguay

• Genera un único objeto verificador que utiliza invocación dinámica con parámetros dinámicos

• Se implementa como WS • Prototipo solo acepta 2 parámetros de entrada y 1 de salida

• Almacena los resultados en archivos XML

• Permite reconstruir los casos de prueba ante cambios en la regla parm del procedure a verificar

• Extensible mediante PVU’s

• Bitácora con diferentes niveles de granularidad

GxUnit en Acción

Demostraciónhttp://www.screencast.com/users/EAlmeida

• Procedure a probar: División • Parámetros: Dividendo, Divisor, Resultado• Objeto para definir los casos de prueba• Tabla de 3 entradas (satisfactorio, falla, imposible)

• Se agrega un parámetro• Se reconstruye el caso de prueba

• Propuesta de verificación de base de datos

• Integrar a nuevos colaboradores • Mejorar los prototipos• Pruebas de campo • Integrar los prototipos• Nuevo alcance

¿Qué nos falta?¿Qué nos falta?Hacia el futuroHacia el futuro

Reunión 1/11/2008 - GUG Montevideo - Uruguay

¿Qué nos falta? Nuevo alcance

• Editores (incluyendo tipos de datos estructurados –SDT-)

• Verificación de la base de datos• Mocks• Business Components• DataProviders y DataSelectors• Objetos con UI (?)

Hacia el futuroHacia el futuro

Reunión 1/11/2008 - GUG Montevideo - Uruguay

• Vínculos

• Proyecto http://www.assembla.com/gxextensions• Videos http://www.screencast.com/users/EAlmeida

• Agradecemos

• A los integrantes de los grupos GxUnit 1 y 2• Al equipo de desarrollo de Artech• Al cuerpo docente de Proyecto de Ingeniería de

Software, Fac. Ing. , UDELAR

Proyecto GxUnitProyecto GxUnit

Reunión 1/11/2008 - GUG Montevideo - Uruguay

¡Muchas gracias!

Créditos (Grupos 1 y 2):

Adrián García

Antonio MalaquinaAnthony Figueroa

Diego GawendaDarío de León

Guillermo Polito

Federico Parins

Fernando Varesi

Cecilia Apa

Ken Tenzer

Horacio López

Ignacio Esmite

Diego San Esteban

Fernando Colman

Gervasio MarchandGuillermo Pérez

Lucía Adinolfi

Marcelo FalcónMarcelo Celio

Marcelo VignoloMartín SellanesNicolás Álvarez de Ron

Rafel Sisto Rodrigo AguerreRodrigo Ordeix Rosana RobainaSoledad Pérez

Stephanie de León

Enrique Almeida ealmeida@concepto.com.uyAlejandro Araújo alar758@gmail.comUruguay Larre Borges ularre@genexusconsulting.com

Proyecto GxUnitProyecto GxUnit