Test Driven Development

Slides:



Advertisements
Presentaciones similares
GESTION DE CALIDAD DE SW
Advertisements

BizTalk Server 2006 & Test Driven Development Kabel Sistemas S.L.
Test-Driven Development
Metodología de Trabajo de Auditoría Informática
Pruebas de Unidad y Refactorización
FLAN “F- LINKS AND NODES”
Herencia simple y multiple
Desarrollo para Entorno Web
Por: Carlos Aucancela Tatiana Pozo
Especificación y Descripción de Liberación. Líneas Base.
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.
La calidad no es opcional Y ha de empezar en la primera línea.
Presentación del estado del arte
Administración de Procesos de Pruebas
Test-Driven Development (Desarrollo dirigido por pruebas) Martín Salías.
Herramientas QA Morax.
Conclusiones Fase de Construcción Grupo 1.  Objetivos de la Fase  Cumplimientos  Conclusiones Puntos a tratar:
DSOO - María Eugenia Valencia
Ingeniería de Software Orientada a Objetos
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
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 ◦
PROCESO DE DESARROLLO. Introducción Mediante esta presentación se pretende describir el proceso de desarrollo del TALLER I.
DISEÑO DE SOFTWARE 1ª. Parte
Ingenieria de software
ASEGURANDO LA CALIDAD DEL CODIGO REFACTORING. Refactorizar (o Refactoring) es realizar una transformación al software preservando su comportamiento, modificando.
Software Testing: “Tres enfoques para un mismo problema”
Eloísa Orozco Bueno Alvaro Padilla Vilema
Evaluación de sistemas de cómputo Edna Martha Miranda Chavez Sergio Fuenlabrada Velázquez Sep 2010 BENCH MARK para compra de software de base, herramientas,
agile-tester-foundation- chapter-2-fundamental-agile-testing- principles-practices-and-processes-1-of-3-
Ingeniería del Software
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
Lenguajes de programación. Lenguaje máquina El ordenador sólo sabe hacer un número limitado de tareas (muy pocas) definidas electrónicamente en su procesador.
Metodología para la construcción de programas
Introducción a la tecnología Realizado por: Miguel Ángel Arias.
Test-Driven Development Juan Carlos Olivares Rojas MSN:
INGENIERÍA DE SOFTWARE
Tema 1: Introducción a la Ingeniería de Software
DOCENCIA EN LA CLÍNICA MÉDICA: nuevas herramientas para un aprendizaje significativo Curso Perfeccionamiento Escuela de Medicina Universidad Valparaíso.
Pruebas y La Vida del Ciclo de Desarrollo del Software
El rol de SQA en PIS.
Diseño de Sistemas Expertos
Integrantes: Arias Yoiner Figuera José Luís Marquez Lady Febrero de 2015.
Un objeto se representa mediante un rectángulo en cuyo interior se coloca el nombre del objeto y si se desea el nombre de la clase a la que pertenece.
Juan Carlos Olivares Rojas
INGENIERÍA DEL SOFTWARE GESTIÓN DE PROYECTOS
 Sara Isabel Osorio Alcaraz Ana Isabel Vallejo Grisales 10 Informática 1.
Actividad 15. Software y Calidad M.C. Juan Carlos Olivares Rojas Syllabus June, 2009.
Es la etiqueta que se utiliza para comunicarse en la red…
Test Driven Development. ¿Que es Test Driven Development?
Ingeniería de Software
Actividades en el Proceso de desarrollo de Software
Simón Esneider Herrera Álvarez Media Técnica Casd 10-2
Por qué? Probar el Código rido abr2010. Demostración Empírica Método Fáctico Veríficación – contrastación por medio de la percepción Es autocorrectivo.
problemas de la calidad del software
Test Driven Development
Sistema de control de calidad de software
Preocupaciones del Analista Programador & Usuarios
Un requerimiento es una condición o capacidad a la que el sistema (siendo construido) debe conformar [ Rational ]. Un requerimiento de software puede.
DESARROLLO DE SOFTWARE Cuando se va desarrollar un software intervienen muchas personas como lo es el cliente quien es el que tiene el problema en su.
INTRODUCCIÓN A LA INGENIERIA DE SOFTWARE ALUMNO MILLER ANDRES GALINDO DUCUARA (412088)
PLATAFORMA ONLINE. 1.Mapa del Entorno del negocio Usuarios: Trabajadores de las empresas. Actualmente poseen algunos medios de comunicación interna pero.
1 ESTIMACIÓN basada en PUNTOS de FUNCIÓN. 2 Agenda de la presentación 4 Técnicas de estimación. 4 Puntos de Función. (En general) 4 Puntos de Función.
Modelo de procesos de software
CICLO DE VIDA DE UN SOFTWARE. Es el conjunto de los programas de cómputo, procedimientos, reglas, documentación y datos asociados, que forman parte de.
La Netiqueta. Introducción  Usos del correo electrónico Herramienta de trabajo Comunicación Intercambio de información.
Entregables del Proyecto
ALUMNO ALUMNO: DIEGO URES LEGAJO LEGAJO: La prueba unitaria es la herramienta para la Calidad Presentación Trabajo Final de Grado.
Metodologías de Desarrollo Ágil
Transcripción de la presentación:

Test Driven Development Técnicas de Diseño Facultad de Ingeniería Universidad de Buenos Aires

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

Qué es TDD? Proceso iterativo en el cual el desarrollo está guiado por los test. Los tests representan los requerimientos que nuestro código busca satisfacer. 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.

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

Diseño Simple Nuestro código debe satisfacer los requerimientos (tests) ni menos ni más. Si no escribimos el código necesario para satisfacer los requerimientos no estamos cumpliendo con lo solicitado, si escribimos de más agregamos complejidad innecesaria que luego hay que mantener.

Diseño Simple Guías para lograr ni menos ni más: El código es apropiado para quien está dirigido. El código pasa todos los tests. El código comunica todo lo necesario. El código tiene la menor cantidad de clases. El código tiene la menor cantidad de métodos.

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

Refactoring Proceso que permite mejorar el código existente sin cambiar su funcionalidad externa. Esencial para TDD porque es necesario refinar el diseño del código escrito a medida que agregamos tests.

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

El proceso de TDD Armar una lista de tests. Esto permite describir los requerimientos de forma no ambigua e indicar el scope de los mismos. Red Green Refactor El proceso se debe realizar en pasos pequeños lo que permite determinar rápidamente donde cometimos un error en caso de hacerlo.

El proceso de TDD Escribir el código asociado a un test. Compilar el código asociado al test. (no compila porque aún no se ha implementado) Implementar sólo lo suficiente para que el código escrito compile. Correr el test y ver si falla. Implementar sólo lo suficiente para que el test pase. Correr el test y ver que efectivamente pasa. Refactorizar para aclarar y eliminar duplicación. Repetir con todos los tests de la lista.

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

Ejemplo

Agenda Qué es TDD? Diseño Simple Refactoring El proceso de TDD Ejemplo Herramientas

Herramientas xUnit (JUnit, NUnit, DbUnit, HttpUnit, etc.) Easy Mock JMock TestNG Selenium

Preguntas ?

Gracias!