Introducción a la Computación. Testing en Python. Maximiliano Geier. Facultad de Ciencias Exactas y Naturales, UBA 17/06/2014

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Introducción a la Computación. Testing en Python. Maximiliano Geier. Facultad de Ciencias Exactas y Naturales, UBA 17/06/2014"

Transcripción

1 Introducción a la Computación Testing en Python Maximiliano Geier Facultad de Ciencias Exactas y Naturales, UBA 17/06/2014 Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

2 Qué era testing? Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

3 Qué era testing (funcional)? Técnica dinámica de verificación de software. Busca contrastar la salida del programa con un documento que diga lo que se supone que debe hacer (por ejemplo, la especificación). Permite encontrar errores, pero no demostrar su ausencia. Tres niveles: 1 Test de sistema 2 Test integración 3 Test de unidad Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

4 Test de unidad Test de caja negra: no sé cómo está implementado el módulo y pruebo con entradas que me parezcan interesantes, casos borde, etc. Test de caja blanca: miro la implementación y pruebo con casos representativos para intentar cubrir todo el dominio. Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

5 Testing en Python Cómo se escriben casos de test en Python? A mano unittest unittest es un módulo para hacer testing de unidad en Python, siguiendo una filosofía de diseño similar a la que tienen JUnit en Java y Beck s Testing Framework en Smalltalk. Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

6 Testing usando unittest Receta 1 Elegir una unidad de código para probar 2 Importarla import mi_modulo 3 Importar el módulo unittest import unittest 4 Definir una clase que herede de la clase unittest.testcase class TestsDeMiTAD(unittest.TestCase):... 5 Pensar algún caso de test interesante 6 Definir un método para ese caso de test e implementarlo def test_interesante(self):... 7 Volver a 5 mientras sea necesario 8 Terminar con el siguiente bloque de código: if name == " main ": unittest.main() Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

7 Ejemplo: clase Inversor Definimos una clase sencilla que devuelve el inverso multiplicativo de un número: class Inversor: def init (self, n): self.v = 1/n def valor(self): return self.v Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

8 Ejemplo: clase Inversor from inversor import Inversor import math import unittest class TestInversor(unittest.TestCase): def test_unidad(self): """Testea que el inverso de la unidad sea la unidad""" def test_cero(self): """Testea que falle cuando se pide el inverso de cero""" def test_otro(self): """Testea un valor que tiene un inverso distinto de si mismo""" def test_doble_inversion(self): """Testea que invertir el inverso de un numero de el numero original""" if name == " main ": unittest.main() Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

9 Métodos assert Al heredar de la clase unittest.testcase, tenemos acceso a varios métodos que nos hacen más fácil escribir los casos de test. Método assert self.assertequal(a, b) self.asserttrue(x) self.assertlessequal(a, b) self.assertraises(e, f, arg) self.assertitemsequal(a, b) Falla a menos que... a sea igual a b x sea verdadero a sea menor o igual a b llamar a f(arg) dé una excepción de tipo e a tenga los mismos elementos que b Lista completa: Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

10 Implementando los casos de test Vamos a escribir algunos de los casos de test para ver cómo funciona esto: def test_unidad(self): """Testea que el inverso de la unidad sea la unidad""" self.assertequal(inversor(1).valor(), 1) def test_cero(self): """Testea que falle cuando se pide el inverso de cero""" # llama a Inversor(0) self.assertraises(zerodivisionerror, Inversor, 0) Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

11 Testeando los tests Para correr los tests: python3.2 test_de_mi_tad.py También se puede ejecutar la siguiente ĺınea: python3.2 -m unittest discover Esta última ĺınea busca todos los casos de test de unittest definidos en la carpeta de trabajo y los ejecuta. Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

12 Bonus Algunos otros truquitos que les pueden resultar útiles: Para que Python muestre más mensajes cuando ejecuta los casos de test if name == " main ": unittest.main(verbosity=2) Para correr los casos de test desde el intérprete de Python >>> import unittest >>> unittest.main(module= mi_modulo_con_tests, exit=false) Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

13 Tarea Ejercicio: Implementar casos de test para el TP1 usando unittest. Ejemplos de cosas que pueden probar: 1 Ambos algoritmos calculan correctamente algún ejemplo hardcodeado (por ejemplo, el del enunciado). 2 Si hay un par de puntos con el mismo valor en ambas coordenadas, la distancia mínima es 0. 3 El algoritmo de ordenamiento implementado funciona correctamente para diferentes tamaños de entrada elegidos de forma aleatoria. 4 Ambos algoritmos devuelven pares que se encuentran a la misma distancia (quizás no el mismo) para distintos tamaños de entrada elegidos de forma aleatoria. 5 (Opcional) Cualquier otro caso de test que se les ocurra. Maximiliano Geier (UBA) Clase 25: Testing en Python 17/06/ / 13

Pruebas de unidad con JUnit

Pruebas de unidad con JUnit Pruebas de unidad con JUnit Cuando se implementa software, resulta recomendable comprobar que el código que hemos escrito funciona correctamente. Para ello, implementamos pruebas que verifican que nuestro

Más detalles

Hoy terminamos caja blanca

Hoy terminamos caja blanca Hoy terminamos caja blanca Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Blanca/Otros enfoques Blanca A. Vargas Govea vargasgovea@itesm.mx Marzo 22, 2013 Contenido Pruebas

Más detalles

Sistemas de Programas Universidad Simón Bolívar

Sistemas de Programas Universidad Simón Bolívar Pruebas en sistemas orientados a objetos Sistemas de Programas Universidad Simón Bolívar Agenda 2 Introducción Qué es probar software? Por qué necesitamos probar el software? Terminología de Pruebas Black

Más detalles

Capitulo 3. Test Driven Development

Capitulo 3. Test Driven Development Capitulo 3. Test Driven Development 3.1 Uso de JUnit como framework para realizar pruebas unitarias Como ya se mencionó en el marco teórico Test Driven Development es una técnica de programación extrema

Más detalles

Carlos Fontela cfontela@fi.uba.ar

Carlos Fontela cfontela@fi.uba.ar Carlos Fontela cfontela@fi.uba.ar Vimos la estrategia de resolución de problemas usando objetos Pero no cómo implementar los propios objetos => Construcción de objetos 2 1c2016 Diseño por contrato y Test-First

Más detalles

Técnicas Avanzadas de Testing Automático

Técnicas Avanzadas de Testing Automático Técnicas Avanzadas de Testing Automático Marcelo Frias ITBA - Buenos Aires, Argentina CONICET Preliminares: Calidad Validación y Verificación Especificaciones y V&V Análisis estático y dinámico Inspecciones

Más detalles

Artesanía de So-ware y Desarrollo Dirigido por Pruebas

Artesanía de So-ware y Desarrollo Dirigido por Pruebas Artesanía de So-ware y Desarrollo Dirigido por Pruebas QUÉ ES LA ARTESANÍA DE SOFTWARE Manifiesto por la Artesanía de So-ware Como aspirantes a artesanos de so-ware, estamos elevando el nivel de desarrollo

Más detalles

Clase Práctica Nº 1 ED 2015

Clase Práctica Nº 1 ED 2015 Clase Práctica Nº 1 ED 2015 Introducción La creación de una solución de software tiene varias etapas, por ejemplo: Diseño Implementación Testeo Y para cada etapa existen herramientas que nos ayudan. Introducción

Más detalles

capacitación y guía para el desarrollo de software Pruebas de Software Pruebas de Software 1

capacitación y guía para el desarrollo de software Pruebas de Software Pruebas de Software 1 Pruebas de Software Pruebas de Software 1 PRUEBAS DE SOFTWARE... 3 INTRODUCCIÓN... 3 Definiciones [1]... 3 Filosofía y Economía... 4 Justificación... 4 PRINCIPIOS [1]... 7 NIVELES DE PRUEBAS... 8 TIPOS

Más detalles

Euclides extendido y Test de primalidad probabiĺıstico

Euclides extendido y Test de primalidad probabiĺıstico Euclides extendido y Test de primalidad probabiĺıstico Taller de Álgebra I Verano de 2014 Lema de Bézout Recordemos este lema: Lema (Étienne Bézout) Sean a, b Z, alguno distinto de 0. Entonces existen

Más detalles

Pruebas de unidad utilizando JUnit Juan Manuel Fernández Peña, 2005

Pruebas de unidad utilizando JUnit Juan Manuel Fernández Peña, 2005 Pruebas de unidad utilizando JUnit Juan Manuel Fernández Peña, 2005 JUnit es una herramienta para la realización de pruebas de unidad de software desarrollado con Java, que es una herramienta de software

Más detalles

Ahorcado online multijugador

Ahorcado online multijugador Ahorcado online multijugador Objetivo Que el alumno ponga en práctica los conocimientos teóricos y prácticos adquiridos en la Parte II de la asignatura de Programación Concurrente. La práctica podrá realizarse

Más detalles

Lenguaje Ruby y su entorno

Lenguaje Ruby y su entorno Lenguaje Ruby y su entorno Curso de Ruby IV: Rspec Pedro Navajas Modelo Laboratorio de Software Libre Escuela Politécnica Superior Universidad de Córdoba 24 de Marzo de 2011 Pedro Navajas Modelo (UCO)

Más detalles

Lenguaje Java Avanzado

Lenguaje Java Avanzado Lenguaje Java Avanzado Sesión 4: Pruebas con JUnit 2012-2013 Depto. Ciencia de la Computación e IA Índice Introducción a JUnit Implementación de las pruebas Ejecución de pruebas Pruebas con excepciones

Más detalles

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C)

GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) APRENDERAPROGRAMAR.COM GESTIÓN DE EXCEPCIONES EN JAVA. CAPTURA CON BLOQUES TRY CATCH Y FINALLY. EJEMPLOS RESUELTOS. (CU00927C) Sección: Cursos Categoría: Lenguaje de programación Java nivel avanzado I

Más detalles

PROCESOS DE RAZONAMIENTO INVERSO: PATRÓN DE DISEÑO ADAPTER EN PYTHON Y PHP, LOS

PROCESOS DE RAZONAMIENTO INVERSO: PATRÓN DE DISEÑO ADAPTER EN PYTHON Y PHP, LOS 10 PROCESOS DE RAZONAMIENTO INVERSO: PATRÓN DE DISEÑO ADAPTER EN PYTHON Y PHP, LOS CÓMO Y LOS PARA QUÉ TIENES UN ENCHUFE DE TRES PATAS PERO UN TOMA CORRIENTE DE DOS. NECESITAS INSERTAR LA CLAVIJA EN EL

Más detalles

Testing. Tipos, Planificación y Ejecución de Pruebas

Testing. Tipos, Planificación y Ejecución de Pruebas Testing Tipos, Planificación y Ejecución de Pruebas Contenido Definiciones del Testing de Software Objetivos, conceptos Tipos de Test Testing a-la RUP Rol del Testing en el proceso Artefactos Trabajadores

Más detalles

Técnicas Avanzadas de Testing Automatizado

Técnicas Avanzadas de Testing Automatizado Técnicas Avanzadas de Testing Automatizado Criterios de cobertura: Caja blanca/caja negra Clases de Equivalencia Valores de borde Cobertura basada en flujo de control CodeCover Mutación Jumble Criterios

Más detalles

Integración Continua en Hudson

Integración Continua en Hudson Laboratorio de Redes y Sistemas operativos Integración Continua en Hudson 2/12/2013 Alumnos Diego Turchak Martín Cappa Integración Continua Introducción La Integración Continua es una práctica en desarrollo

Más detalles

JUNIT MATERIAL ELABORADO POR: RUBBY CASALLAS/JUAN PABLO QUIROGA/GLORIA CORTÉS DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DE LOS ANDES

JUNIT MATERIAL ELABORADO POR: RUBBY CASALLAS/JUAN PABLO QUIROGA/GLORIA CORTÉS DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DE LOS ANDES JUNIT MATERIAL ELABORADO POR: RUBBY CASALLAS/JUAN PABLO QUIROGA/GLORIA CORTÉS DEPARTAMENTO DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DE LOS ANDES 1 Objetivo del caso JUnit 2 Poder utilizar JUnit para realizar

Más detalles

DESARROLLO DE SOFTWARE DE CALIDAD: EXTREME PROGRAMMING Y HERRAMIENTAS OPENSOURCE. Mª Carmen Bartolomé. mcbartolome@qualityobjects.

DESARROLLO DE SOFTWARE DE CALIDAD: EXTREME PROGRAMMING Y HERRAMIENTAS OPENSOURCE. Mª Carmen Bartolomé. mcbartolome@qualityobjects. DESARROLLO DE SOFTWARE DE CALIDAD: EXTREME PROGRAMMING Y HERRAMIENTAS OPENSOURCE Mª Carmen Bartolomé mcbartolome@qualityobjects.com Índice Introducción a extreme Programming (XP) Herramientas OpenSource

Más detalles

construcción de programas Prof. Eliana Guzmán U.

construcción de programas Prof. Eliana Guzmán U. Unidad II. Metodología para la construcción de programas Prof. Eliana Guzmán U. Semestre: A-2015 Introducción Resolver un problema con una computadora conduce a la escritura de un programa y a su ejecución.

Más detalles

podría devolver como resultado una imagen en la que se mostraran las diferencias así:

podría devolver como resultado una imagen en la que se mostraran las diferencias así: Examen Septiembre Informática Año 2014/2015 Facultad de CC. Matemáticas 14 de Septiembre 2015 1. Diferencias de imágenes [3.5 puntos] Escribe una función que reciba dos imágenes y devuelva una nueva imagen

Más detalles

Pruebas de Unidad en BlueJ

Pruebas de Unidad en BlueJ Pruebas de Unidad en BlueJ Versión 1.0 para BlueJ versión 1.3.0 Michael Kölling Mærsk Institute University of Southern Denmark Traducido al español por Matías Avallone Instituto de Tecnología Ort Nº 2

Más detalles

Definición de clases: Herencia, polimorfismo, ligadura dinámica

Definición de clases: Herencia, polimorfismo, ligadura dinámica Tema 7 Definición de clases: Herencia, polimorfismo, ligadura dinámica Con alguna frecuencia es necesario definir clases de objetos entre las cuales hay elementos comunes. En una aplicación en la cual

Más detalles

Pruebas de Programas. Introducción Errores de software. Julio Villena Román. Un error en un programa puede ser algo muy serio

Pruebas de Programas. Introducción Errores de software. Julio Villena Román. Un error en un programa puede ser algo muy serio Laboratorio de Programación Pruebas de Programas Julio Villena Román jvillena@it.uc3m.es Introducción Errores de software Un error en un programa puede ser algo muy serio http://www.wired.com/software/coolapps/news/2005/11/69355?currentpage=all

Más detalles

Tutorial: Python + Soap Web Service. Daniel Montenegro Cordero

Tutorial: Python + Soap Web Service. Daniel Montenegro Cordero Tutorial: Python + Soap Web Service Daniel Montenegro Cordero Python - Lenguaje de programación interpretado. - Filosofia código legible. - Permite programación orientada a objetos, imperativa y funcional.

Más detalles

DOCUMENTACIÓN DE LAS PRUEBAS DE INTEGRACIÓN

DOCUMENTACIÓN DE LAS PRUEBAS DE INTEGRACIÓN DOCUMENTACIÓN DE LAS PRUEBAS DE INTEGRACIÓN INTRODUCCIÓN Probar completamente cada módulo es inabordable y además no resulta ni rentable ni práctico. Se trata de alcanzar un compromiso para que con el

Más detalles

Práctica 7. Pruebas. Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos.

Práctica 7. Pruebas. Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos. Objetivos Introducir conceptos básicos de pruebas unitarias en sistemas orientados a objetos. Material Necesario - Pruebas de caja negra con Junit. www.junit.org Viene integrado en Eclipse, pero al crear

Más detalles

Programación I: Funciones y módulos

Programación I: Funciones y módulos Programación I: Funciones y módulos Esteban De La Fuente Rubio 2 de abril de 23 Índice. Funciones.. Definición y llamado de funciones............................................. 2.2. Parámetros por omisión..................................................

Más detalles

Informe de Segunda Presentación

Informe de Segunda Presentación UNIVERSIDAD DE TARAPACA ARICA Informe de Segunda Presentación Integrantes: José Báez Mª Francisca Chacana Carlos Galleguillos Pablo Vargas Introducción Python es un lenguaje de programación de alto nivel

Más detalles

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras. Actividades de Divulgación del Centro Atómico Bariloche Qué hay detrás de un programa de computadora? Expositores: Daniela Arnica Pablo E. Argañaras División Mecánica Computacional Gerencia de Investigación

Más detalles

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE

PRUEBAS DE SOFTWARE TECNICAS DE PRUEBA DE SOFTWARE PRUEBAS DE SOFTWARE La prueba del software es un elemento crítico para la garantía de la calidad del software. El objetivo de la etapa de pruebas es garantizar la calidad del producto desarrollado. Además,

Más detalles

Resumen de clase Ejemplos creacionales. Ideas de Diseño sobre ejercicios anteriores

Resumen de clase Ejemplos creacionales. Ideas de Diseño sobre ejercicios anteriores Resumen de clase Ejemplos creacionales Ideas de Diseño sobre ejercicios anteriores 1 cuatrimestre 2009 Contenido EJEMPLO CLIENTES DE UNA TARJETA DE CRÉDITO: ENUNCIADO...3 SOBRE EL DOMINIO...3 SOLUCIÓN

Más detalles

Brindar al alumno un marco teórico y práctico para el desarrollo de software bajo estándares de calidad.

Brindar al alumno un marco teórico y práctico para el desarrollo de software bajo estándares de calidad. Universidad Católica San Pablo Facultad de Ingeniería y Computación Programa Profesional de Ciencia de la Computación SILABO CS290T. Ingeniería de Software I (Obligatorio) 2012-2 1. DATOS GENERALES 1.1

Más detalles

Tema 3. Test Driven Development

Tema 3. Test Driven Development Tema 3. Test Driven Development Ejercicios Resueltos Ejercicio 01. Desarrolle mediante TDD una implementación del algoritmo de la Criba de Eratóstenes para calcular la lista de los números primos desde

Más detalles

Resumen de clase Ejercicio Firewall. Ideas de Diseño y Command Pattern

Resumen de clase Ejercicio Firewall. Ideas de Diseño y Command Pattern Resumen de clase Ejercicio Firewall Ideas de Diseño y Command Pattern 2 cuatrimestre 2008 Contenido RESUMEN DE CLASE EJERCICIO FIREWALL...3 ENUNCIADO...3 EXPLICACIÓN DEL DOMINIO...4 PRIMERAS IDEAS...4

Más detalles

Manual del entorno de integración continua

Manual del entorno de integración continua Manual del entorno de integración continua Última versión del documento: http://oriolrius.cat/blog/2010/04/22/integracio-continua Actualizaciones: 2010/04/22 Oriol Rius - Inicial Autor: Oriol Rius

Más detalles

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE

PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE PRÁCTICA 1 MANUAL BÁSICO DE ECLIPSE Facilidades de eclipse para el uso de ant y JUnit Tabla de contenidos 1. Qué es Eclipse?... 2 2. Crear un proyecto en Eclipse... 2 3. Utilizar Ant en nuestro proyecto

Más detalles

Automatización de Pruebas de Software con Herramientas Open Source. Henry Eduardo Carrión Cristóbal

Automatización de Pruebas de Software con Herramientas Open Source. Henry Eduardo Carrión Cristóbal Automatización de Pruebas de Software con Herramientas Open Source Henry Eduardo Carrión Cristóbal Agenda Pruebas de Software Test Driven Development Por que automatizar? Herramientas Estrategias Conclusiones

Más detalles

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE

Contenidos. Gestión dinámica de memoria. Gestión dinámica de memoria. Introducción. 1. Introducción 2. El operador NEW 3. El operador DELETE Contenidos 1. Introducción 2. El operador NEW 3. El operador DELETE 1 Introducción Hasta ahora hemos visto que cada vez que queremos usar una variable debemos reservarle un lugar de la memoria al comenzar

Más detalles

Introducción a la Programación

Introducción a la Programación Descripción y Contenido del Curso Introducción a la Programación Capacity Academy Educación en Tecnología de la Información Online, Efectiva y Garantizada Qué aprenderá si toma este Curso? En este curso

Más detalles

De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es

De los casos de uso a los casos de prueba. Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es De los casos de uso a los casos de prueba Caso práctico. Aplicación web Javier Gutiérrez / javierj@us.es Objetivo Objetivo: Mostrar cómo aplicar el proceso ETUC para la generación de casos de prueba a

Más detalles

Paradigmas de Programación Práctica II - Curso 2012/13

Paradigmas de Programación Práctica II - Curso 2012/13 Paradigmas de Programación Práctica II - Curso 2012/13 Distorsión de Imágenes II Definición y requisitos Esta práctica es una continuación de la práctica anterior (distorsión de imágenes) en la que vamos

Más detalles

Computando lo áspero

Computando lo áspero Computando lo áspero Por qué se cuelgan las computadoras? Santiago Figueira Departamento de Computación FCEyN, UBA Semana de la Computación 2007 Historia de Hilbert y sus amigos David Hilbert, 1900: Formalicemos

Más detalles

BETA. Sacándole Partido a JUnit. Mocking. www.iwt2.org formacion@iwt2.org

BETA. Sacándole Partido a JUnit. Mocking. www.iwt2.org formacion@iwt2.org BETA Sacándole Partido a JUnit Mocking www.iwt2.org formacion@iwt2.org 03. Mocking Aprender qué es el mocking y para qué sirve. Desarrollar el tipo de pruebas en las que es necesario un mock. Conocer librerías

Más detalles

Aseguramiento de la calidad y pruebas de software

Aseguramiento de la calidad y pruebas de software Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Automatización de pruebas unitarias Blanca A. Vargas Govea vargasgovea@itesm.mx Abril 23, 2013 Contenido Automatización de pruebas

Más detalles

Criterios de clasificación

Criterios de clasificación Criterios de clasificación Usualmente clasificamos para agrupar elementos con características comunes, simplificando la realidad y analizando un conjunto de elementos desde distintos puntos de vista. Sobre

Más detalles

SCR6150c Versión 2.0(12/01/05)

SCR6150c Versión 2.0(12/01/05) SCR6150c Versión 2.0(12/01/05) JUnit: Manual de usuario Fecha: Referencia: EJIE S.A. Mediterráneo, 3 Tel. 945 01 73 00* Fax. 945 01 73 01 01010 Vitoria-Gasteiz Posta-kutxatila / Apartado: 809 01080 Vitoria-Gasteiz

Más detalles

6.4 ESTRATEGIAS DE PRUEBA

6.4 ESTRATEGIAS DE PRUEBA Prueba del sistema Prueba de validación Prueba de integración Prueba de Unidad Código Diseño Requisitos Ingeniería del Sistema Las pruebas del software aplican similar estrategia moviéndonos de adentro

Más detalles

DESARROLLO DE APLICACIONES ASP.NET EN MVC

DESARROLLO DE APLICACIONES ASP.NET EN MVC DESARROLLO DE APLICACIONES ASP.NET EN MVC 1. ASP.NET ASP.NET es una tecnología gratuita que permite a los programadores crear páginas web dinámicas, desde websites personales hasta aplicaciones web empresariales.

Más detalles

Clase 11. Análisis dinámico, 2ª parte.

Clase 11. Análisis dinámico, 2ª parte. Clase 11. Análisis dinámico, 2ª parte. Continuamos con el mismo tema de la clase anterior, pero esta vez nos ocuparemos principalmente de la fase de prueba. Nos detendremos brevemente en algunas de las

Más detalles

Refactoring: otra práctica de la Programación extrema

Refactoring: otra práctica de la Programación extrema Hackers & Developers Magazine Año 0, Número 6 31 Refactoring: otra práctica de la Programación extrema EXTREME PROGRAMMING En ediciones anteriores estuvimos hablando de TDD, sus beneficios y forma de implementarlo.

Más detalles

Pruebas unitarias. Índice de contenido. Características de una buena prueba unitaria. Curso.NET con C#

Pruebas unitarias. Índice de contenido. Características de una buena prueba unitaria. Curso.NET con C# Pruebas unitarias Índice de contenido Características de una buena prueba unitaria...1 Beneficios de las pruebas unitarias...2 Mitos de las pruebas unitarias...3 Prueba de método...4 Métodos de inicialización...10

Más detalles

Testing y Mocking: Probando Aplicaciones

Testing y Mocking: Probando Aplicaciones Testing y Mocking: Probando Aplicaciones 1 Introducción 2 Tipos de tests 3 Inyección de dependencias, DI 4 Mocking Outline 1 Introducción 2 Tipos de tests 3 Inyección de dependencias, DI 4 Mocking Outline

Más detalles

Desarrollo de Plugins en python para software educativo TurtleArt

Desarrollo de Plugins en python para software educativo TurtleArt Desarrollo de Plugins en python para software educativo TurtleArt TurtleArt es un entorno de programación gráfico basado en el lenguaje LOGO, en el que se pueden hacer pequeños programas y realizar diseños

Más detalles

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases

Inicio de MO Inicio de MD Inicio de MF. Documento de Análisis. Base de datos de las especificaciones OMT. MO, MD, MF Detallados. Librería de Clases 3.2 TÉCNICA DE MODELADO DE OBJETOS (OMT) (JAMES RUMBAUGH). 3.2.1 Introducción. En este documento se trata tanto el OMT-1 como el OMT-2, el primero contenido en el Libro Modelado y Diseño Orientado (Metodología

Más detalles

Curso de Python Inicial

Curso de Python Inicial Logo IAA-CSIC Curso organizado por el Gabinete de Formación del CSIC Curso de Python Inicial Clases Contenidos 1. Paradigmas de la Programación 2. Programación Orientada a objetos 3. Clases 4. Objetos

Más detalles

Benemérita Universidad Autónoma del Estado de Puebla

Benemérita Universidad Autónoma del Estado de Puebla Benemérita Universidad Autónoma del Estado de Puebla Facultad de Cs. De la Computación Programación Concurrente y Paralela Práctica de Laboratorio No. 4 Profr: María del Carmen Cerón Garnica Alumno: Roberto

Más detalles

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos Conceptos ELO329: Diseño y Programación Orientados a Objetos 1 Paradigmas de Programación Historia: Los computadores parten cableados por hardware, Luego se introduce la programación en binario, Se desarrolla

Más detalles

Introducción al lenguaje de programación java

Introducción al lenguaje de programación java Introducción al lenguaje de programación java Algoritmia y Programación Slide 1 LENGUAJES DE PROGRAMACION Un lenguaje de programación es un idioma artificial diseñado y creado para expresar algoritmos

Más detalles

Sistema de Gestión del Plan de Obras Plan de Verificación y Validación Versión 1.0. Historia de revisiones

Sistema de Gestión del Plan de Obras Plan de Verificación y Validación Versión 1.0. Historia de revisiones Sistema de Gestión del Plan de Obras Plan de Verificación y Validación Versión 1.0 Historia de revisiones Fecha Versión Descripción Autor 22/08/2005 1.0 Versión preliminar Horacio Nova 25/08/2005 1.0 Versión

Más detalles

CLASIFICADOR LINGÜÍSTICO DE TEXTOS EN JAVA

CLASIFICADOR LINGÜÍSTICO DE TEXTOS EN JAVA CLASIFICADOR LINGÜÍSTICO DE TEXTOS EN JAVA Óscar Alberto García Pérez Universidad Carlos III de Madrid 100039016@alumnos.uc3m.es Ignacio Martínez Fernández Universidad Carlos III de Madrid 100039048@alumnos.uc3m.es

Más detalles

Porque hacemos Testing? BY: ALFREDO ALVAREZ

Porque hacemos Testing? BY: ALFREDO ALVAREZ Porque hacemos Testing? BY: ALFREDO ALVAREZ Base para nuestra conversación Cual es el trabajo de un tester? En el pasado-> Mantener la calidad y encontrar Bugs. En estos días-> Mantener el equipo al tanto

Más detalles

CLASE # 5 TÉCNICAS DE CAJA BLANCA

CLASE # 5 TÉCNICAS DE CAJA BLANCA CLASE # 5 TÉCNICAS DE CAJA BLANCA 750105M - TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE SEMESTRE 2013A - DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente

Más detalles

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente:

Figura 1. Símbolo que representa una ALU. El sentido y la funcionalidad de las señales de la ALU de la Figura 1 es el siguiente: Departamento de Ingeniería de Sistemas Facultad de Ingeniería Universidad de Antioquia Arquitectura de Computadores y Laboratorio ISI355 (2011 2) Práctica No. 1 Diseño e implementación de una unidad aritmético

Más detalles

Federico Peinado www.federicopeinado.es

Federico Peinado www.federicopeinado.es Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

ESTRATEGIA DE DISEÑO PARA LA AUTOMATIZACIÓN DE PRUEBAS UNITARIAS DE CÓDIGOS PHP UTILIZANDO EL FRAMEWORK PHPUNIT

ESTRATEGIA DE DISEÑO PARA LA AUTOMATIZACIÓN DE PRUEBAS UNITARIAS DE CÓDIGOS PHP UTILIZANDO EL FRAMEWORK PHPUNIT ESTRATEGIA DE DISEÑO PARA LA AUTOMATIZACIÓN DE PRUEBAS UNITARIAS DE CÓDIGOS PHP UTILIZANDO EL FRAMEWORK PHPUNIT Alejandro Villa Betancur 1, Jorge E. Giraldo Plaza 2 1 Estudiante de ingeniería Informática,

Más detalles

PRÁCTICAS. Diseño de. Sistemas Informáticos Industriales

PRÁCTICAS. Diseño de. Sistemas Informáticos Industriales Diseño de Sistemas Informáticos Industriales PRÁCTICAS Ingeniería Técnica Industrial (Electrónico) Departamento de Informática de Sistemas y Computadores Escuela Técnica Superior de Ingeniería del Diseño

Más detalles

2 Métodos combinatorios

2 Métodos combinatorios 2 Métodos combinatorios Las pruebas pueden aplicarse de muchas maneras, es decir, existen diferentes formas de preparar casos de prueba. En este capítulo se presentan dos formas de prueba muy fáciles de

Más detalles

Ingeniería del Software II

Ingeniería del Software II Ingeniería del Software II Primer cuatrimestre de 2008 Departamento de Computación Facultad de Ciencias Exactas Universidad de Buenos Aires 1 de 8 Preguntas Generales El objetivo de estas preguntas teóricas

Más detalles

Nano Taller de Python

Nano Taller de Python Charla 5: Programación Funcional Royal Institute of Technology (KTH), Estocolmo, Suecia Grupo de Nanomateriales (GNM), Santiago, Chile 13 de enero 2009, de 13:00 a 14:00 Parte I Programación

Más detalles

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor. Sesión 03: Lenguajes web del servidor Competencias a Conseguir: - Conocer el entorno de trabajo a nivel de servidores web. - Instalación del localhost (Servidor Local). - Repaso general de PHP y ejercicios

Más detalles

IV. Implantación del sistema.

IV. Implantación del sistema. IV. Implantación del sistema. Para hablar sobre el proceso de desarrollo del sistema de Recuperación de Información Visual propuesto, empezaremos hablando del hardware utilizado, las herramientas de software

Más detalles

Manual de instalación de UdelaRTEX

Manual de instalación de UdelaRTEX Manual de instalación de UdelaRTEX Mihdí Caballero http://www.fing.edu.uy/ mcaballero/ 20 de septiembre de 2015 - Versión 1.1 Bienvenidos al manual de instalación de todo lo necesario para correr la plantilla

Más detalles

CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E)

CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E) APRENDERAPROGRAMAR.COM CLASS JAVASCRIPT CLASES? OBJETOS PREDEFINIDOS. WINDOW, OBJETO GLOBAL. NUMBER, MATH, DATE, REGEXP, ERROR. (CU01144E) Sección: Cursos Categoría: Tutorial básico del programador web:

Más detalles

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler

SOLUCION PARCIAL TASK SCHEDULER. Task Scheduler Task Scheduler Se necesita modelar una aplicación que permita definir tareas y ejecutarlas en forma programada. Las tareas pueden ser: La ejecución de programa cualquiera o comando del sistema operativo,

Más detalles

Encriptación en Redes

Encriptación en Redes Encriptación en Redes Integrantes: Patricio Rodríguez. Javier Vergara. Sergio Vergara. Profesor: Agustín González. Fecha: 28 de Julio de 2014. Resumen Un tema importante actualmente en la redes de computadores,

Más detalles

ESTUDIO COMPARATIVO DE METODOLOGÍAS DE DESARROLLO DE SOFTWARE ORIENTADAS A LA CALIDAD INTRÍNSECA

ESTUDIO COMPARATIVO DE METODOLOGÍAS DE DESARROLLO DE SOFTWARE ORIENTADAS A LA CALIDAD INTRÍNSECA UNIVERSIDAD DE CHILE FACULTAD DE CIENCIAS FÍSICAS Y MATEMÁTICAS DEPARTAMENTO DE CIENCIAS DE LA COMPUTACIÓN ESTUDIO COMPARATIVO DE METODOLOGÍAS DE DESARROLLO DE SOFTWARE ORIENTADAS A LA CALIDAD INTRÍNSECA

Más detalles

Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13

Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13 Estructuras de Datos y Algoritmos Práctica I - Curso 2012/13 Rompiendo el Código Enigma Introducción y objetivos Como un pequeño homenaje a Alan Turing en su año conmemorativo, las prácticas de este curso

Más detalles

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com

TUTORIAL DE PHP. M. en C. Erika Vilches. Parte 2. http://www.erikavilches.com TUTORIAL DE PHP M. en C. Erika Vilches Parte 2 http://www.erikavilches.com Enunciados Condicionales Inicia con la palabra clave if seguida de una condición entre paréntesis $number = 5; if ($number < 10)

Más detalles

Introducción Descripción del servicio

Introducción Descripción del servicio 507953 1 Contenido Contenido Cambios Introducción Descripción del servicio Introducción Arquitectura Paso a paso Capa de negocio Adapter Interface Service Proxy Fichero de propiedades Despliegue del servicio

Más detalles

Framework 1. Web en Java. (solo aplicaciones en mantenimiento)

Framework 1. Web en Java. (solo aplicaciones en mantenimiento) Framework 1 Desarrollo de aplicaciones Web en Java (solo aplicaciones en mantenimiento) Enero de 2013 Unidad de Arquitectura y Soporte de Aplicaciones Área de Aplicaciones Especiales y Arquitectura de

Más detalles

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php

Hilos en Java. Crear un Hilo. Detener un hilo. Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Fuente: http://www.chuidiang.com/java/hilos/hilos_java.php Hilos en Java A veces necesitamos que nuestro programa Java realice varias cosas simultáneamente. Otras veces tiene que realizar una tarea muy

Más detalles

Tutorial de Introducción a Grails

Tutorial de Introducción a Grails Tutorial de Introducción a Grails Adrián Cepillo Macías 7 de marzo de 01 1 Índice Índice 1 1. Instalación de Grails. Creando nuestra aplicación 3. Importando datos de prueba. Configuración del Data Source

Más detalles

Introducción a PYTHON. Cesar Husillos & Víctor Terrón. Abril de 2014

Introducción a PYTHON. Cesar Husillos & Víctor Terrón. Abril de 2014 Introducción a PYTHON Cesar Husillos & Víctor Terrón IAA-CSIC Abril de 2014 Cesar Husillos & Víctor Terrón (IAA-CSIC) Módulos Abril de 2014 1 / 59 Índice 1 Overview 2 Organización 3 Reutilización 4 Cómo

Más detalles

Técnicas Avanzadas de Testing Automatizado

Técnicas Avanzadas de Testing Automatizado Técnicas Avanzadas de Testing Automatizado Introducción: Testing ad hoc Testing sistemático Testing unitario Unidad y Suite de tests Frameworks xunit Fixtures compartidos e independecia Tests parametrizados

Más detalles

MODELOS DE RECUPERACION

MODELOS DE RECUPERACION RECUPERACIÓN Y ORGANIZACIÓN DE LA INFORMACIÓN INGENIERÍA INFORMÁTICA RECUPERACIÓN Y ACCESO A LA INFORMACIÓN MODELOS DE RECUPERACION AUTOR: Rubén García Broncano NIA 100065530 grupo 81 1 INDICE 1- INTRODUCCIÓN

Más detalles

Junio 16 de Junio 2015

Junio 16 de Junio 2015 Examen Junio 16 de Junio 2015 Informática Año 2014/2015 Facultad de CC. Matemáticas 1. Ajuste de imagen [4 puntos] En este problema se pretende representar la temperatura que hay en diversas partes de

Más detalles

ETS Caminos Santander. Curso 2012. Ejercicios de introducción a la programación.

ETS Caminos Santander. Curso 2012. Ejercicios de introducción a la programación. Ejercicio 1. Saludo. El programa preguntará el nombre al usuario y a continuación le saludará de la siguiente forma "Hola, NOMBRE" donde NOMBRE es el nombre del usuario. Ejercicio 2. Suma. El programa

Más detalles

PARTE III OBTENCIÓN DE MODELOS OBTENCIÓN DE MODELOS MODELADO E IDENTIFICACIÓN ASPECTOS A TENER EN CUENTA MODELADO IDENTIFICACIÓN OBTENCIÓN DE MODELOS

PARTE III OBTENCIÓN DE MODELOS OBTENCIÓN DE MODELOS MODELADO E IDENTIFICACIÓN ASPECTOS A TENER EN CUENTA MODELADO IDENTIFICACIÓN OBTENCIÓN DE MODELOS OBTENCIÓN DE MODELOS PARTE III OBTENCIÓN DE MODELOS 1. INFORMACIÓN SOBRE EL SISTEMA 1. EL PROPIO SISTEMA (OBSERVACIÓN, TEST) 2. CONOCIMIENTO TEÓRICO (LEYES DE LA NATURALEZA, EXPERTOS, LITERATURA, ETC.)

Más detalles

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras.

Actividades de Divulgación del Centro Atómico Bariloche. Qué hay detrás de un programa de computadora? Daniela Arnica Pablo E. Argañaras. Actividades de Divulgación del Centro Atómico Bariloche Qué hay detrás de un programa de computadora? Expositores: Daniela Arnica Pablo E. Argañaras División Mecánica Computacional Gerencia de Investigación

Más detalles

Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática

Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática Cátedra de Sistemas Distribuidos Escuela de Ingeniería Electrónica Departamento de Sistemas e Informática Trabajo Práctico nro. 2: Comunicación Entre Procesos Tiempo Distribuido Objetivos del Práctico

Más detalles

Estructuras de datos: Proyecto 2

Estructuras de datos: Proyecto 2 Estructuras de datos: Proyecto 2 28 de mayo de 2013 Instrucciones Enviar las soluciones por email a los ayudantes, con copia a la profesora. Plazo de entrega: 16 de junio (durante todo el día). Se debe

Más detalles

TEMA 3: EL LENGUAJE C: PRESENTACIÓN

TEMA 3: EL LENGUAJE C: PRESENTACIÓN TEMA 3: EL LENGUAJE C: PRESENTACIÓN Historia del lenguaje C Características del lenguaje C Estructura de un programa en C El editor de textos: elementos Funciones: de usuario y de librería Librerías de

Más detalles

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta.

Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO. Raúl Gutiérrez Sánchez LAEFF - INTA raul@laeff.inta. Primera Escuela de la Red Temática SVO. Madrid, 27-28 Noviembre, 2006 JAVA BÁSICO LAEFF - INTA raul@laeff.inta.es Qué es Java? Java es un lenguaje de programación orientado a objetos desarrollado por Sun

Más detalles

Beatriz Pérez. Jornada de Testing en Vivo - 1, 2, 3 probando!

Beatriz Pérez. Jornada de Testing en Vivo - 1, 2, 3 probando! Beatriz Pérez Proceso de Testing Funcional Principales características Etapas Actividades y Entregables Roles Principales características Independiente del proceso de desarrollo Testing funcional de productos

Más detalles

Pilas (Práctica 3) import pilas from random import randint # Vamos a necesitar generar números al azar

Pilas (Práctica 3) import pilas from random import randint # Vamos a necesitar generar números al azar Pilas (Práctica 3) Objetivo Ahora vas a trabajar progresivamente en varios programas hasta conseguir dominar el uso de diferentes elementos, sobre todo, entender cómo se trabaja con clases y con objetos.

Más detalles

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007

Ingeniería del Software I Clase de Testing Funcional 2do. Cuatrimestre de 2007 Enunciado Se desea efectuar el testing funcional de un programa que ejecuta transferencias entre cuentas bancarias. El programa recibe como parámetros la cuenta de origen, la de cuenta de destino y el

Más detalles

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005

FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Dpto. de Ingeniería de Sistemas Telemáticos E.T.S.I. Telecomunicación Universidad Politécnica de Madrid FUNDAMENTOS DE PROGRAMACIÓN. SEPTIEMBRE 2005 Normas de examen: Con libros y apuntes Duración: 2 horas

Más detalles