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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

10550 Programming in Visual Basic with Microsoft Visual Studio 2010

10550 Programming in Visual Basic with Microsoft Visual Studio 2010 10550 Programming in Visual Basic with Microsoft Visual Studio 2010 Introducción Este curso le enseña sintaxis de lenguaje Visual Basic, estructura de programa e implementación al utilizar Microsoft Visual

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

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

LINEAMIENTO PARA DESARROLLO DE APLICATIVOS EN C#

LINEAMIENTO PARA DESARROLLO DE APLICATIVOS EN C# Bogotá D.C., Julio 2014 TABLA DE CONTENIDO 1. OBJETIVO -------------------------------------------------------------------------------------------- 3 2. ALCANCE --------------------------------------------------------------------------------------------

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

DESCRIPCIÓN ESPECÍFICA

DESCRIPCIÓN ESPECÍFICA NÚCLEO:.Comercio y Servicios. DESCRIPCIÓN ESPECÍFICA SUBSECTOR: Mercadeo y Ventas. Nombre del Módulo: Mercadeo Directo para Mipymes. Código: CSAD 009 total: 0 Objetivo General: Ayudar en el diseño e implantación

Más detalles

Interfaces Graficas de Usuario en. JESSE PADILLA AGUDELO Ingeniero Electrónico

Interfaces Graficas de Usuario en. JESSE PADILLA AGUDELO Ingeniero Electrónico Interfaces Graficas de Usuario en Python: Primeros paso en PyQT4 JESSE PADILLA AGUDELO Ingeniero Electrónico Licencia de la Presentación Python Manizales - Jesse Padilla Agudelo 2 Objetivos Desarrollar

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

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

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

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases

Programación Avanzada para Sistemas de Telecomunicación. Objetos y clases. J.C. Cruellas. Objetos y clases Programación Avanzada para Sistemas de Telecomunicación Objetos y clases Juan Carlos Cruellas cruellas@ac.upc.es Objetos y clases Concepto de objeto. Concepto de clase. Clases, objetos y programas. Clases

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

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

Ejercicios - Persistencia en Android: ficheros y SQLite

Ejercicios - Persistencia en Android: ficheros y SQLite Ejercicios - Persistencia en Android: ficheros y SQLite Índice 1 Uso de ficheros (0.5 puntos)...2 2 Persistencia con ficheros (0.5 puntos)...3 3 Base de datos: SQLiteOpenHelper (0.5 puntos)... 3 4 Base

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

Testing. Contenidos. Proyectos de tests. Curso 13/14

Testing. Contenidos. Proyectos de tests. Curso 13/14 Curso 13/14 Testing Contenidos Proyectos de tests Creando un TestCase Tipos de tests Partes del test Invariantes Interfaz de Usuario Gestión del estado App. Lista de tareas 2 Proyectos de tests Los tests

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

Curso 13/14. Desarrollo de aplicaciones Android. Testing

Curso 13/14. Desarrollo de aplicaciones Android. Testing Curso 13/14 Desarrollo de Testing Contenidos Proyectos de tests Creando un TestCase Tipos de tests Partes del test Invariantes Interfaz de Usuario Gestión del estado App. Lista de tareas 2 Proyectos de

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

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

Breve tutorial de introducción a la programación con python+glade.

Breve tutorial de introducción a la programación con python+glade. Breve tutorial de introducción a la programación con python+glade. Este texto se preparó para los cursos 2005 del hacklab Metabolik Bio Hacklab de Bilbao por Jon Latorre Martinez. En el se explica de manera

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

FUNDAMENTOS DE PROGRAMACIÓN: TRABAJO PRÁCTICO OBLIGATORIO (EVALUACIÓN ORDINARIA) Curso: 2013/14

FUNDAMENTOS DE PROGRAMACIÓN: TRABAJO PRÁCTICO OBLIGATORIO (EVALUACIÓN ORDINARIA) Curso: 2013/14 CONTEXTO FUNDAMENTOS DE PROGRAMACIÓN: TRABAJO PRÁCTICO OBLIGATORIO (EVALUACIÓN ORDINARIA) Curso: 2013/14 CASO DE APLICACIÓN: GESTIÓN DE APPS Versión: 2.0.6 El trabajo práctico se enmarca en el desarrollo

Más detalles

Tema 5 Diseño con Glade

Tema 5 Diseño con Glade Tema 5 Diseño con Glade Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto Andaluz de Astrofísica Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto Andaluz de Astrofísica) Tema 5 Diseño con Glade

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

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

Programación en Scala

Programación en Scala Programación en Scala Curso introductorio by S. Muñoz-Gutiérrez stalinmunoz@yahoo.com informes@grupolinda.org Grupo LINDA Facultad de Ingeniería UNAM México Marzo-Mayo 2011 Lenguaje natural En lenguaje

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

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

Obligatorio de programación con Junit

Obligatorio de programación con Junit Obligatorio de programación con Junit Completar los siguientes ejercicios de programación cumpliendo con el siguiente reglamento. Sobre las entradas 1) Debe leerse el archivo de texto. 2) Cada archivo

Más detalles

LAB2. Jerarquía de Memoria. Laboratorio de Arquitectura e Ingeniería de Computadores. Valentin Puente. Revisión 1.1: 02-Marzo-2010

LAB2. Jerarquía de Memoria. Laboratorio de Arquitectura e Ingeniería de Computadores. Valentin Puente. Revisión 1.1: 02-Marzo-2010 Jerarquía de Memoria Laboratorio de Arquitectura e Ingeniería de Computadores Valentin Puente 10 Revisión 1.1: 02-Marzo-2010 1 INTRODUCCIÓN Y OBJETIVOS El objetivo fundamental de esta práctica es poner

Más detalles

Módulo: Resolución de problemas técnicos a distancia. Resolución de problemas técnicos a distancia. Escritorio Remoto

Módulo: Resolución de problemas técnicos a distancia. Resolución de problemas técnicos a distancia. Escritorio Remoto Resolución de problemas técnicos a distancia Módulo: Resolución de problemas técnicos a distancia Escritorio Remoto I.- REQUISITOS PARA LA HABILITACIÓN Y USO DEL ESCRITORIO REMOTO...2 II.- HABILITAR UN

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

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

NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR

NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE IGNACIO BAYUGAR Ignacio.bayugar@mercadolibre.com, i id nachobayugar@gmail.com NUEVAS TENDENCIAS EN LA CALIDAD DEL SOFTWARE El desarrollo ágil El nuevo rol de

Más detalles

Demo. TDD desde Cero. Acceptance Test Driven Development. www.iwt2.org formacion@iwt2.org

Demo. TDD desde Cero. Acceptance Test Driven Development. www.iwt2.org formacion@iwt2.org Demo TDD desde Cero Acceptance Test Driven Development www.iwt2.org formacion@iwt2.org Objetivos Objetivos Conocer cómo desarrollar un sistema software combinando pruebas de aceptación y TDD. Aprender

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

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK.

Lo que necesitaremos para programar en Java, será un editor de texto o IDE y la JDK. Introducción Java surgió en 1991 dentro de la empresa Sun Microsystems como un lenguaje de programación sencillo y universal destinado a electrodomésticos. La reducida potencia de cálculo y memoria de

Más detalles

SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS)

SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS) SAGE (ENTORNO DE CÁLCULOS MATEMÁTICOS) PRESENTACIÓN El siguiente texto forma parte de una guía acerca del Programa SAGE que tiene por finalidad actuar como un material de asesoramiento en la instalación

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

Elaborando WebQuest usando Power Point

Elaborando WebQuest usando Power Point Módulo WebQuest Elaborando WebQuest usando Power Point 2.1.- Creación de WebQuest usando el Miscrosoft Power Point En el Power Point le colocamos un Estilo a nuestra Diapositiva para iniciar nuestra Creación

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

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

1. Introducción. 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)... Examen Junio Grupo A Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1: Estación Meteorológica (4.0 pts.)... 1 1.2 Ejercicio 2: Gestión Académica: Alumnos (5.0 pts.)...

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

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

Usando GNOME para el desarrollo rápido de aplicaciones

Usando GNOME para el desarrollo rápido de aplicaciones Usando GNOME para el desarrollo rápido de aplicaciones RESUMEN El desarrollo de aplicaciones al interior de las empresas es una actividad altamente difundida a nivel nacional, el uso de tecnologías libres

Más detalles

Introducción a JAX-WS Web Services

Introducción a JAX-WS Web Services INSTITUTO POLITECNICO NACIONAL ESCUELA SUPERIOR DE CÓMPUTO ALUMNO: SANLUIS CASTILLO JOSE DAVID PROFESOR: CIFUENTES ALVAREZ ALEJANDRO SIGFRIDO MATERIA: WEB APPLICATION DEVEPLOMENT Introducción a JAX-WS

Más detalles

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación

Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación Pontificia Universidad Católica de Chile Escuela de Ingeniería Departamento de Ciencia de la Computación IIC1103 Introducción a la Programación Capítulo 2: Control de Flujo Resumen teórico If, Else Hasta

Más detalles

Aplicar técnicas de encriptamiento con el fin de comprender su funcionamiento.

Aplicar técnicas de encriptamiento con el fin de comprender su funcionamiento. Programación III, Guía 10 1 Facultad : Ingeniería Escuela : Computación Asignatura: Programación III Tema: ENCRIPTACIÓN. Objetivo Aplicar técnicas de encriptamiento con el fin de comprender su funcionamiento.

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

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

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016!

!!!!!!!! !!!!! Práctica!4.! Programación!básica!en!C.! ! Grado!en!Ingeniería!!en!Electrónica!y!Automática!Industrial! ! Curso!2015H2016! INFORMÁTICA Práctica4. ProgramaciónbásicaenC. GradoenIngenieríaenElectrónicayAutomáticaIndustrial Curso2015H2016 v2.1(18.09.2015) A continuación figuran una serie de ejercicios propuestos, agrupados por

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

La forma SSA en el testing de programas con arreglos

La forma SSA en el testing de programas con arreglos UNIVERSIDAD NACIONAL DE ROSARIO FACULTAD DE CIENCIAS EXACTAS, INGENIERÍA Y AGRIMENSURA LICENCIATURA EN CIENCIAS DE LA COMPUTACIÓN La forma SSA en el testing de programas con arreglos Tesina presentada

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

Vamos a construir, paso a paso, otro de los ejemplos que incluye como minijuego Pilas. Se trata de asteroides.py

Vamos a construir, paso a paso, otro de los ejemplos que incluye como minijuego Pilas. Se trata de asteroides.py Pilas: Asteroides asteroides.py Vamos a construir, paso a paso, otro de los ejemplos que incluye como minijuego Pilas. Se trata de asteroides.py El juego está inspirado en el clásico asteroides de las

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