Test Driven Development TDD

Slides:



Advertisements
Presentaciones similares
INTRODUCCIÓN A LA VERIFICACION Y VALIDACION
Advertisements

EL PROCESO DE DESARROLLO DEL SOFTWARE
Modelo en cascada. Consta de las siguientes fases:
GESTION DE CALIDAD DE SW
Ingeniería de Software II
BizTalk Server 2006 & Test Driven Development Kabel Sistemas S.L.
Test-Driven Development
Metodologías ágiles.
Pruebas de Diseño Diplomado en Calidad en el Software NOTAS
PROCESO Y MODELOS EN LA INGENIERIA DE SOFTWARE
Secuencia finita, ordenada y lógica de instrucciones (ó pasos), los cuales permiten realizar una ó varias tareas.
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.
Metodología de Trabajo de Auditoría Informática
Pruebas de Unidad y Refactorización
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.
Arquitectura CLARO-TECNOTREE
Desarrollo para Entorno Web
Por: Carlos Aucancela Tatiana Pozo
Codificación.
La calidad no es opcional Y ha de empezar en la primera línea.
Administración de redes
Preguntas tipo test (Tema I)
Administración de Procesos de Pruebas
Test-Driven Development (Desarrollo dirigido por pruebas) Martín Salías.
Modelo de Desarrollo XP
Ingeniería de Sistemas e Informática
Calidad en entornos ágiles Juan Gabardini Administración y Control de Proyectos Informáticos II Facultad de Ingeniería - UBA.
INGENIERIA DEL SOFTWARE
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 ◦
Curso Práctico de Bioestadística Con Herramientas De Excel Fabrizio Marcillo Morla MBA (593-9)
ASEGURANDO LA CALIDAD DEL CODIGO REFACTORING. Refactorizar (o Refactoring) es realizar una transformación al software preservando su comportamiento, modificando.
EXtreme Programming.
Tema 1: Introducción al análisis y diseño de aplicaciones software
PROGRAMACION EXTREMA SALCEDO CORONA JACOBSALCEDO CORONA JACOB MELCHOR LEON SALVADORMELCHOR LEON SALVADOR ANALISIS ORIENTADO A OBJETOS ANALISIS ORIENTADO.
Testing Rosemary Torrico Bascope. Software Quality Assurance SQA Garantiza la calidad de Software Se aplica la calidad a todo el proceso desde la concepción.
agile-tester-foundation- chapter-2-fundamental-agile-testing- principles-practices-and-processes-1-of-3-
Metodología para solución de problemas
Ingeniería del Software
Proyecto de Solución de Problemas con Programación
Test-Driven Development Juan Carlos Olivares Rojas MSN:
INGENIERÍA DE SOFTWARE
Diseño de Software y su Proceso
INTRODUCCIÓN A LA INGENIERÍA DEL SOFTWARE
VISIÓN GENERAL DE LA IS Con independencia del modelo de proceso hay tres fases genéricas: Fase de definición Fase de desarrollo Fase de mantenimiento Cada.
Pruebas y La Vida del Ciclo de Desarrollo del Software
Juan Carlos Olivares Rojas
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
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 Tatiana Alejandra.
METODOLOGIAS DE DESARROLLO DE SOFTWARE
Test Driven Development. ¿Que es Test Driven Development?
Simón Esneider Herrera Álvarez Media Técnica Casd 10-2
Test Driven Development
Ciclo de Vida del Software
Mejores Prácticas para el Desarrollo de Software Omar de Jesús Rosales Hernández.
Sistema de control de calidad de software
Ingeniería en Informática F UNDAMENTOS DE C OMPUTACIÓN B ACHILLERATO EN I NGENIERÍA I NFORMÁTICA L IC. C ARLOS H. G UTIÉRREZ L EÓN.
Verificación y Validación de Software
LILIANA JIMENEZ GARCIA FERANANDO CANO GOMEZ. El proceso de recopilar, analizar y verificar las necesidades del cliente para un sistema es llamado Ingeniería.
Marco de Trabajo para Indexación, Clasificación y Recopilación Automática de Documentos Digitales Javier Caicedo Espinoza Gonzalo Parra Chico.
Especificación del Problema Partimos del hecho de un programador no puede resolver un problema que no entiende. Por esta razón, la primera etapa en todo.
Modelo de procesos de software
Modelado Orientado a Objetos Programación Orientada a Objetos Departamento de Sistemas Universidad del Cauca 2006.
Es una metodología ágil diseñada para el desarrollo de software, basada en la calidad y el monitoreo constante del proyecto. Consiste esencialmente en.
VERIFICACIÓN Y VALIDACIÓN DE SISTEMAS 3.10 Fase de manejo de requerimientos 4.1 Modelado de pruebas en UML Ponente: ing. Alejandro tapia vazquez.
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Testing en Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.
Metodologías de Desarrollo Ágil
Transcripción de la presentación:

Test Driven Development TDD Rosemary Torrico Bascopé

Qué es TDD? Proceso iterativo en el cual el desarrollo está guiado por los test. Primero escribimos los test que expresan los requerimientos a cumplir luego desarrollamos para cumplir con dichos requerimientos.

Qué es TDD? Dos reglas importantes: Nunca escribir una línea de código a menos que tengamos un test fallando. Los tests representan los requerimientos que el código debe satisfacer, si no hay requerimiento es porque no hay nada que implementar. Eliminar duplicación de código.

Corazón del TDDTDD como práctica metodológica Incluye, tres sub-prácticas: Automatización: las pruebas del programa deben ser hechas en código, y con la sola corrida del código de pruebas debemos saber si lo que estamos probando funciona bien o mal. Test-First: las pruebas se escriben antes del propio código a probar. Refactorización posterior: para mantener la calidad del diseño, se cambia el diseño sin cambiar la funcionalidad.

Ventajas Escribir las pruebas antes del código a probar minimiza el condicionamiento del autor por lo ya construido. También da más confianza al desarrollador sobre el hecho de que el código que escribe siempre funciona. Escribir las pruebas antes del código a probar permite especificar el comportamiento sin restringirse a una única implementación. La refactorización constante facilita el mantenimiento de un buen diseño a pesar de los cambios que, en caso de no hacerla, lo degradarían.

Reglas de oro “Nunca escribas nueva funcionalidad sin una prueba que falle antes” Otra dice: “Si no puedes escribir una prueba para lo que estás por codificar, entonces no deberías estar pensando en codificar”.

En consecuencia… ninguna funcionalidad futura debería escribirse por adelantado, si no se tiene el conjunto de pruebas que permita verificar su corrección. Si a eso se le suma que sólo se debería escribir de a una prueba por vez, tenemos un desarrollo incremental extremo, definido por pequeños incrementos que se corresponden con funcionalidades muy acotadas.

Enlaces recomendados http://www.youtube.com/watch?v=hWeKICBQuOk