Presentación en Congreso CACIC 2008 Chilecito, La Rioja, Argentina "Construcción de una herramienta de prueba unitaria para GeneXus"
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Construcción de una Construcción de una herramienta para pruebas herramienta para pruebas
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
AgendaAgenda• GeneXus• Problema• GxUnit• Demostración• Hacia el futuro
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
Base de Datos Normalizada
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
Aplicación
KBInstancia de
Objeto GeneXus
Objetos tipo: Con UI: Transactions: Capturan las visiones de los usuarios WorkPanels, WebPanels …
Sin UI: Procedures, Business Components, …
Visiones de los Usuarios Lenguaje Declarativo
Lenguaje Procedural Incremental
Más…• Determina el impacto del cambio• Crea los programas para migración de datos• Unidad semántica fundamental: Atributo• Infiere la integridad referencial• Prototipación inmediata• Independencia Tecnológica• Extensible
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
• ¿Cómo se efectúan las pruebas unitarias en GeneXus?
Desarrollo
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
ProblemaProblema
Pruebas Unitarias
• Crear herramienta para prueba Unitaria • Fácil de usar • Detectar errores muy temprano• Hecha por la comunidad
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
Proyecto GxUnitProyecto GxUnit
Objetivos
Evolución
“Proyectode Ingeniería de
Software”. UDELAR
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
Proyecto GxUnitProyecto GxUnit
Características
• Dos equipos: 14 estudiantes c/u
• Dos soluciones independientes
• Rol cumplido: CLIENTES
¿Qué obtuvimos?¿Qué obtuvimos?
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
Proyecto GxUnitProyecto GxUnit
CaracterísticasCaracterísticas• Se expresan los casos de prueba en formato tabular
• Formato de las tablas construido en forma automatizada en base a los parámetros del objeto a probar
• Regla parm: parm(in:&parm1, in:&parm2…out:&parmn)• Columnas de las tablas: corresponden a los parámetros
expresados en la regla parm del procedure a probar• Filas de las tablas: casos de prueba
• Genera objetos GeneXus (procedures) para guiar la prueba
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
GxUnitGxUnit
Características: Casos de PruebaCaracterísticas: Casos de Prueba
GxUnitGxUnit
• Absorbe el impacto del cambio• El formato de las tablas se modifica automáticamente
cuando cambia la regla parm• Se conservan todos los datos de las tablas siempre que
sea posible
• Interfase de ejecución y reporte (similar a XUnit)
• Bitácora • Rojo=Falla Verde=Pasa• No se implementan sentencias
“Assert” (por ahora)
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
GxUnitGxUnit
Características: Casos de PruebaCaracterísticas: Casos de Prueba
GxUnit en AcciónGxUnit en Acción
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
Demostración
• 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
• Integrar a nuevos colaboradores • Mejorar los prototipos• Pruebas de campo • Integrar los prototipos• Nuevo alcance
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008
¿Qué nos falta?¿Qué nos falta?Hacia el futuroHacia el futuro
¿Qué nos falta? Nuevo alcance¿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 (?)
XIV Congreso Argentino de Ciencias de la Computación CACIC 2008