Especificación GxFIT - Defensa Tesis Maestría

Loading...

Flash Player 9 (or above) is needed to view presentations.
We have detected that you do not have it on your computer. To install it, go here.

0 comments

Post a comment

    Post a comment
    Embed Video
    Edit your comment Cancel

    Notes on slide 1

    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.

    1 Favorite

    Especificación GxFIT - Defensa Tesis Maestría - Presentation Transcript

    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. Temario
      • Contexto
      • Problema
      • Contribuciones
      • Propuesta
      • Conclusiones
      • Trabajos a futuro
    3. Temario
      • Contexto
      • Problema
      • Contribuciones
      • Propuesta
      • Conclusiones
      • Trabajos a futuro
      Definiciones Automatización FIT XUnit GeneXus
      • Prueba de Software
      • “ 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)
      Definiciones
      • Pruebas Unitarias
      • “ 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)
      • Pruebas unitarias automatizadas: Propiedades
          • Facilidad de uso y decisión
          • Rápidas
          • Repetibles
          • Profesionales
          • Errores detectados y reportados por cada prueba
          • Independientes
          • Aisladas
      Automatización (Meszaros)
    4. Inclusión del marco de trabajo Test Verificación de resultados XUnit
      • Especificación de las pruebas
      Familia de marcos de trabajo para automatizar pruebas unitarias especificadas mediante guiones escritos por los desarrolladores
    5. Inclusión del marco de trabajo Test Verificación de resultados XUnit
      • Especificación de las pruebas
      Familia de marcos de trabajo para automatizar pruebas unitarias especificadas mediante guiones escritos por los desarrolladores
    6. Inclusión del marco de trabajo Test Verificación de resultados XUnit
      • Especificación de las pruebas
      Familia de marcos de trabajo para automatizar pruebas unitarias especificadas mediante guiones escritos por los desarrolladores
    7. “ 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)
        • Las fixtures que escriben los desarrolladores extienden fixtures básicas brindadas por FIT
          • ColumnFixture: Prueba de cálculos
          • ActionFixture: Prueba de acciones
          • RowFixture: Valida colecciones-BD
          • SetupFixture: Inicializa colecciones-BD
      FIT (Vettrivel)
        • ColumnFixture
        • 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 ()
        • Ejemplo: Si el total de la compra es mayor que $ 1000 se realizará un 5% de descuento.
      Caso de prueba Método a invocar Variable Resultado de la prueba FIT (Cunningham) Clase
        • ColumnFixture
        • Código de la fixture escrita por el programador
        • para implementar la prueba
      Caso de prueba SUT Método a invocar Variable Clase FIT
        • ActionFixture
        • 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.
      Caso de prueba Resultado de la prueba FIT (Cunningham)
        • ActionFixture
      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)
        • RowFixture
        • Los ocupantes de la sala de chat “Lotr” son los usuarios Anna y Luke
      Caso de prueba Resultado de la prueba FIT (Cunningham)
        • RowFixture
      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)
      • “ 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:
        • Proyecto, generación y mantenimiento automáticos de la base de
        • datos y los programas de aplicación, para múltiples plataformas.
        • Integración del conocimiento para atender necesidades muy
        • complejas a costos inferiores a los habituales
        • Generación para tecnologías futuras, cuando estén disponibles
      • Se pretende describir, en lugar de programar” (B.Gonda/N.Jodal)
      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
      • Visiones de los Usuarios
      • Incremental
      Base de Datos Normalizada Aplicación KB Instancia de Objeto GeneXus
        • Objetos tipo: Con UI: Transactions : Capturan las visiones de los usuarios Sin UI: Procedures, Business Components , …
      Unidad semántica fundamental: Atributo
      • Más…
      • Determina el impacto del cambio
      • Prototipación inmediata
      • Independencia Tecnológica
      • Extensible
      • Características generales de objetos tipos
        • Partes (ejemplo)
          • Structure , Rules , Source ; Forms (Win/Web), Layout ,
          • Conditions , Events , Documentation , Help , …
        • Código
          • Componentes declarativos y procedurales
      Ejemplo: objeto transacción (Artech)
      • Objetos
          • Business Components (BC)
          • Procedures (Procs)
          • Data Selectors (DS)
          • Data Providers (DP)
      • Business Components (Transacciones) BC
        • Desacoplan la lógica de negocio de la UI
        • Pueden ser invocados en “modo silencioso” (sin UI)
        • Permiten reuso
        • Métodos Add, Check, Delete, Fail,
        • FromXml, GetMessages, Load,
        • Save, Success, …
      (Artech)
        • Procedimientos Procs
          • Procesos no interactivos de consulta y actualización de la Base de Datos (BD)
          • Código procedural GeneXus
        • Source Rules
      (Artech)
    8. Temario
      • Definiciones
      • Problema
      • Contribuciones
      • Propuesta
      • Conclusiones
      • Trabajos a futuro
      Motivación Definición
      • GeneXus
        • Se utiliza para elaborar gran parte del software producido en Uruguay
        • No cuenta con funcionalidades especificas para la prueba de programas
      Motivación
      • ¿Es posible crear un marco para automatizar las pruebas unitarias de objetos GeneXus?
      • ¿Qué requerimientos debería cumplir el marco para aprovechar las características de GeneXus?
      • ¿Cómo adaptar funcionalidades inspiradas en FIT para dicho marco? (GXFIT)
      Definición del problema
    9. Temario
      • Contexto
      • Definición del Problema
      • Contribuciones
      • Propuesta
      • Conclusiones
      • Trabajos a futuro
      Estado del Arte Especificación de Funcionalidades Participación en Proyecto GxUnit
      • Estudio del estado del arte
          • Testing
            • Definiciones
            • Elementos
            • Técnicas
          • V&V en Metodologías Ágiles
            • Metodología Extreme Programming
            • Metodologías SCRUM-FDD-DSDM
            • Test Driven Development
          • Automatización de las pruebas ( Open Source )
              • XUnit
              • Framework for Integrated Tests (FIT)
              • FitNesse ( FIT o SLIM + Wiki + WebServer)
              • Otras extensiones a FIT y herramientas similares
          • GeneXus
      Contribuciones
      • Especificación
          • Visión y descripción funcional
          • Relatos ( Stories )
      Contribuciones
        • Artefactos producidos
            • Documento de especificación
            • Diagrama del modelo de Dominio
    10. Contribuciones
      • Participación en tareas compartidas en el
      • ámbito del proyecto GxUnit
      • ( Enrique Almeida - Uruguay Larre Borges – Alejandro Araújo)
              • Especificación
              • PIS 2007
              • Difusión
    11. Temario
      • Contexto
      • Definición del Problema
      • Contribuciones
      • Propuesta
      • Conclusiones
      • Trabajos a futuro
      Descripción de características del marco para pruebas Relatos Modelo de conceptos Fixtures Núcleo
        • Creación y mantenimiento automatizado de
        • programas especializados en pruebas unitarias
        • parametrizables
        • Casos de prueba expresados mediante tablas
        • conteniendo parámetros (datos y acciones) acorde
        • a FIT
        • Acorde a GeneXus (inteligencia)
        • Cumpliendo propiedades recomendadas para la
        • automatización de las pruebas unitarias
        • Ejecución, registro y visualización de resultados
      Características
    12. GeneXus X GXUnit GxFIT Características
        • Objetos y parámetros
          • Dominio de objetos verificables
          • Procs, BC, Dp, Ds
          • Objetos (TestCase = TC)
            • Implementan caso de prueba
            • Lo ejecutan ( fixtures )
      Relatos Objetos GX para ejecutar pruebas
      • Objetos y parámetros
          • Parámetros contenidos en tablas (FIT )
          • Extensiones escritas por el programador
            • Procedimientos de Inicialización y Finalización (PIU-PFU)
            • Fuentes para ejecutar en modo stub / mock
      Relatos
          • Acorde a herramientas similares y GeneXus
          • Semántica (colores)
          • Ejecución y Resultados
          • Bitácora
        • Niveles, Comparación,
        • Adjuntos, Navegaciones
      • Interfaz de usuario
      • Fixtures
      Relatos sobre fixtures
      • Partes de un caso de prueba
        • Inicialización
          • Procedimientos del usuario para inicialización
          • Inicialización con datos externos (XML, Pla.Elec.)
          • Inicialización BD con tablas y fixtures ST
        • Fixtures correspondientes según objeto a verificar
        • Verificación adicional
          • Con fixtures RT para las tablas
          • Con procedimientos del usuario (PVU)
        • Finalización
          • Procedimientos del usuario
        • Definición de expectativas y código Mocks
        • Documentación
      • El conjunto precedente no se considera cerrado a la inclusión de nuevas partes
      Relatos sobre fixtures
      • Editores
        • Grilla adecuada al formato requerido por la
        • fixture a aplicar para la prueba
        • Datos estructurados (SDT)
        • Levantar datos desde fuentes externas
      • Impacto del cambio
      • Detección rápida por parte del desarrollador
      • Reconstrucción automatizada de tablas y objetos
      • verificadores ante cambios de objetos a probar
      Relatos sobre fixtures
      • ColumnTest
      • Parm(in:&Num,in:&Den,out:&Q)
      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
    13. Implementación en los prototipos de GxUnit elaborados durante PIS 2007
      • ActionTest
      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.
      • Dobles para pruebas
      Relatos sobre fixtures
        • Tablas de expectativas
        • 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.
        • Source sustituto
        • Escrito en el sustituto por el desarrollador. Se ejecuta en lugar del código de producción durante la prueba.
    14. Temario
      • Contexto
      • Definición del Problema
      • Contribuciones
      • Propuesta
      • Conclusiones
      • Trabajos a futuro
    15. Conclusiones
      • El trabajo realizado puede resumirse en tres resultados:
        • Se obtuvo un resumen del estado del arte
        • Se obtuvo un documento de especificación
        • Se participó del proyecto GxUnit
        • (prueba de concepto)
    16. Trabajos a futuro
      • Apoyar la continuación del desarrollo y fusión de los prototipos, incorporando funcionalidad de GxFIT, hasta obtener un marco de pruebas utilizable
      • Estudios de campo
      • Ampliar el alcance de la especificación
        • Nuevos objetos GX verificables
        • Otras fixtures de FIT
        • Mejorar aspectos de carga y verificación de la base de datos
        • “ Mock” de la base de datos ¿FIT?
    17. 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

    + Alejandro AraujoAlejandro Araujo, 4 months ago

    custom

    424 views, 1 favs, 0 embeds more stats

    Defensa de tesis de maestría en ingeniería en com more

    More info about this document

    © All Rights Reserved

    Go to text version

    • Total Views 424
      • 424 on SlideShare
      • 0 from embeds
    • Comments 0
    • Favorites 1
    • Downloads 0
    Most viewed embeds

    more

    All embeds

    less

    Flagged as inappropriate Flag as inappropriate
    Flag as inappropriate

    Select your reason for flagging this presentation as inappropriate. If needed, use the feedback form to let us know more details.

    Cancel
    File a copyright complaint
    Having problems? Go to our helpdesk?

    Categories