Software Testing: “Tres enfoques para un mismo problema”

Slides:



Advertisements
Presentaciones similares
BizTalk Server 2006 & Test Driven Development Kabel Sistemas S.L.
Advertisements

Test-Driven Development
Presentación del estado del arte
Presentación del estado del arte
Presentación del estado del arte
Herramientas de Gestión de Configuración y Cambios
Pruebas Unitarias [UTN - Tecnologías de desarrollo de software IDE] 2008 nUnit Ezequiel GhioneEzequiel Ghione [fecha][fecha]
Acercándonos a las Pruebas en Google
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
¿Artesanía o Metodología? Gustavo Vázquez Mónica Wodzislawski
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Desarrollo para Entorno Web
MÉTODO ÁGIL SCRUM APLICADO A LA IMPLANTACIÓN DE UN SISTEMA INFORMÁTICO PARA EL PROCESO DE RECOLECCIÓN MASIVA DE INFORMACIÓN CON TECNOLOGÍA MÓVIL Como.
Por: Carlos Aucancela Tatiana Pozo
Pruebas de programas Java mediante JUnit
Desarrollo Con CALIDAD, con Visual Studio 2008
Juan Pablo Goyení Marcos Olivera Nicolás Carro Proyecto de grado Facultad de Ingeniería UdelaR.
Probar GeneXus code con GeneXus code Juan Pablo Goyení Marcos Olivera Nicolás Carro #GX2417.
Presentación del estado del arte
Juan Pablo Goyení Marcos Olivera Nicolás Carro Proyecto de grado Facultad de Ingeniería UdelaR.
Test-Driven Development (Desarrollo dirigido por pruebas) Martín Salías.
Herramientas QA Morax.
Programación Extrema Metodología XP Brigida Carvajal.
Ingeniería de Sistemas e Informática
Testing en eXtreme Programming Universidad de la República – Facultad de Ingeniería - InCo 30 de Mayo de 2006 [ Duración aproximada de la presentación:
Test Driven Development TDD
Propuesta de una metodología para el desarrollo de proyectos informáticos empleando la herramienta para el diseño automatizado GeneXus Autor: Dipl.-Ing.
Test Driven Development
Introducción a TDD. Enfoque de la Charla Presentar un ejemplo de principio a fin de una funcionalidad de un proyecto. Sin profundizar en las herramientas.
Ciclos de vida ágiles.  Es una metodología ágil que plantea: ◦ Iteraciones cortas ◦ Entregables periódicos ◦ Colaboración con el cliente full time ◦
Ingeniería de Software
CARRERA ING.DE SISTEMAS INTEGRANTE: DANIEL SORIA MURILLO DOCENTE: ING. ERVIN FLORES MATERIA: INGENIERIA DE SOFTWARE GESTION 2009.
Ingeniería de Software: Metodologías Agustín J. González ElO329: Diseño y Programación Orientados a Objeto Adaptado de:
CICLO DE VIDA DEL SOFTWARE
Template Developed by Jose A. Fortin Extreme Programming Intro.
Algoritmos y programación III (75.07)
Collaborative Projects: Experiencias y Testimonios.
agile-tester-foundation- chapter-2-fundamental-agile-testing- principles-practices-and-processes-1-of-3-
Programación Extrema Leonardo Ramírez Z.. Contenido Motivación ¿Qué es Programación Extrema? La filosofía detrás de la Programación Extrema El proceso.
Proyecto de Solución de Problemas con Programación
Test-Driven Development Juan Carlos Olivares Rojas MSN:
¿Cómo nos ayuda GeneXus a mejorar la calidad en el proceso de desarrollo de Software? Ing. Rosario Estévez Ing. Rafael Mon
Desarrollo de Software Esbelto
SummarizedBy Pattern Un ejemplo de cómo construir tu propio pattern Enrique Almeida Federico Dominioni
Buenas prácticas en el desarrollo de Software
 Autenticación - Autorización Autenticación : Es un modo de asegurar que los usuarios son quién ellos dicen que ellos son. Autorización: Proceso por.
Guía metodológica para la gestión de proyectos de software en PyMEs que no son fábricas de software por medio de Metodologías ágiles.
Ingeniería de Software
Juan Carlos Olivares Rojas
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
Terminología de proceso del software
Test Driven Development. ¿Que es Test Driven Development?
Métodos para garantizar la calidad del software.
Tutor: Ing. Juan E. Talavera Horn 2010 Google Web Toolkit (GWT)
Test Driven Development
REVISION Y AUDITORIA.
Título de la Presentación Estado del arte sobre el testeo de software en las Pymes de Aragón 12 de Noviembre de 2015.
TALLER DE PROGRAMACIÓN ORIENTADA A OBJETOS I Docentes: Alejandra Garrido Federico Balaguer
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Proyecto SINTRA. Sistema Nacional de Trámites SINTRA Es el sistema de información donde se registran, modelan y simplifican los trámites de las instituciones.
Metodologías de Desarrollo Ágil
Diseño de esquema de pruebas Analisis y Diseño 2 Segundo Semestre 2008 Victor Leonel Orozco
TDD en Python Javier Andrés Mansilla - Except Test Driven Development.
Etapas de un proyecto.
Test Driven Development
Escribe el nombre a los números 1 _______________________ 2 _______________________ 3_______________________ 4_______________________ 5 _______________________.
Example.
TESTING.
Registro.
Transcripción de la presentación:

Software Testing: “Tres enfoques para un mismo problema” Enrique Almeida Concepto ealmeida@concepto.com.uy Mi nombre es Enrique Almeida Soy director de la empresa CONCEPTO, que desde hace mas de 12 años trabaja con GeneXus, para el desarrollo de aplicaciones medianas y grandes. Hoy vamos a hablarle con Jorge y con Margarita del tema de testeo pero desde tres enfoques diferentes.

Objetivos de la charla Testeo Unitario con GeneXus. GXUnit - Conseguir adeptos para el desarrollo entre todos Integrar el Testeo Unitario a GeneXus Los objetivos de esta charla, son: Hablar un poco de Testeo Unitario y de las herramientas necesarias para realizarlos. Conversar de la idea de hacer una herramienta GXUnit para poder testear en forma unitaria lo que estoy programando. Integrar esa herramienta a GeneXus y poder con eso facilitarle el trabajo a los desarrolladores, haciendo mucho mas facil, esta metodologia de trabajo.

Porque hablar de Testing? Dos tipos de Testeo Unitario (todos los días) Funcional (3-7 días por ciclo) eXtreme Programming como metodología de trabajo con GeneXus. Test Driven Development En la metodologia actual de desarrollo dentro de Concepto, tenemos grupos de trabajos formados, de 5 a 10 personas trabajando en proyectos para clientes. Estos clientes reciben cada 2 o tres meses “entregables”. Estos entregables son funcionalidades nuevas (pueden ser nuevos modulos) y tambien arreglos a los errores que se encontraron durante el periodo. Para esto, tenemos dos tipos de testeo. El primero es el Unitario, es en el que voy a hacer incapie en esta charla. Este es el que hace el desarrollador, que recibe un nuevo requerimiento o el reporte de un error y tiene que arreglarlo. Luego de arreglar el problema, lo que hace es probar que el modulo que arreglo y los que estan involucrados directamente esten solucionados. Luego, y con una frecuencia de 2 a tres meses se hace un testeo funcional, donde se consolida el trabajo de todo el grupo y se hacen test de integracion, y test funcionales, probandose ciclos mas largos que los que se probaron con el unitario. El motivo de la charla es solamente el primer testeo. El testeo unitario. Dada la metodologia de desarrollo antes contada, empezamos a buscar que mejoras podiamos encontrar, y hace un par de años, empezamos con XP. Esta metodologia, si bien no la utilizamos hasta sus ultimas consecuencias (no usamos las 12 practicas) pero si vimos que tenian muchas ventajas y se adaptaba muy bien al ambiente de desarrollo con Genexus. Un poco despues surgio la Test Driven Development.

Libros recomendados Test Driven Development by Example (Kent Beck) Buena Teoría Ejemplos demasiados simples Test Driven Development in Microsoft .NET (J. Newkirk, A.Vorontsov) Buenos ejemplos

Test Driven Development Los tres pasos: Escribir un test Escribir código mas simple que cumpla los test. Refactoring Usa xUnit (Junit, Nunit, etc) para el control de los test. Test Driven Development – Basar el desarrollo de la aplicaicion en mis tests. Los pasos a seguir son siempre los mismos y se aplican en forma ciclica todo el tiempo y muy a menudo (varias veces al dia). Escribir un test (compilarlo, ejecutarlo, ver los resultados) Escribir el codigo mas simple que solucione los problemas que se detectan en la corrida de los test anteriores (compilarlo, ejecutarlo, ver los resultados) Refactoring. Es dificil traducir refactoring al español, Es la tarea de mejorar la estructura interna de nuestro codigo, sin alterar para nada su comportamiento externo. Consiste eliminar codigo duplicado y redundante, darle nombre adecuados a nuestras clases y metodos, etc. Es un tema en si mismo, pero no es el foco de esta charla. Como hacer que esta metodologia de desarrollo sea eficiente y comoda para el desarrollador?. Esto se logra con herramientas que se integren al ambiente de desarrollo (IDE) como pueden ser nUnit, que se integra a Visual Studio. Nunit es un programa que permite ejecutar en forma ordenada los test unitarios que tengo asociados a mi programas. Ademas deja un registro del resultado de dichos test.

Que es el Nunit? Aquí hay una pantalla de nUnit. Se ve el resultado de la corrida de los test aplicables al Nunit mismo. Si los resultados estan todos en verde, quiere decir que esta todo bien. Si hay algo mal, el resultado es en rojo y quienes programan deben corregirlo.

GXUnit Framework de Testeo con GeneXus Escribir Test en GeneXus como Procedures Ejecutarlos y registrar los resultados Que necesitamos entonces, para poder utilizar esta metodologia (Test Driven Development) en un ambiente de desarrollo Genexus? Lo ideal seria tener una herramienta, que se pueda integrar a GeneXus y en la cual se puedan ejecutar las pruebas que yo asocie a mis objetos. O sea, poder escribir TEST, como un procedimiento, marcado con alguna property especial, y luego poder ejecutarlo y ver cuales son los testeos que fallaron.

GXUnit – Etapas en el desarrollo Procedimientos WebPanels Transacciones WorkPanels

Que nos falta? Comandos nuevos en GeneXus try/catch Assert Mejorar el manejo de Excepciones Poder marcar objetos como de TEST Integración dentro de GeneXus Que nos falta para poder desarrollar una herramienta como GXUnit?. Seria bueno poder contar con comandos del tipo Try/catch para poder ejecutar algo en forma condicional y poder capturar las excepciones que se produzcan. Assert poder tener sentencias que permitan comparar el resultado