Especificación de un marco de pruebas asociado a GeneXus  con adaptación de funcionalidades de FIT   Alejandro Araújo Pére...
Temario <ul><li>Contexto </li></ul><ul><li>Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta  </li></u...
Temario <ul><li>Contexto </li></ul><ul><li>Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta  </li></u...
<ul><li>Prueba de  Software </li></ul><ul><li>“ Verificación dinámica del comportamiento de un programa vs. el comportamie...
<ul><li>Pruebas unitarias automatizadas: Propiedades </li></ul><ul><ul><ul><li>Facilidad de uso y decisión </li></ul></ul>...
Inclusión del marco de trabajo Test Verificación de resultados XUnit <ul><li>Especificación de las pruebas </li></ul>Famil...
Inclusión del marco de trabajo Test Verificación de resultados XUnit <ul><li>Especificación de las pruebas </li></ul>Famil...
Inclusión del marco de trabajo Test Verificación de resultados XUnit <ul><li>Especificación de las pruebas </li></ul>Famil...
“ El Framework for Integrated Test es una herramienta para mejorar la colaboración en el desarrollo de software…Permite co...
<ul><ul><li>Las  fixtures  que escriben los desarrolladores extienden fixtures básicas brindadas por FIT </li></ul></ul><u...
<ul><ul><li>ColumnFixture </li></ul></ul><ul><ul><li>El SUT se ejercita para cada fila de la tabla de entrada, cargando lo...
<ul><ul><li>ColumnFixture </li></ul></ul><ul><ul><li>Código de la  fixture  escrita por el programador </li></ul></ul><ul>...
<ul><ul><li>ActionFixture </li></ul></ul><ul><ul><li>Un usuario de chat se conecta; crea una sala e ingresa. Otro usuario ...
<ul><ul><li>ActionFixture </li></ul></ul>Caso de prueba Resultado de la prueba Fixture “ Actor” = Clase a instanciar Métod...
<ul><ul><li>RowFixture </li></ul></ul><ul><ul><li>Los ocupantes de la sala de chat “Lotr” son los usuarios Anna y Luke </l...
<ul><ul><li>RowFixture </li></ul></ul>Caso de prueba Resultado de la prueba FIT Se informa la colección. En cada fila se i...
<ul><li>“ El objetivo de GeneXus es conseguir un muy buen tratamiento automático del conocimiento de los sistemas de negoc...
<ul><li>  Visiones de los Usuarios   </li></ul><ul><li>  Incremental   </li></ul>Base de Datos Normalizada Aplicación KB I...
<ul><li>Más… </li></ul><ul><li>Determina el impacto del cambio </li></ul><ul><li>Prototipación inmediata </li></ul><ul><li...
<ul><li>Características generales de objetos tipos </li></ul><ul><ul><li>Partes  (ejemplo) </li></ul></ul><ul><ul><ul><li>...
<ul><li>Objetos </li></ul><ul><ul><ul><li>Business Components   (BC)   </li></ul></ul></ul><ul><ul><ul><li>Procedures (Pro...
<ul><li>Business Components  (Transacciones) BC </li></ul><ul><ul><li>Desacoplan la lógica de negocio de la UI  </li></ul>...
<ul><ul><li>Procedimientos  Procs </li></ul></ul><ul><ul><ul><li>Procesos no interactivos de consulta y actualización de l...
Temario <ul><li>Definiciones </li></ul><ul><li>Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta  </li...
<ul><li>GeneXus </li></ul><ul><ul><li>Se utiliza para elaborar gran parte del software producido en Uruguay </li></ul></ul...
<ul><li>¿Es posible crear un marco para automatizar las pruebas unitarias de objetos GeneXus?  </li></ul><ul><li>¿Qué requ...
Temario <ul><li>Contexto </li></ul><ul><li>Definición del Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Prop...
<ul><li>Estudio del estado del arte </li></ul><ul><ul><ul><li>Testing   </li></ul></ul></ul><ul><ul><ul><ul><li>Definicion...
<ul><li>Especificación  </li></ul><ul><ul><ul><li>Visión y descripción funcional </li></ul></ul></ul><ul><ul><ul><li>Relat...
Contribuciones <ul><li>Participación en tareas  compartidas  en el  </li></ul><ul><li>ámbito del proyecto GxUnit  </li></u...
Temario <ul><li>Contexto </li></ul><ul><li>Definición del Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Prop...
<ul><ul><li>Creación y mantenimiento automatizado de </li></ul></ul><ul><ul><li>programas especializados en pruebas unitar...
GeneXus X GXUnit GxFIT Características
<ul><ul><li>Objetos y parámetros   </li></ul></ul><ul><ul><ul><li>Dominio de objetos verificables   </li></ul></ul></ul><u...
<ul><li>Objetos y parámetros  </li></ul><ul><ul><ul><li>Parámetros contenidos en tablas  (FIT ) </li></ul></ul></ul><ul><u...
<ul><li>Fixtures </li></ul>Relatos sobre fixtures
<ul><li>Partes de un caso de prueba </li></ul><ul><ul><li>Inicialización </li></ul></ul><ul><ul><ul><li>Procedimientos del...
<ul><li>Editores </li></ul><ul><ul><li>Grilla adecuada al formato requerido por la </li></ul></ul><ul><ul><li>fixture  a a...
<ul><li>ColumnTest </li></ul><ul><li>  Parm(in:&Num,in:&Den,out:&Q) </li></ul>Relatos sobre fixtures  Se crea un procedimi...
Implementación en los prototipos de GxUnit elaborados durante PIS 2007
<ul><li>ActionTest </li></ul>Relatos sobre fixtures  Caso de prueba Resultados Se crea un procedimiento verificador que es...
<ul><li>Dobles para pruebas </li></ul>Relatos sobre fixtures  <ul><ul><li>Tablas de expectativas </li></ul></ul><ul><ul><l...
Temario <ul><li>Contexto </li></ul><ul><li>Definición del Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Prop...
Conclusiones <ul><li>El trabajo realizado puede resumirse en tres resultados:   </li></ul><ul><ul><li>Se obtuvo un  resume...
Trabajos a futuro <ul><li>Apoyar la continuación del desarrollo y fusión de los prototipos, incorporando funcionalidad de ...
Especificación de un marco de pruebas asociado a GeneXus  con adaptación de funcionalidades de FIT   GRACIAS POR SU ATENCI...
Upcoming SlideShare
Loading in …5
×

Especificación GxFIT - Defensa Tesis Maestría

1,927 views

Published on

Defensa de tesis de maestría en ingeniería en computación, Instituto de Computación, Facultad de Ingeniería, UDELAR, Montevideo, Uruguay, Octubre-2008. Aprobada con Mención.
Tribunal: Ing. Fernando Brum, Ing. Nicolás Jodal, Dr. Ing. Raúl Ruggia, Dra.Ing. Nora Szasz.
Publicada en: http://www.fing.edu.uy/inco/pedeciba/bibliote/cpap/tesis-araujo.pdf

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,927
On SlideShare
0
From Embeds
0
Number of Embeds
237
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide
  • En este trabajo que tengo el agrado de presentar se elaboró una especificación inicial para un marco de pruebas unitarias asociado a la herramienta de desarrollo GeneXus, utilizando una adaptación de funcionalidades inspiradas en las ofrecidas por la herramienta de pruebas FrameWork for Integrated Tests (FIT). El marco que se propone se apoya en GeneXus para asegurar la portabilidad de los casos de prueba, minimizar el impacto de los cambios y crear el código necesario para ejecutar las pruebas en el lenguaje de destino. Brinda un marco de definición y ejecución de pruebas unitarias automatizadas, en un ámbito donde no existe actualmente tal posibilidad y otorga un mecanismo que posibilita la aplicación práctica de funcionalidades de FIT.
  • Especificación GxFIT - Defensa Tesis Maestría

    1. 1. Especificación de un marco de pruebas asociado a GeneXus con adaptación de funcionalidades de FIT Alejandro Araújo Pérez Instituto de Computación – Facultad de Ingeniería Universidad de la República Tesis de Maestría
    2. 2. Temario <ul><li>Contexto </li></ul><ul><li>Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta </li></ul><ul><li>Conclusiones </li></ul><ul><li>Trabajos a futuro </li></ul>
    3. 3. Temario <ul><li>Contexto </li></ul><ul><li>Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta </li></ul><ul><li>Conclusiones </li></ul><ul><li>Trabajos a futuro </li></ul>Definiciones Automatización FIT XUnit GeneXus
    4. 4. <ul><li>Prueba de Software </li></ul><ul><li>“ Verificación dinámica del comportamiento de un programa vs. el comportamiento esperado, usando un conjunto finito de casos de prueba, seleccionados de manera adecuada desde el dominio infinito de ejecución” (Swebok) </li></ul>Definiciones <ul><li>Pruebas Unitarias </li></ul><ul><li>“ Son pruebas efectuadas sobre pequeñas porciones de código realizadas por los desarrolladores, para mostrar que la unidad no satisface su especificación o que su implementación no satisface la estructura de diseño requerida” (Boris Beizer) </li></ul>
    5. 5. <ul><li>Pruebas unitarias automatizadas: Propiedades </li></ul><ul><ul><ul><li>Facilidad de uso y decisión </li></ul></ul></ul><ul><ul><ul><li>Rápidas </li></ul></ul></ul><ul><ul><ul><li>Repetibles </li></ul></ul></ul><ul><ul><ul><li>Profesionales </li></ul></ul></ul><ul><ul><ul><li>Errores detectados y reportados por cada prueba </li></ul></ul></ul><ul><ul><ul><li>Independientes </li></ul></ul></ul><ul><ul><ul><li>Aisladas </li></ul></ul></ul>Automatización (Meszaros)
    6. 6. Inclusión del marco de trabajo Test Verificación de resultados XUnit <ul><li>Especificación de las pruebas </li></ul>Familia de marcos de trabajo para automatizar pruebas unitarias especificadas mediante guiones escritos por los desarrolladores
    7. 7. Inclusión del marco de trabajo Test Verificación de resultados XUnit <ul><li>Especificación de las pruebas </li></ul>Familia de marcos de trabajo para automatizar pruebas unitarias especificadas mediante guiones escritos por los desarrolladores
    8. 8. Inclusión del marco de trabajo Test Verificación de resultados XUnit <ul><li>Especificación de las pruebas </li></ul>Familia de marcos de trabajo para automatizar pruebas unitarias especificadas mediante guiones escritos por los desarrolladores
    9. 9. “ El Framework for Integrated Test es una herramienta para mejorar la colaboración en el desarrollo de software…Permite conocer que debería hacer el software y lo que hace; comparando de forma automática los resultados actuales con los esperados” (W.Cunningham) FIT Los casos de prueba se especifican mediante tablas conteniendo entradas, resultados esperados y comandos, interpretadas por guiones ( fixtures ) escritos por los desarrolladores (NC State University)
    10. 10. <ul><ul><li>Las fixtures que escriben los desarrolladores extienden fixtures básicas brindadas por FIT </li></ul></ul><ul><ul><ul><li>ColumnFixture: Prueba de cálculos </li></ul></ul></ul><ul><ul><ul><li>ActionFixture: Prueba de acciones </li></ul></ul></ul><ul><ul><ul><li>RowFixture: Valida colecciones-BD </li></ul></ul></ul><ul><ul><ul><li>SetupFixture: Inicializa colecciones-BD </li></ul></ul></ul> FIT (Vettrivel)
    11. 11. <ul><ul><li>ColumnFixture </li></ul></ul><ul><ul><li>El SUT se ejercita para cada fila de la tabla de entrada, cargando los datos desde las celdas y ejecutando los métodos expresados en las columnas cuyo nombre finaliza en () </li></ul></ul><ul><ul><li>Ejemplo: Si el total de la compra es mayor que $ 1000 se realizará un 5% de descuento. </li></ul></ul>Caso de prueba Método a invocar Variable Resultado de la prueba FIT (Cunningham) Clase
    12. 12. <ul><ul><li>ColumnFixture </li></ul></ul><ul><ul><li>Código de la fixture escrita por el programador </li></ul></ul><ul><ul><li>para implementar la prueba </li></ul></ul>Caso de prueba SUT Método a invocar Variable Clase FIT
    13. 13. <ul><ul><li>ActionFixture </li></ul></ul><ul><ul><li>Un usuario de chat se conecta; crea una sala e ingresa. Otro usuario se conecta e ingresa a la misma sala. Se debe comprobar que la sala tiene dos ocupantes. </li></ul></ul>Caso de prueba Resultado de la prueba FIT (Cunningham)
    14. 14. <ul><ul><li>ActionFixture </li></ul></ul>Caso de prueba Resultado de la prueba Fixture “ Actor” = Clase a instanciar Métodos FIT Se instancia la clase a partir del comando Start. Se ejecutan los métodos con Enter y Press, se comprueba con Check (Cunningham)
    15. 15. <ul><ul><li>RowFixture </li></ul></ul><ul><ul><li>Los ocupantes de la sala de chat “Lotr” son los usuarios Anna y Luke </li></ul></ul>Caso de prueba Resultado de la prueba FIT (Cunningham)
    16. 16. <ul><ul><li>RowFixture </li></ul></ul>Caso de prueba Resultado de la prueba FIT Se informa la colección. En cada fila se indican los datos esperados para cada columna. (Cunningham)
    17. 17. <ul><li>“ El objetivo de GeneXus es conseguir un muy buen tratamiento automático del conocimiento de los sistemas de negocios … como subproductos se obtienen, entre otros: </li></ul><ul><ul><li>Proyecto, generación y mantenimiento automáticos de la base de </li></ul></ul><ul><ul><li>datos y los programas de aplicación, para múltiples plataformas. </li></ul></ul><ul><ul><li>Integración del conocimiento para atender necesidades muy </li></ul></ul><ul><ul><li>complejas a costos inferiores a los habituales </li></ul></ul><ul><ul><li>Generación para tecnologías futuras, cuando estén disponibles </li></ul></ul><ul><ul><li>… </li></ul></ul><ul><li>Se pretende describir, en lugar de programar” (B.Gonda/N.Jodal) </li></ul>Es una herramienta de gestión de sistemas de información que genera y mantiene en forma automatizada bases de datos normalizadas y aplicaciones completas, a partir del tratamiento automático del conocimiento que almacena sobre los sistemas de negocios
    18. 18. <ul><li> Visiones de los Usuarios </li></ul><ul><li> Incremental </li></ul>Base de Datos Normalizada Aplicación KB Instancia de Objeto GeneXus <ul><ul><li>Objetos tipo: Con UI: Transactions : Capturan las visiones de los usuarios Sin UI: Procedures, Business Components , … </li></ul></ul>Unidad semántica fundamental: Atributo
    19. 19. <ul><li>Más… </li></ul><ul><li>Determina el impacto del cambio </li></ul><ul><li>Prototipación inmediata </li></ul><ul><li>Independencia Tecnológica </li></ul><ul><li>Extensible </li></ul>
    20. 20. <ul><li>Características generales de objetos tipos </li></ul><ul><ul><li>Partes (ejemplo) </li></ul></ul><ul><ul><ul><li>Structure , Rules , Source ; Forms (Win/Web), Layout , </li></ul></ul></ul><ul><ul><ul><li>Conditions , Events , Documentation , Help , … </li></ul></ul></ul><ul><ul><li>Código </li></ul></ul><ul><ul><ul><li>Componentes declarativos y procedurales </li></ul></ul></ul>Ejemplo: objeto transacción (Artech)
    21. 21. <ul><li>Objetos </li></ul><ul><ul><ul><li>Business Components (BC) </li></ul></ul></ul><ul><ul><ul><li>Procedures (Procs) </li></ul></ul></ul><ul><ul><ul><li>Data Selectors (DS) </li></ul></ul></ul><ul><ul><ul><li>Data Providers (DP) </li></ul></ul></ul>
    22. 22. <ul><li>Business Components (Transacciones) BC </li></ul><ul><ul><li>Desacoplan la lógica de negocio de la UI </li></ul></ul><ul><ul><li>Pueden ser invocados en “modo silencioso” (sin UI) </li></ul></ul><ul><ul><li>Permiten reuso </li></ul></ul><ul><ul><li>Métodos Add, Check, Delete, Fail, </li></ul></ul><ul><ul><li>FromXml, GetMessages, Load, </li></ul></ul><ul><ul><li>Save, Success, … </li></ul></ul>(Artech)
    23. 23. <ul><ul><li>Procedimientos Procs </li></ul></ul><ul><ul><ul><li>Procesos no interactivos de consulta y actualización de la Base de Datos (BD) </li></ul></ul></ul><ul><ul><ul><li>Código procedural GeneXus </li></ul></ul></ul><ul><ul><li>Source Rules </li></ul></ul>(Artech)
    24. 24. Temario <ul><li>Definiciones </li></ul><ul><li>Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta </li></ul><ul><li>Conclusiones </li></ul><ul><li>Trabajos a futuro </li></ul>Motivación Definición
    25. 25. <ul><li>GeneXus </li></ul><ul><ul><li>Se utiliza para elaborar gran parte del software producido en Uruguay </li></ul></ul><ul><ul><li>No cuenta con funcionalidades especificas para la prueba de programas </li></ul></ul>Motivación
    26. 26. <ul><li>¿Es posible crear un marco para automatizar las pruebas unitarias de objetos GeneXus? </li></ul><ul><li>¿Qué requerimientos debería cumplir el marco para aprovechar las características de GeneXus? </li></ul><ul><li>¿Cómo adaptar funcionalidades inspiradas en FIT para dicho marco? (GXFIT) </li></ul>Definición del problema
    27. 27. Temario <ul><li>Contexto </li></ul><ul><li>Definición del Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta </li></ul><ul><li>Conclusiones </li></ul><ul><li>Trabajos a futuro </li></ul>Estado del Arte Especificación de Funcionalidades Participación en Proyecto GxUnit
    28. 28. <ul><li>Estudio del estado del arte </li></ul><ul><ul><ul><li>Testing </li></ul></ul></ul><ul><ul><ul><ul><li>Definiciones </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Elementos </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Técnicas </li></ul></ul></ul></ul><ul><ul><ul><li>V&V en Metodologías Ágiles </li></ul></ul></ul><ul><ul><ul><ul><li>Metodología Extreme Programming </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Metodologías SCRUM-FDD-DSDM </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Test Driven Development </li></ul></ul></ul></ul><ul><ul><ul><li>Automatización de las pruebas ( Open Source ) </li></ul></ul></ul><ul><ul><ul><ul><ul><li>XUnit </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Framework for Integrated Tests (FIT) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>FitNesse ( FIT o SLIM + Wiki + WebServer) </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Otras extensiones a FIT y herramientas similares </li></ul></ul></ul></ul></ul><ul><ul><ul><li>GeneXus </li></ul></ul></ul>Contribuciones
    29. 29. <ul><li>Especificación </li></ul><ul><ul><ul><li>Visión y descripción funcional </li></ul></ul></ul><ul><ul><ul><li>Relatos ( Stories ) </li></ul></ul></ul>Contribuciones <ul><ul><li>Artefactos producidos </li></ul></ul><ul><ul><ul><ul><li>Documento de especificación </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Diagrama del modelo de Dominio </li></ul></ul></ul></ul>
    30. 30. Contribuciones <ul><li>Participación en tareas compartidas en el </li></ul><ul><li>ámbito del proyecto GxUnit </li></ul><ul><li>( Enrique Almeida - Uruguay Larre Borges – Alejandro Araújo) </li></ul><ul><ul><ul><ul><ul><li>Especificación </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>PIS 2007 </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Difusión </li></ul></ul></ul></ul></ul>
    31. 31. Temario <ul><li>Contexto </li></ul><ul><li>Definición del Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta </li></ul><ul><li>Conclusiones </li></ul><ul><li>Trabajos a futuro </li></ul>Descripción de características del marco para pruebas Relatos Modelo de conceptos Fixtures Núcleo
    32. 32. <ul><ul><li>Creación y mantenimiento automatizado de </li></ul></ul><ul><ul><li>programas especializados en pruebas unitarias </li></ul></ul><ul><ul><li>parametrizables </li></ul></ul><ul><ul><li>Casos de prueba expresados mediante tablas </li></ul></ul><ul><ul><li>conteniendo parámetros (datos y acciones) acorde </li></ul></ul><ul><ul><li>a FIT </li></ul></ul><ul><ul><li>Acorde a GeneXus (inteligencia) </li></ul></ul><ul><ul><li>Cumpliendo propiedades recomendadas para la </li></ul></ul><ul><ul><li>automatización de las pruebas unitarias </li></ul></ul><ul><ul><li>Ejecución, registro y visualización de resultados </li></ul></ul>Características
    33. 33. GeneXus X GXUnit GxFIT Características
    34. 34. <ul><ul><li>Objetos y parámetros </li></ul></ul><ul><ul><ul><li>Dominio de objetos verificables </li></ul></ul></ul><ul><ul><ul><li>Procs, BC, Dp, Ds </li></ul></ul></ul><ul><ul><ul><li>Objetos (TestCase = TC) </li></ul></ul></ul><ul><ul><ul><ul><li>Implementan caso de prueba </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Lo ejecutan ( fixtures ) </li></ul></ul></ul></ul>Relatos Objetos GX para ejecutar pruebas
    35. 35. <ul><li>Objetos y parámetros </li></ul><ul><ul><ul><li>Parámetros contenidos en tablas (FIT ) </li></ul></ul></ul><ul><ul><ul><li>Extensiones escritas por el programador </li></ul></ul></ul><ul><ul><ul><ul><li>Procedimientos de Inicialización y Finalización (PIU-PFU) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>Fuentes para ejecutar en modo stub / mock </li></ul></ul></ul></ul>Relatos <ul><ul><ul><li>Acorde a herramientas similares y GeneXus </li></ul></ul></ul><ul><ul><ul><li>Semántica (colores) </li></ul></ul></ul><ul><ul><ul><li>Ejecución y Resultados </li></ul></ul></ul><ul><ul><ul><li>Bitácora </li></ul></ul></ul><ul><ul><li> Niveles, Comparación, </li></ul></ul><ul><ul><li> Adjuntos, Navegaciones </li></ul></ul><ul><li>Interfaz de usuario </li></ul>
    36. 36. <ul><li>Fixtures </li></ul>Relatos sobre fixtures
    37. 37. <ul><li>Partes de un caso de prueba </li></ul><ul><ul><li>Inicialización </li></ul></ul><ul><ul><ul><li>Procedimientos del usuario para inicialización </li></ul></ul></ul><ul><ul><ul><li>Inicialización con datos externos (XML, Pla.Elec.) </li></ul></ul></ul><ul><ul><ul><li>Inicialización BD con tablas y fixtures ST </li></ul></ul></ul><ul><ul><li>Fixtures correspondientes según objeto a verificar </li></ul></ul><ul><ul><li>Verificación adicional </li></ul></ul><ul><ul><ul><li>Con fixtures RT para las tablas </li></ul></ul></ul><ul><ul><ul><li>Con procedimientos del usuario (PVU) </li></ul></ul></ul><ul><ul><li>Finalización </li></ul></ul><ul><ul><ul><li>Procedimientos del usuario </li></ul></ul></ul><ul><ul><li>Definición de expectativas y código Mocks </li></ul></ul><ul><ul><li>Documentación </li></ul></ul><ul><li>El conjunto precedente no se considera cerrado a la inclusión de nuevas partes </li></ul>Relatos sobre fixtures
    38. 38. <ul><li>Editores </li></ul><ul><ul><li>Grilla adecuada al formato requerido por la </li></ul></ul><ul><ul><li>fixture a aplicar para la prueba </li></ul></ul><ul><ul><li>Datos estructurados (SDT) </li></ul></ul><ul><ul><li>Levantar datos desde fuentes externas </li></ul></ul><ul><li>Impacto del cambio </li></ul><ul><li>Detección rápida por parte del desarrollador </li></ul><ul><li>Reconstrucción automatizada de tablas y objetos </li></ul><ul><li>verificadores ante cambios de objetos a probar </li></ul>Relatos sobre fixtures
    39. 39. <ul><li>ColumnTest </li></ul><ul><li> Parm(in:&Num,in:&Den,out:&Q) </li></ul>Relatos sobre fixtures Se crea un procedimiento verificador que ejecutará el procedimiento a verificar tantas veces como filas desmarcadas existan en la tabla CT. El formato de la tabla se prepara por parte del editor de manera automática, según los parámetros del procedimiento a verificar. Cuándo cambien estos parámetros se podrá reorganizar de forma automatizada tanto la tabla como el procedimiento verificador. El desarrollador puede diferir la reorganización e intentar ejecutar tal como está. Podrá indicarse la ejecución de PVI, PVU y PVF por cada fila. La tabla CT puede ser cargada desde un archivo externo. Caso de prueba Resultados
    40. 40. Implementación en los prototipos de GxUnit elaborados durante PIS 2007
    41. 41. <ul><li>ActionTest </li></ul>Relatos sobre fixtures Caso de prueba Resultados Se crea un procedimiento verificador que estimula el BC ejecutando sus métodos y comprobando los resultados. Si hubiera cambios en el BC tratará de reconstruir la tabla y deberá regenerar el procedimiento verificador.
    42. 42. <ul><li>Dobles para pruebas </li></ul>Relatos sobre fixtures <ul><ul><li>Tablas de expectativas </li></ul></ul><ul><ul><li>El sustituto generado automáticamente recorre la tabla por cada invocación. Si encuentra una fila coincidente con los parámetros de entrada devuelve los valores contenidos en las celdas correspondientes a los parámetros de salida. Permite entrega por defecto y conteo de ocurrencias. </li></ul></ul><ul><ul><li>Source sustituto </li></ul></ul><ul><ul><li>Escrito en el sustituto por el desarrollador. Se ejecuta en lugar del código de producción durante la prueba. </li></ul></ul>
    43. 43. Temario <ul><li>Contexto </li></ul><ul><li>Definición del Problema </li></ul><ul><li>Contribuciones </li></ul><ul><li>Propuesta </li></ul><ul><li>Conclusiones </li></ul><ul><li>Trabajos a futuro </li></ul>
    44. 44. Conclusiones <ul><li>El trabajo realizado puede resumirse en tres resultados: </li></ul><ul><ul><li>Se obtuvo un resumen del estado del arte </li></ul></ul><ul><ul><li>Se obtuvo un documento de especificación </li></ul></ul><ul><ul><li>Se participó del proyecto GxUnit </li></ul></ul><ul><ul><li>(prueba de concepto) </li></ul></ul>
    45. 45. Trabajos a futuro <ul><li>Apoyar la continuación del desarrollo y fusión de los prototipos, incorporando funcionalidad de GxFIT, hasta obtener un marco de pruebas utilizable </li></ul><ul><li>Estudios de campo </li></ul><ul><li>Ampliar el alcance de la especificación </li></ul><ul><ul><li>Nuevos objetos GX verificables </li></ul></ul><ul><ul><li>Otras fixtures de FIT </li></ul></ul><ul><ul><li>Mejorar aspectos de carga y verificación de la base de datos </li></ul></ul><ul><ul><li>“ Mock” de la base de datos ¿FIT? </li></ul></ul>
    46. 46. Especificación de un marco de pruebas asociado a GeneXus con adaptación de funcionalidades de FIT GRACIAS POR SU ATENCIÓN ¿Preguntas? Alejandro Araújo Pérez Tesis de Maestría

    ×