Introducción a la Computación. Testing en Python. Facultad de Ciencias Exactas y Naturales, UBA 28/05/2013

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

Download "Introducción a la Computación. Testing en Python. Facultad de Ciencias Exactas y Naturales, UBA 28/05/2013"

Transcripción

1 Introducción a la Computación Testing en Python Maximiliano Geier (mgeier@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA 28/05/2013 Maximiliano Geier (UBA) Clase 9: Testing en Python 28/05/ / 13

2 Qué era testing? Maximiliano Geier (UBA) Clase 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 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 9: Testing en Python 28/05/ / 13

10 Live demo Maximiliano Geier (UBA) Clase 9: Testing en Python 28/05/ / 13

11 Probando los tests Para correr los tests: python test_de_mi_tad.py También se puede ejecutar la siguiente ĺınea: python -m unittest discover Prueben poniendo más de un archivo.py con casos de test en el mismo directorio. Qué hace? Maximiliano Geier (UBA) Clase 9: Testing en Python 28/05/ / 13

12 Bonus Algunos otros truquitos que les pueden resultar útiles: Para ver la versión de Python import sys if sys.version_info < (3,0,0): print "esto no anda en Python 3", Para que saltee un caso de test si estamos corriendo Python 3 class >= (3.0.0)) def test_que_no_anda_en_python3(self): self.assertequal(1/2, 0) 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 9: Testing en Python 28/05/ / 13

13 Tarea Ejercicio: Implementen casos de test para el TP2 usando unittest. 1 Prueben que se cumplan las siguientes propiedades: 1 El resultado está bien formado 2 El resultado tiene los bordes iguales a la matriz original 3 El programa calcula correctamente algún ejemplo hardcodeado 4 (Opcional) Cualquier otro caso de test que se les ocurra 2 Verifiquen qué pasa si ingresan una matriz que tenga letras y números. Comparen los resultados entre Python 2 y Python 3, haciendo que el caso de test esté preparado para ambos casos. Maximiliano Geier (UBA) Clase 9: Testing en Python 28/05/ / 13

Introducción a la Computación. Testing en Python. Maximiliano Geier. Facultad de Ciencias Exactas y Naturales, UBA 13/11/2017

Introducción a la Computación. Testing en Python. Maximiliano Geier. Facultad de Ciencias Exactas y Naturales, UBA 13/11/2017 Introducción a la Computación Testing en Python Maximiliano Geier Facultad de Ciencias Exactas y Naturales, UBA 13/11/2017 Maximiliano Geier (UBA) Testing en Python 13/11/2017 1 / 12 Testing Qué era testing?

Más detalles

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

Introducción a la Computación. Testing en Python. Maximiliano Geier. Facultad de Ciencias Exactas y Naturales, UBA 17/06/2014 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/2014 1 / 13 Qué era

Más detalles

El intérprete de Python

El intérprete de Python Introducción a la Computación El intérprete de Python Maximiliano Geier (mgeier@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA 27/03/2014 Maximiliano Geier (UBA) Clase práctica 2: El intérprete

Más detalles

Unit Testing con PHPUnit y PyUnit

Unit Testing con PHPUnit y PyUnit 20 Unit Testing con PHPUnit y PyUnit EXTREME PROGRAMMING Hackers & Developers Magazine Año 0, Número 5 En la edición Nº3 de Hackers & Developers Magazine hicimos una introducción al desarrollo dirigido

Más detalles

Tema 5 - Pruebas del software Ingeniería del Software de Gestión II

Tema 5 - Pruebas del software Ingeniería del Software de Gestión II escuela técnica superior de ingeniería informática Tema 5 - Pruebas del software Ingeniería del Software de Gestión II Objetivos Cuáles son las alternativas para verificar y validar software Qué son las

Más detalles

INGENIERÍA DEL SOFTWARE II Práctica 1. Univ. Cantabria Fac. de Ciencias Carlos Blanco, Juan Hernández

INGENIERÍA DEL SOFTWARE II Práctica 1. Univ. Cantabria Fac. de Ciencias Carlos Blanco, Juan Hernández INGENIERÍA DEL SOFTWARE II Práctica 1 Pruebas con Junit y Eclemma Univ. Cantabria Fac. de Ciencias Carlos Blanco, Juan Hernández Objetivos Realizar pruebas de caja negra de forma automática Familiarizarse

Más detalles

CLASE 11: PRUEBAS DE SOFTWARE. Unversidad Simón Bolívar. Prof. Ivette Carolina Martínez

CLASE 11: PRUEBAS DE SOFTWARE. Unversidad Simón Bolívar. Prof. Ivette Carolina Martínez CLASE 11: PRUEBAS DE SOFTWARE Unversidad Simón Bolívar. Prof. Ivette Carolina Martínez Pruebas: Definición Prueba de Software es la ejecución del código usando combinaciones de entradas, en un determinado

Más detalles

Tema I Testing Estructurado

Tema I Testing Estructurado Tema I Testing Estructurado 4ta Parte Verificación y Validación de Software UNS Contenido Testing de Unidad: Caja Negra Grafos Causa Efecto Clases de Equivalencia Valores Límite Verificación y Validación

Más detalles

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco

ING1310 Introducción a la Computación. Python. Conceptos Básicos. Carlos Reveco ING1310 Introducción a la Computación Python Conceptos Básicos Carlos Reveco creveco@dcc.uchile.cl careveco@miuandes.cl Facultad de Ingeniería/Universidad de los Andes/Chile Rev : 254 C.Reveco Facultad

Más detalles

Verificación. Taller de Programación

Verificación. Taller de Programación Verificación Taller de Programación Error, Defecto y Falla puede generar Un defecto un error humano (interna) que puede generar?! una falla (externa) El software falla cuando No hace lo requerido o Hace

Más detalles

Pruebas de Software: Herramientas: Pruebas Unitarias. Elisa Herrmann Ingeniería del Software de Gestión

Pruebas de Software: Herramientas: Pruebas Unitarias. Elisa Herrmann Ingeniería del Software de Gestión Pruebas de Software: Herramientas: Pruebas Unitarias Elisa Herrmann Ingeniería del Software de Gestión Contenido Qué son Pruebas Unitarias? Frameworks Ventajas Desventajas y limitaciones Mitos sobre Pruebas

Más detalles

Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Blanca/Cobertura Blanca A. Vargas Govea

Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Blanca/Cobertura Blanca A. Vargas Govea Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Blanca/Cobertura Blanca A. Vargas Govea vargasgovea@itesm.mx Marzo 19, 2013 Contenido Pruebas de caja blanca Cobertura Casos

Más detalles

Proceso de Testing Funcional Independiente

Proceso de Testing Funcional Independiente Proceso de Testing Funcional Independiente Tesis de Maestría en Informática Beatriz Pérez Lamancha Setiembre 2006 PEDECIBA informática Instituto de Computación (InCo) Facultad de Ingeniería Universidad

Más detalles

RTTI y reflexión A3F. Carlos

RTTI y reflexión A3F. Carlos RTTI y reflexión Modelos de objetos Carlos Fontela cfontela@ @fi.uba.ar Temario RTTI (información de tipos en tiempo de ejecución) Reflexión Modelos de objetos en dis stintos lenguajes 1c2011 2 Polimorfismoo

Más detalles

Clases y objetos en python (Programacion Orientada a Objetos)

Clases y objetos en python (Programacion Orientada a Objetos) Clases y objetos en python (Programacion Orientada a Objetos) pythondiario.com /2014/10/clases-y-objetos-en-python-programacion.html Python es un lenguaje de programación orientada a objetos (POO). La

Más detalles

Prueba, caso de prueba, defecto, falla, error, verificación, validación.

Prueba, caso de prueba, defecto, falla, error, verificación, validación. Modelos de Prueba Prueba, caso de prueba, defecto, falla, error, verificación, validación. Prueba: Las Pruebas son básicamente un conjunto de actividades dentro del desarrollo de software, es una investigación

Más detalles

Matemática y programación

Matemática y programación NI FCC - EI FING UDELAR CES ANEP 2014 Clase 1 Breve historia la ciencia de la computación o informática programación: paradigmas filosóficos en el sistema educativo Este curso Problemas, soluciones, implementaciones

Más detalles

Programación Orientada a Objetos en Python

Programación Orientada a Objetos en Python Programación Orientada a Objetos en Python La programación orientada a objetos nos propone un paradigma de programación. Paradigma: teoría cuyo núcleo central [...] suministra la base y modelo para resolver

Más detalles

introducción a la computación

introducción a la computación introducción a la computación representaciones computacionales Bruno Lara Guzmán Departamento de Computación, Facultad de Ciencias 20 de noviembre de 2013 (UAEM) introducción a la computación 20 de noviembre

Más detalles

Herramientas de Software para testing: WebInject

Herramientas de Software para testing: WebInject Herramientas de Software para testing: WebInject Equipo: Software Seekers Integrantes: Acosta, Marisel - Testing & Qa Ford, Sara - Testing & QA García, Eduardo - Project Leader Ibañez, Fabián - Developer

Más detalles

Paradigmas de Lenguajes de Programación

Paradigmas de Lenguajes de Programación Paradigmas de Lenguajes de Programación Paradigma de Objetos: Taller con smalltalk Departamento de Computación, FCEyN, UBA Primer Cuatrimestre 2015 Objetivos del día 1 Conocer el entorno Pharo 2 Reforzar

Más detalles

Pruebas. Una introducción práctica. Javier Gutiérrez sirve de algo? Ariane segundos después explotó.

Pruebas. Una introducción práctica. Javier Gutiérrez sirve de algo? Ariane segundos después explotó. Pruebas Una introducción práctica. Javier Gutiérrez (javierj@lsi.us.es) Probar sirve de algo? Ariane 5. Lanzado por primera vez el 4 de junio de 1996. Ariane 5. 36.7 segundos después explotó. Motivo: Fallo

Más detalles

Matrices Dispersas Un ejemplo de aplicación de POO en Python. Introducción a la Computación Clase 24 Patricia Borensztejn

Matrices Dispersas Un ejemplo de aplicación de POO en Python. Introducción a la Computación Clase 24 Patricia Borensztejn Matrices Dispersas Un ejemplo de aplicación de POO en Python. Introducción a la Computación Clase 24 Patricia Borensztejn Diccionarios y Tuplas Refrescamos diccionarios porque los vamos a usar para representar

Más detalles

Testing. Es el proceso orientado a demostrar que un programa no tiene errores.

Testing. Es el proceso orientado a demostrar que un programa no tiene errores. Pruebas de Software Testing Es el proceso orientado a demostrar que un programa no tiene errores. 1. Imposible. 2. Tentación a diseñar tests que no detecten errores. Es la tarea de demostrar que un programa

Más detalles

Estructuras de control selectivas

Estructuras de control selectivas Práctica 3 Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 2.0.2 Concepto de sentencia y estructura de control El cuerpo de los métodos

Más detalles

PRUEBA DE SOFTWARE LA PRUEBA DE UN SISTEMA

PRUEBA DE SOFTWARE LA PRUEBA DE UN SISTEMA PRUEBA DE SOFTWARE Probar bien un sistema no es una actividad trivial para aprender. Algunos lo consideran un arte y aprender a hacerlo bien requiere práctica y experiencia. El 50% del tiempo y esfuerzo

Más detalles

PROGRAMACIÓN LÓGICA. David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado

PROGRAMACIÓN LÓGICA. David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado PROGRAMACIÓN LÓGICA David Felipe Rico Hernandez Gabriel Esteban Bejarano Delgado Introducción Programación Lógica Conceptos clave Lenguajes de programación Ejemplos Ventajas y desventajas Aplicaciones

Más detalles

Sesión 2 Laboratorio

Sesión 2 Laboratorio Paradigmas de Programación Sesión 2 Laboratorio Cristian Tejedor García Departamento de Informática Universidad de Valladolid Curso 2016-17 Grado en Ingeniería Informática INDAT 1 Contenido 1. Objetivos

Más detalles

Pruebas de Software. Agenda. Pruebas de Programas Los Niveles de Prueba Diseño de Casos de Prueba

Pruebas de Software. Agenda. Pruebas de Programas Los Niveles de Prueba Diseño de Casos de Prueba Pruebas de Software R. Casallas Dpto. de Ingeniería de Sistemas y Computación Universidad de los Andes 1 Agenda Pruebas de Programas Los Niveles de Prueba Diseño de Casos de Prueba 2 1 Pruebas de Programas

Más detalles

Introducción a la Computación Sistemas de Control de Versiones (VCS)

Introducción a la Computación Sistemas de Control de Versiones (VCS) Introducción a la Computación Sistemas de Control de Versiones (VCS) Maximiliano Geier Facultad de Ciencias Exactas y Naturales, UBA 14/08/2017 Maximiliano Geier (UBA) Clase Práctica 1: VCS 14/08/2017

Más detalles

Pruebas de Software: Junit. Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes

Pruebas de Software: Junit. Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes Pruebas de Software: Junit Departamento de Sistemas y Computación Facultad de Ingeniería Universidad de los Andes 1 Qué es Junit? Es un framework de pruebas para Java, utilizado para escribir y ejecutar

Más detalles

Un calculadora avanzada... y algo más!

Un calculadora avanzada... y algo más! INFORMÁTICA, GRUPO D Un calculadora avanzada... y algo más! Vamos a familiarizarnos con el entorno interactivo de Python. Vamos a construir expresiones aritméticas y a guardar los resultados en variables

Más detalles

Examen de Fundamentos de Computadores y Lenguajes

Examen de Fundamentos de Computadores y Lenguajes Examen de Fundamentos de Computadores y Lenguajes Cuestiones (5 cuestiones, 5 puntos en total) Examen Parcial. Febrero 2003 1) Escribir un fragmento de programa Java que, utilizando la instrucción switch,

Más detalles

Tema 0 Introducción. Curso de Python Avanzado. Juan Pedro Boĺıvar Puente. Instituto de Astrofísica de Andalucía. Mayo de 2011

Tema 0 Introducción. Curso de Python Avanzado. Juan Pedro Boĺıvar Puente. Instituto de Astrofísica de Andalucía. Mayo de 2011 Tema 0 Introducción Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica de Andalucía) Tema 0 Introducción

Más detalles

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones

Introducción. Introducción y conceptos de POO. En qué consiste la POO? Vocabulario. Definiciones Introducción Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?

Más detalles

Introducción a la Computación Sistemas de Control de Versiones (VCS)

Introducción a la Computación Sistemas de Control de Versiones (VCS) Introducción a la Computación Sistemas de Control de Versiones (VCS) Maximiliano Geier Facultad de Ciencias Exactas y Naturales, UBA 18/03/2015 Maximiliano Geier (UBA) Clase Práctica 01: VCS 18/03/2015

Más detalles

Introducción y conceptos de POO

Introducción y conceptos de POO Fernández Universidad Autónoma de Madrid 20 de febrero de 2009 Introducción Introducción En qué consiste la Programación Orientada a Objetos? Vocabulario básico Ejemplo sencillo En qué consiste la POO?

Más detalles

Funciones recursivas

Funciones recursivas Introducción a la Computación Funciones recursivas Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 08/04/2014 E. Mocskos (UBA CONICET) Clase 9: Funciones Recursivas

Más detalles

El primer módulo del curso. Esperamos que te guste.

El primer módulo del curso. Esperamos que te guste. El primer módulo del curso. Esperamos que te guste. 1 En todos los módulos encontrarás una primera transparencia de objetivos de cada uno de los módulo. 2 Todo el módulo tiene un boletín de ejercicio.

Más detalles

Pruebas de Funcionalidad. Pruebas de Funcionalidad.

Pruebas de Funcionalidad. Pruebas de Funcionalidad. Pruebas de Funcionalidad. Isabel Blank. Larissa Herrera. Miguel Ortiz. Pruebas de Funcionalidad. Entre el tipo de pruebas que se realiza en un sistema esta el tipo que evalúa la funcionalidad de éste.

Más detalles

Funciones recursivas

Funciones recursivas Introducción a la Computación Funciones recursivas Esteban E. Mocskos (emocskos@dc.uba.ar) Facultad de Ciencias Exactas y Naturales, UBA CONICET 13/09/2017 E. Mocskos (UBA CONICET) Funciones Recursivas

Más detalles

Entendiendo un algoritmo de criptografía asimétrica Understanding RSA

Entendiendo un algoritmo de criptografía asimétrica Understanding RSA Entendiendo un algoritmo de criptografía asimétrica Understanding RSA Una operación asimétrica Que sea fácil de hacer pero difícil de deshacer...... a no ser que se conozca una información (la clave privada)

Más detalles

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Tema 4: Corrección y Robustez en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle Contenido Asertos en C++ Mecanismo de excepciones: Declaración de excepciones Lanzar excepciones

Más detalles

Formato para prácticas de laboratorio

Formato para prácticas de laboratorio UNIVERSIDAD AUTÓNOMA DE BAJA CALIFORNIA FACULTAD DE INGENIERÍA (UNIDAD MEXICALI) Formato para prácticas de laboratorio CARRERA PLAN DE ESTUDIO CLAVE DE UNIDAD DE APRENDIZAJE NOMBRE DE LA UNIDAD DE APRENDIZAJE

Más detalles

Retículos y Álgebras de Boole

Retículos y Álgebras de Boole Retículos y Álgebras de Boole Laboratorio de Matemática Discreta Jesús Martínez Mateo jmartinez@fi.upm.es Práctica 1. Ordenación topológica A. Herramientas necesarias Para la práctica que vamos a realizar

Más detalles

Pruebas de Software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008

Pruebas de Software. Escuela de Ingeniería de Sistemas y Computación Desarrollo de Software II Agosto Diciembre 2008 Pruebas de Software Objetivos de las Pruebas Demostrar al desarrollador y al cliente que el software satisface los requerimientos. Descubrir defectos en el software en que el comportamiento de éste es

Más detalles

DESARROLLANDO APLICACIONES CON PYGTK Por: Fabio Esteban Durán Verdugo. Estudiante Ingeniería en Informática Universidad Autónoma de Chile Sede Talca http://www.gnome.cl Que Veremos?... ojalá sea bueno...

Más detalles

a. Integración Top Down b. Integración Buttom Up c. Ninguna de las anteriores d. Módulo de integración.

a. Integración Top Down b. Integración Buttom Up c. Ninguna de las anteriores d. Módulo de integración. Nombre: Puntaje: 1. Defectos Típicos que son más fáciles de encontrar en las revisiones que en las pruebas dinámicas son los siguientes: A. Desviaciones de las normas. B. Defectos en los requerimientos.

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

UNIVERSIDAD NACIONAL DE INGENIERÍA Departamento de Lenguajes y Simulación Guía de laboratorio I

UNIVERSIDAD NACIONAL DE INGENIERÍA Departamento de Lenguajes y Simulación Guía de laboratorio I Tema: Uso del software MATLAB para graficar Funciones. Objetivo General: Conocer e implementar Funciones Lineales en MATLAB. Objetivos Específicos del Laboratorio: Integrantes: 1. Conocer el software MATLAB.

Más detalles

Casos de Prueba. Caja Blanca y Caja Negra

Casos de Prueba. Caja Blanca y Caja Negra Casos de Prueba Caja Blanca y Caja Negra CAJA BLANCA Tipos de Prueba: Prueba de la Ruta Básica Pruebas de la estructura de control Prueba de condición Prueba del flujo de datos Prueba de ciclos PRUEBA

Más detalles

JUNIT. Pruebas Unitarias

JUNIT. Pruebas Unitarias JUNIT. Pruebas Unitarias Dpto. de Ingeniería de Sistemas Telemáticos http://www.lab.dit.upm.es/~lprg Introducción Un programa es aceptable cuando: Hace lo que se acordó que debía hacer en las especificaciones.

Más detalles

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos

Unidad Didáctica 3. Tipos genéricos. Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Unidad Didáctica 3 Tipos genéricos Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Definición de tipo genérico Hablamos de un tipo genérico cuando el tipo en cuestión depende

Más detalles

pytod, un prototipo experimental para realizar Depuración Omnisciente a scripts escritos en el Lenguaje de Programación Python

pytod, un prototipo experimental para realizar Depuración Omnisciente a scripts escritos en el Lenguaje de Programación Python pytod, un prototipo experimental para realizar Depuración Omnisciente a scripts escritos en el Lenguaje de Programación Python Milton Galo Patricio Inostroza Aguilera Objetivos de la charla Mostrar el

Más detalles

Algoritmos y programas. Algoritmos y Estructuras de Datos I

Algoritmos y programas. Algoritmos y Estructuras de Datos I Algoritmos y programas Algoritmos y Estructuras de Datos I Primer cuatrimestre de 2012 Departamento de Computación - FCEyN - UBA Programación funcional - clase 1 Funciones Simples - Recursión - Tipos de

Más detalles

Examen Teórico. Convocatoria de Febrero de 2018

Examen Teórico. Convocatoria de Febrero de 2018 Examen Teórico Convocatoria de Febrero de 2018 Nombre: DNI: Grupo: 1. Dado un proyecto Java en Eclipse que tiene como clase principal proyecto.programa y requiere de la librería matemática de Apache commons-math.jar,

Más detalles

Modismos y Anti-Modismos en

Modismos y Anti-Modismos en Bitácora Traducciones Tutorial de Python Modismos y Anti-Modismos en Python Por Moshe Zadka Traducción al castellano de "Idioms and Anti-Idioms in Python" por Raúl González Duque el día 9 de Abril de 2008

Más detalles

Implementando TADs en Python

Implementando TADs en Python Implementando TADs en Python Luciano Leveroni Departamento de Computación, FCEyN, Universidad de Buenos Aires. 28 de Mayo del 2015 Introducción Cómo vimos en la teórica, los TADs nos permiten encapsular

Más detalles

Manual rápido para evaluación de series en Python

Manual rápido para evaluación de series en Python Manual rápido para evaluación de series en Python Breve introducción Python es un lenguaje de programación interpretado con fines científicos, de educación y para hacer programas de uso rápido. Es la base

Más detalles

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa

Estructura de un programa en Java. Tipos de datos básicos. class miprimerprograma{ // comentario, no es parte del programa Contenido Estructura de un programa en Java... 2 Tipos de datos básicos... 2 Operadores... 3 Literales... 4 Entrada / Salida... 4 Sentencias condicionales... 5 Funciones... 5 Ejercicios... 6 Variables,

Más detalles

Práctica : Creación y uso de métodos

Práctica : Creación y uso de métodos Métodos y Parámetros 1 Práctica : Creación y uso de métodos Objetivos Al final de esta práctica, usted será capaz de: Crear y hacer llamadas a métodos con y sin parámetros. Utilizar distintos mecanismos

Más detalles

Tema 6 Pruebas de calidad

Tema 6 Pruebas de calidad Tema 6 Pruebas de calidad Curso de Python Avanzado Juan Pedro Boĺıvar Puente Instituto de Astrofísica de Andalucía Mayo de 2011 Juan Pedro Boĺıvar Puente (Instituto de Astrofísica detema Andalucía) 6 Pruebas

Más detalles

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga

Programación Orientada a Objetos Profr. Pedro Pablo Mayorga Actividad 3 Historia de los paradigmas de programación Unidad 1 Paradigma de programación Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No

Más detalles

TUTORIAL DE RUBY. Lenguajes de programación Universidad Nacional De Colombia II. Laura P. Cerón M. Camilo A. Dajer P.

TUTORIAL DE RUBY. Lenguajes de programación Universidad Nacional De Colombia II. Laura P. Cerón M. Camilo A. Dajer P. TUTORIAL DE RUBY Universidad Nacional De Colombia 2017 - II Laura P. Cerón M. Camilo A. Dajer P. INTRODUCCIÓN Ruby es un lenguaje interpretado Case sensitive Ruby es de código abierto Creado por Yukihiro

Más detalles

Modelos de calidad. Técnicas de prueba del software Estrategias de prueba del software. Calidad del software. Factores de Calidad. producto.

Modelos de calidad. Técnicas de prueba del software Estrategias de prueba del software. Calidad del software. Factores de Calidad. producto. Técnicas de prueba del software Estrategias de prueba del software 1 Modelos de calidad Calidad del software Factores de Calidad Criterios de calidad del proceso producto Métricas del proceso producto

Más detalles

Testing Unitario. Laboratorio de Testing y Aseguramiento de la Calidad del Software

Testing Unitario. Laboratorio de Testing y Aseguramiento de la Calidad del Software Testing Unitario Laboratorio de Testing y Aseguramiento de la Calidad del Software Construcción de suites Caja blanca/caja negra Cobertura basada en flujo de control Complejidad ciclomática LCov Testing

Más detalles

Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Negra/Caja Blanca Blanca A. Vargas Govea

Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Negra/Caja Blanca Blanca A. Vargas Govea Aseguramiento de la calidad y pruebas de software 5- Pruebas del software Caja Negra/Caja Blanca Blanca A. Vargas Govea vargasgovea@itesm.mx Marzo 12, 2013 Contenido Pruebas de caja negra Causa-efecto

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

TEST (0 40 puntos por pregunta correcta, puntos por error) [Marcar sólo una opción]

TEST (0 40 puntos por pregunta correcta, puntos por error) [Marcar sólo una opción] EXAMEN PARCIAL 1 TEST (0 40 puntos por pregunta correcta, -0 10 puntos por error) [Marcar sólo una opción] Los artefactos en UML 2 (indicar lo erróneo) a) Pueden ser de despliegue, de productos de trabajo

Más detalles

Funciones como parámetros, funciones como resultados. Introducción a la Computación Patricia Borensztejn Clase 26

Funciones como parámetros, funciones como resultados. Introducción a la Computación Patricia Borensztejn Clase 26 Funciones como parámetros, funciones como resultados Introducción a la Computación Patricia Borensztejn Clase 26 Funciones de orden superior Se llama así a la técnica que permite pasar funciones como parámetros

Más detalles

TESTS UNITARIOS. keep the bar green to keep the code clean

TESTS UNITARIOS. keep the bar green to keep the code clean TESTS UNITARIOS keep the bar green to keep the code clean Para qué hacer tests unitarios? Es imposible hacer software libre de defectos. Tiempo del desarrollador: Diseño Análisis Debug Desarrollo Los tests

Más detalles

PRUEBAS FUNCIONALES USANDO TÉCNICAS DE CAJA NEGRA PARTE I

PRUEBAS FUNCIONALES USANDO TÉCNICAS DE CAJA NEGRA PARTE I PRUEBAS FUNCIONALES USANDO TÉCNICAS DE CAJA NEGRA PARTE I TÉCNICAS DE PRUEBAS DE SOFTWARE INGENIERÍA DE SISTEMAS Y COMPUTACIÓN UNIVERSIDAD DEL VALLE DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente

Más detalles

Primeros Pasos en Python 3

Primeros Pasos en Python 3 Primeros Pasos en Python 3 Introducción a la programación I semestre, 2016 1 Escribir Programas en Python Un programador debe utilizar expresiones, funciones y métodos de forma combinada para obtener soluciones

Más detalles

INTRODUCCIÓN A LA MATEMÁTICA DISCRETA PRÁCTICA 1

INTRODUCCIÓN A LA MATEMÁTICA DISCRETA PRÁCTICA 1 INTRODUCCIÓN A LA MATEMÁTICA DISCRETA PRÁCTICA 1 I N T R O D U C C I Ó N A S A G E Q U É E S S A G E? G U Í A D E I N S T A L A C I Ó N C O N C E P T O S B Á S I C O S B I B L I O G R A F Í A Qué es Sage?

Más detalles

Fase de Pruebas Introducción.

Fase de Pruebas Introducción. Fase de Pruebas Introducción. El desarrollo de sistemas de software implica una serie de actividades de producción en las que las posibilidades de que aparezca el fallo humano son enormes. Los errores

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

A3F. Polimorfismo. Carlos Fontela

A3F. Polimorfismo. Carlos Fontela Polimorfismo Carlos Fontela cfontela@fi.uba.ar Temario Métodos virtuales Métodos abstractos Polimorfismo como concepto Interfaces Clases internas 2c2010 2 cb := CuentaBancaria new. cc := CuentaCorriente

Más detalles

Tema 20: La importancia de realizar pruebas

Tema 20: La importancia de realizar pruebas Departamento de Ciencias e Ingeniería de la Computación Academia de Ciencias de la Computación Tema 20: La importancia de realizar pruebas M. en C. Edgardo Adrián Franco Martínez http://www.eafranco.com

Más detalles

Introducción a Python. Cecilia Manzino

Introducción a Python. Cecilia Manzino Características del lenguaje Es un lenguaje de programación multiparadigma, soporta la programación orientada a objetos, imperativa y, en menor medida, funcional. Es un lenguaje multiplataforma, puede

Más detalles

GUÍA DE LABORATORIO Nº 19 Implementación de casos de prueba

GUÍA DE LABORATORIO Nº 19 Implementación de casos de prueba GUÍA DE LABORATORIO Nº 19 Implementación de casos de prueba GUÍA DE LABORATORIO Nº 19 Actividad de Proyecto: Ejecutar y documentar pruebas del software que cumplan con los estándares de calidad Estructura

Más detalles

05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales

05 Funciones en lenguaje C. Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales 05 Funciones en lenguaje C Diego Andrés Alvarez Marín Profesor Asociado Universidad Nacional de Colombia Sede Manizales 1 Temario Programación funcional Declaración (prototipos) y definición de funciones

Más detalles

Programación II Objetos en Java

Programación II Objetos en Java Programación II Objetos en Java Definición Objeto: Conjunto de datos y métodos relacionados. Los objetos se alojan en una parte de la RAM reservada al proceso denominada memoria dinámica, y son referenciados

Más detalles

La Computación de Alto Desempeño puede ser versátil: comunicando C con Python. Pablo N Alcain, Cecilia G Jarne, María G Molina, Rodrigo Lugones

La Computación de Alto Desempeño puede ser versátil: comunicando C con Python. Pablo N Alcain, Cecilia G Jarne, María G Molina, Rodrigo Lugones La Computación de Alto Desempeño puede ser versátil: comunicando C con Python Pablo N Alcain, Cecilia G Jarne, María G Molina, Rodrigo Lugones Python Muchísimas librerías Sintaxis limpia No hace falta

Más detalles

Programación orientada a objetos

Programación orientada a objetos Repaso Programación orientada a objetos Curso INEM. Programación en Java Santiago Muelas Pascual smuelas@fi.upm.es! Herencia! Superclase/subclase! super! Modificador protected! Redefinicion de métodos!

Más detalles

TÉCNICAS DE CAJA BLANCA

TÉCNICAS DE CAJA BLANCA TÉCNICAS DE CAJA BLANCA UNIVERSIDAD DEL VALLE DOCENTE BEATRIZ FLORIAN GAVIRIA Basado Parcialmente en Material de la Empresa Green-SQA de ParqueSoft AGENDA Introducción Técnica de cobertura de caminos Técnicas

Más detalles

Programación bajo UML

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

Más detalles

Aplicaciones de Aritmética Modular

Aplicaciones de Aritmética Modular Aplicaciones de Aritmética Modular Laboratorio de Matemática Discreta Jesús Martínez Mateo jmartinez@fi.upm.es Algunas de las aplicaciones más interesantes de la aritmética modular son aquellas en las

Más detalles

ESTRATEGIAS DE PRUEBA DE SOFTWARE

ESTRATEGIAS DE PRUEBA DE SOFTWARE Características generales: La prueba comienza en el nivel de módulo y progresa hacia la integración del sistema. En diferentes puntos son adecuadas diferentes técnicas de prueba. La prueba la lleva a cabo

Más detalles

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C)

EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C) APRENDERAPROGRAMAR.COM EJERCICIO Y EJEMPLO RESUELTO: USO DE LA INTERFAZ CLONEABLE DE JAVA. MÉTODO CLONE() PARA CLONAR OBJETOS. (CU00912C) Sección: Cursos Categoría: Lenguaje de programación Java nivel

Más detalles

Graphical User Interface (GUI)

Graphical User Interface (GUI) Introducción a la Computación Graphical User Interface (GUI) Maximiliano Geier Facultad de Ciencias Exactas y Naturales, UBA 12/06/2014 Maximiliano Geier (UBA) Clase 23: GUI 12/06/2014 1 / 19 Hablando

Más detalles

import download() nltk

import download() nltk Clase 8 Repaso NLTK nltk NLTK es un módulo de Python que contiene muchas funciones diseñadas para su uso en el análisis lingüístico de documentos y en el procesamiento de lenguaje natural. Para poder utilizar

Más detalles

Funciones & Estructuras de control

Funciones & Estructuras de control Funciones & Estructuras de control Universidad de Concepción, Chile Departamento de Geofísica Programación Científica con Software libre Primavera, 2011 Universidad de Concepción Contenidos 1 2 3 En la

Más detalles

Ejercicio 1 (proyecto prlistas, paquete listas)

Ejercicio 1 (proyecto prlistas, paquete listas) PRÁCTICA 3 Curso 2004-05 En esta práctica construiremos y usaremos dos paquetes: el primero, listas, que implementa listas genéricas y el segundo, colas, que implementa colas y colas de prioridades genéricas.

Más detalles

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; }

PROGRAMACIÓN EN JAVA. { una línea para definir, crear o ejecutar ; } PROGRAMACIÓN EN JAVA { una línea para definir, crear o ejecutar ; } JFC Y API SPECIFICATIONS OBJECT INTERFACE ABSTRACT IMPLEMENTS EXTENDS NEW EXTENDS (Hasta que una clase derivada deje de ser ABSTRACT)

Más detalles

Contenido. Comentarios. l Estilo l Documentación l Pruebas l Depuración **/ l Comentarios de código. l Comentarios de documentación

Contenido. Comentarios. l Estilo l Documentación l Pruebas l Depuración **/ l Comentarios de código. l Comentarios de documentación {F-PROG dit Contenido l Estilo l Documentación l Pruebas l Depuración Fundamentos de Programación DIT- 1 {F-PROG dit Comentarios l Comentarios de código n /*... */ n // comentario táctico: hasta fin de

Más detalles

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1

Unidad 1. Análisis de Algoritmos. Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 Unidad 1 Análisis de Algoritmos Ing. Leonardo R. L. Estructura de datos - Generalidades Unidad I Pág 1 GENERALIDADES Qué se necesita para escribir un programa eficiente? Para diseñar programas eficientes

Más detalles

Estado del arte sobre el testeo de software en las Pymes de Aragón

Estado del arte sobre el testeo de software en las Pymes de Aragón Estado del arte sobre el testeo de software en las Pymes de Aragón 12 de Noviembre de 2015 Contenido Introducción Resultados #1 Perfil de la organización #2 Niveles de testing #3 Técnicas de testing #4

Más detalles

Prof. Dr. Paul Bustamante

Prof. Dr. Paul Bustamante Nombre: Carné: Examen C++ - Junio Informática II Fundamentos de Programación Prof. Dr. Paul Bustamante Examen Grupo B Programación en C++ Pág. 1 ÍNDICE ÍNDICE... 1 1. Introducción.... 1 1.1 Ejercicio 1:

Más detalles

Ingeniería del Software de Gestión

Ingeniería del Software de Gestión Marcos López Sanz Ingeniería del Software de Gestión Tema 9: Proceso Unificado: Índice Visión general de Descripción de la (vista del modelo de ) de construcciones de la el un sub una Realizar pruebas

Más detalles