Testing en Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.

Slides:



Advertisements
Presentaciones similares
MATEMÁTICAS II MEDIO PROGRAMA EMPRENDER PREUNIVERSITARIO ALUMNOS UC
Advertisements

INTEGRANTES Aguilar Pastor, Sara Blancas Tunqui, Alicia
Tema I. LAS FRACCIONES 3º de la ESO Sara Muñoz.1ºBACH Ciencias.
UNIDAD Análisis Nodal Análisis de Malla.
Clases en C++.
Definición de Clases y Variables de referencia.
POLIMORFISMO UNIDAD 4.
FACTORIZACIÓN LU Bachilleres:
MATRIZ DE CHEQUEO DE PARIDAD
Arquitectura CLARO-TECNOTREE
Mesa de Tejo II. Mesa de Tejo II Presentación para trabajar vectores: variación de velocidad, aceleración y fuerza.
Pruebas de programas Java mediante JUnit
MANEJO DE ARRAYS EN C.
Informática II Prof. Dr. Gustavo Patiño MJ
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
Herramientas QA Morax.
POO (Programación Orientada a Objetos)
VISUAL BASIC CONSOLA Todas las ordenes o instrucciones se digitan dentro de sub Main() y End Sub ÁREA DE TRABAJO: Las aplicaciones de consola son aquellas.
MODELANDO EL DOMINIO Capítulo 2 del libro guía Gloria Lucía Giraldo G. UNIVERSIDAD NACIONAL DE COLOMIBIA DISEÑO Y CONSTRUCCIÓN DE PRODUCTOS DE SOFTWARE.
La estructura básica de los programas en java, algo a tener en cuenta y que debemos recordar siempre es el archivo debe llevar el nombre de la clase con.
Función Lineal.
REPRESENTACION GRAFICA DE FRACCIONES.
Tema Nº4.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Tema 6: Clases Antonio J. Sierra.
Potencias de exponente natural mayor que 1
Test Driven Development TDD
SCJP SUN CERTIFIED PROGRAMMER FOR JAVA 6. SCJP 6.0 SEMANA OCHO THREADS.
Almacenar variables en cookies en PHP
DIVISIÓN DE POLINOMIOS 1
Desarrollador Profesional de Juegos Programación III Unidad II Una clase thread para window.
Patrones Creacionales
Tablas de verdad en PHP Programación en Internet II.
Valor X Valor Y Punto (0,0) Coordenadas.
Concatenación en PHP Programación en Internet II.
Material de apoyo Unidad 4 Estructura de datos
Algoritmos y programación III (75.07)
Mock objects Rosemary Torrico Bascopé. Introducción Las Pruebas de unidad han sido aceptadas como la “mejor práctica” para el desarrollo de software.
Metodología para solución de problemas
APRENDIZ: SANDRA L. CAICEDO C. ORDEN: 20194
Problema de inclusión en una Curva Digital Por Orellana Muñoz, Alfonso Paz Vicente, Rafael Pérez Medina, Gerardo Rodríguez Naranjo.
Fundamentos de Programación
Printing Tasks Karolina Rivera Jean Robert Charles Jacinthe.
Desarrollo de lógica algorítmica.
Sistemas de Ecuaciones lineales
Utilizar Costo Promedio Ponderado en el Software Administrativo SAW
Introducción al lenguaje PROCESSING para ARDUINO
Cuatro pasos para hacer un cartel
Estructuras de Decisión
Ing. Johanna Macias Algoritmo, Estructura y Programación III.
¡Bienvenidos a Español 3 PAP!. ¿Qué hiciste durante el verano?
Matrices Pág. 1. Matrices Pág. 2 Se llama matriz traspuesta de A, y se representa por A t a la matriz que resulta de intercambiar las filas y las columnas.
Desarrollador Profesional de Juegos Programación III Unidad II introducción a Mutex Secciones críticas.
ESTE TERMINO SE DEFINE COMO : UN PROCESO EN EL CUAL SE NOS DESCRIBE UN PROBLEMA (EN LENGUAJE NATURAL), LUEGO DE ESTO SE PLANTEAN POSIBLES RESOLUCIONES.
Desarrollador Profesional de Juegos Programación III Unidad I Capturar Excepciones.
ECOM-6030 CAPÍTULO 7 EXCEPTION HANDLING Prof. Nelliud D. Torres © - Derechos Reservados.
Mini-video 2 de 5 Materia: Límites de funciones Continuidad de funciones Prácticas con Introducción a Funciones de una variable.
C APACITACIÓN JAVA – ITM 2012 Sesión 1. INTRODUCCIÓN AL NETBEANS Creación de una calculadora con NetBeans.
Conalep 150 Tehuacán inmi 309 soma
Instalación del Eclipse para usar en Python Por Cristian Suárez Sistemas Operativos 1 Año 2010.
Estructuras de control selectivas Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión Práctica 3.
Constructores Los constructores inicializan nuestra clase, le dan un estado inicial estable listo para su uso. Siempre que declarábamos una variable numérica.
Métodos en Java. Estructura de un programa en Java ► La relación con la vida misma la podemos ver en el siguiente comentario: Imaginemos que dos clases.
Las interfaces Predicate y Function Versión Unidad Didáctica 17 Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos.
U niversidad de G uadalajara Centro Universitario de Ciencias Exactas e Ingenierías Ponentes: Muñoz Guzmán Ramón Gallardo Olivares Mario Solís Flores José.
Prof. Manuel B. Sánchez. Es un mecanismo y uno de los pilares de la POO que permite definir nuevas clases a partir de otras preexistentes. La Herencia.
¿Qué observan? ¿Cómo Funciona? Marca la Posición en la cual estas en ese momento No te pregunta de donde vienes ni que hiciste antes Lo mismo ahora quiero.
Diseño de tipos: clase PolinomioEntero Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Práctica 8 Versión
Curso de programación Visual Chart 6 (1ªEd.) ÓRDENES DE SALIDA.
Introducción a programación web Martin Esses. En las presentaciones anteriores, vimos como enviar datos a un controlador usando POST y como generar formularios.
Transcripción de la presentación:

Testing en Python Por Cristian Suárez Sistemas Operativos 1 Año 2010

Sistemas Operativos 1 Año 2010 Testing - ¿Qué es? El Testing es la manera de comprobar que el código escrito funciona correctamente. Para ello vamos a utilizar los “unittest” (o test de unidad), que son Tests que prueban partes pequeñas de nuestro código.

Sistemas Operativos 1 Año 2010 Testing - ¿Qué es? Para comprobar que todo funciona, hay que testear todos los comportamientos de nuestros métodos, teniendo en cuenta sus excepciones (casos en que nuestros métodos se comportarían de manera distinta en determinada situación).

Sistemas Operativos 1 Año 2010 Testing - Creación de un Test Para poder crear Tests en Python se necesita importar un modulo llamado “unittest”, y la clase que vamos a necesitar de ese módulo se llama “TestCase”: - import unittest Una vez hecho eso, debemos crear una clase para testear alguna de nuestras clases, y esta nueva clase tiene que ser subclase de TestCase: - class TestPersona(unittest.TestCase)

Sistemas Operativos 1 Año 2010 Testing - Creación de un Test Luego se crean métodos de Test en esa clase, y cada uno de esos métodos va a probar las distintas funcionalidades de los métodos que tenga la clase Persona. Todos los métodos de Test que creemos tienen que empezar con la palabra “test”: - def testReverseOfLists(self):

Sistemas Operativos 1 Año 2010 Testing - las 3 “A” En todos los tests hay 3 pasos a seguir: Arrange: Se inicializan los datos necesarios para el Test. Act: Se realiza la acción a testear. Assert: Se utilizan asserts para comprobar. que el Act hace lo correcto. (info de cada assert más adelante)

Sistemas Operativos 1 Año 2010 Testing - Ejemplo class TestListas(unittest.TestCase): def testReverse(self): # Arrange lista = [1,2,3] # Act listaRevertida = lista.reverse() # Assert self.assertEqual([3,2,1], listaRevertida);

Sistemas Operativos 1 Año 2010 Testing - Asserts Los “asserts” sirven para que se muestre en consola si lo que estamos testeando esta bien o no Las variables definidas a continuación sirven para próximos usos de los “asserts”: lista = [1,2,3] lista2 = [lista, 4, 5]

Sistemas Operativos 1 Año 2010 Testing - Asserts assertEqual: El test da OK si ambos parámetros son iguales. - self.assertEqual(lista, [1,2,3]) assertNotEqual: El test da OK si ambos parámetros no son iguales. - self.assertNotEqual(lista, [1,2,3,4]) assertTrue: El test da OK si la condición dada por parámetro da True. - self.assertTrue(len(lista) == 3)

Sistemas Operativos 1 Año 2010 Testing - Asserts assertFalse: El test da OK si la condición dada por parámetro da False. - self.assertFalse(len(lista) == 4) assertIn – assertNotIn: El test da OK si el primer parámetro está o no está adentro del segundo (el segundo parámetro puede ser una colección, o un objeto creado por nosotros, habiendo definido esa clase como contenedora). - self.assertIn(1, lista) - self.assertNotIn(4, lista)

Sistemas Operativos 1 Año 2010 Testing - Asserts assertSameElements: El test da OK si los dos elementos pasados por parámetro son el mismo objeto. - self.assertSameElements(lista, lista2[0]) assertGreater - assertGreaterEqual - assertLess - assertLessEqual: El test da OK si el primer parámetro pasado es, respectivamente, >, >=, <, <= que el segundo parámetro. - self.assertGreater(5, lista[1])

Sistemas Operativos 1 Año 2010 Testing – método setUp Cuando hagamos Tests sobre un programa más complejo, se hace muy engorroso estar inicializando muchas variables en cada Test. Si éstas inicializaciones sirven para varios Tests de la misma clase, entonces podemos definir el método “setUp()”. Este método se corre antes de cada método de Test que tengamos, y luego se usan esas variables en cada Test como si ya existieran: def setUp(self): self.lista = [1,2,3] # se pone “self” antes

Sistemas Operativos 1 Año 2010 Testing – método tearDown Una dificultad que podemos tener usando el setUp es que hay elementos que si se modifican en los Tests, el setUp no los inicializa desde cero, usando los cambios realizados para el próximo Test, y este puede fallar. La solución es definir el método tearDown(), que se corre luego de cada método de Test: def tearDown(self): self.lista = None

Sistemas Operativos 1 Año 2010 Testing – corriendo el Test Luego de nuestra clase de Test, en donde escribimos nuestro main van estas 2 lineas de código, para decirle al unittest de Python cual es la clase de Test que vamos a testear: suite = unittest.TestLoader().loadTestsFromTestCase(“ClaseTest”) unittest.TextTestRunner(verbosity=2).run(suite) Donde dice “ClaseTest” va el nombre de la clase Test creada, sin las comillas (teniendo en cuenta el ejemplo anterior, iría TestListas).

Fin Sistemas Operativos 1 Año 2010