SlideShare ist ein Scribd-Unternehmen logo
1 von 48
Downloaden Sie, um offline zu lesen
NO
DEBUGGEARÁS
Debuggear...
Consume mucho tiempo
Debuggear...
Hace que perdamos el foco
Debuggear...
Produce una falsa confianza
Debuggear...
Aumenta el riesgo de dejar basura
Debuggear...
No asegura NO introducir nuevos bugs
Soluciones?
Niveles de Test
Unitario
Integracion
Funcional
Sistema
Aceptacion
Unit Tests

Unit = Unidad
Tests = Pruebas
Unit Tests
Unit Tests
Unit Tests
class Calculator(object):
def add(self, a, b):
return a + b
def sub(self, a, b):
return a - b
def multiply(self, a, b):
return a * b
def divide(self, a, b):
return a / b
def square(self, a):
return a * a
Cajas
Algunas reglas
Los tests unitarios deben ser:

Repetibles
Independientes
Automatizables
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo

d
nalida
io
an func
Valid
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
iones
s
regre
n
Evita

d
nalida
io
an func
Valid
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
iones
s
regre
n
Evita

Verifican interfaces

d
nalida
io
an func
Valid
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
iones
s
regre
n
Evita

Verifican interfaces

d
nalida
io
an func
Valid

Testean bugs dedicadamente
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
iones
s
regre
n
Evita

Verifican interfaces

d
nalida
io
an func
Valid

Testean bugs dedicadamente
Fuerza la modularizacion
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

Facilitan la migracion

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
iones
s
regre
n
Evita

Verifican interfaces

d
nalida
io
an func
Valid

Testean bugs dedicadamente
Fuerza la modularizacion
La importancia
Los tests unitarios:
Fa

itan
cil

io
amb
el c

Simpl
if

Facilitan la migracion

ican
la

integ
racio
n

Aunque no lo crean, aceleran el desarrollo
iones
s
regre
n
Evita

d
nalida
io
an func
Valid

Son documentacion que nunca pasa de moda

Verifican interfaces

Testean bugs dedicadamente
Fuerza la modularizacion
La importancia
al
iempo de testeo manu
Reducen el t
Simpl
ifica
io
n la
amb
integ
el c
racio
an
n
d
cilit
Facilitan la migracion
Fa
nalida
io
an func
Valid
Aunque no lo crean, aceleran el desarrollo

Los tests unitarios:

iones
s
regre
n
Evita

Son documentacion que nunca pasa de moda

Verifican interfaces

Testean bugs dedicadamente
Fuerza la modularizacion
La importancia
al
iempo de testeo manu
Reducen el t
Simpl
ifica
io
n la
amb
integ
el c
racio
an
n
d
cilit
Facilitan la migracion
Fa
nalida
io
an func
Valid
Aunque no lo crean, aceleran el desarrollo

Los tests unitarios:

Son documentacion que nunca pasa de moda
nes
io
egres
itan r
Testean bugs dedicadamente
Ev
Permiten la integracion continua
Verifican interfaces

Fuerza la modularizacion
La importancia
al
iempo de testeo manu
Reducen el t
Simpl
ifica
io
n la
amb
integ
el c
racio
an
n
d
cilit
Facilitan la migracion
Fa
nalida
io
an func
Valid
Aunque no lo crean, aceleran el desarrollo

Los tests unitarios:

ing
gg

ebu
ed
dd
ida
es
nec
l a Son documentacion que nunca pasa de moda
n
enes
deuecio
e r gr s
Rn
Testean bugs dedicadamente
Evita
Permiten la integracion continua
Verifican interfaces

Fuerza la modularizacion
Limitaciones
Los tests unitarios:
No van a asegurar un programa libre de bugs
● Solo testean la funcionalidad de las unidades en si
● No pueden testear algoritmos no-deterministicos
● Tambien pueden tener bugs
● Necesitan mantenerse actualizados
●
Frameworks
Lo basico que un framework xUnit nos debe ofrecer
Test Runner
● Test Case
● Test Suites
● Test Fixtures
● Test Result Formatter
● Assertions
●

Y...
Frameworks
Lo basico que un framework xUnit nos debe ofrecer
●

Test Execution

setup();
...
/*
* Cuerpo de la prueba
*/
...
teardown();
Talibanismo
Los tests unitarios NO deben
Interactuar
con la DB

Tocar el
filesystem

Ni con la
Red
Mock and Roll
Mock and Roll
Usamos mocks para:

Aislar la unidad que
testeamos
● Escenarios dificiles de
reproducir
● Error de red, DB,
Filesystem
● Algoritmos nodeterministicos
● Fecha/Hora
● Ambientes costosos
de crear
● Objetos que todavia
no existen
●
Mock and Roll
Lo que un framework de mock basico deberia tener:
Crear Mocks
● Definirles stub methods
● Definirles expectativas
● Verificar las expectativas
●
TDD
TDD
2 Reglas
1 – Nada de codigo sin
un test que falle
2 Reglas
2 – 0% de codigo
repetido
2 – 0% de codigo
repetido
Coverage
Complejidad Ciclomatica
Build Continuo
Conclusiones
Conclusiones
Ejercicio
Autor: Sergio Orbe
sergioo@exo.com.ar
Ejemplo de código:
https://github.com/reyiyo/vending-machine
Licencia Creative Commons Reconocimiento – CompartirIgual (by-sa):
Se permite el uso comercial de la obra y de las posibles obras
derivadas, la distribución de las cuales se debe hacer con una licencia
igual a la que regula la obra original.

Weitere ähnliche Inhalte

Was ist angesagt?

Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentJavier Novoa Cataño
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDHernan Wilkinson
 
Introducción a JUnit 4
Introducción a JUnit 4Introducción a JUnit 4
Introducción a JUnit 4Juanma Gómez
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasOrlando Bustos Mateluna
 
ALMSaimada Testing Funcional
ALMSaimada Testing FuncionalALMSaimada Testing Funcional
ALMSaimada Testing FuncionalGlobe Testing
 
Desarrollo Guiado Por Pruebas
Desarrollo Guiado Por PruebasDesarrollo Guiado Por Pruebas
Desarrollo Guiado Por PruebasMiguel Angel
 
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónPaulo Clavijo
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..siticfje
 
Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Diego Ferreyra
 
Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010
Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010
Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010Globe Testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NETAngel Nuñez
 

Was ist angesagt? (20)

Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
TDD Course (Spanish)
TDD Course (Spanish)TDD Course (Spanish)
TDD Course (Spanish)
 
Como escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDDComo escribir buenos tests al hacer TDD
Como escribir buenos tests al hacer TDD
 
Introducción a JUnit 4
Introducción a JUnit 4Introducción a JUnit 4
Introducción a JUnit 4
 
Seminario SOLID-TDD
Seminario SOLID-TDDSeminario SOLID-TDD
Seminario SOLID-TDD
 
Introducción a TDD
Introducción a TDDIntroducción a TDD
Introducción a TDD
 
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por PruebasTDD 101 - Introducción al Desarrollo Dirigido por Pruebas
TDD 101 - Introducción al Desarrollo Dirigido por Pruebas
 
Introduction to unit testing
Introduction to unit testingIntroduction to unit testing
Introduction to unit testing
 
Presentación: xUnit y Junit
Presentación: xUnit y JunitPresentación: xUnit y Junit
Presentación: xUnit y Junit
 
ALMSaimada Testing Funcional
ALMSaimada Testing FuncionalALMSaimada Testing Funcional
ALMSaimada Testing Funcional
 
Tdd on the rocks
Tdd on the rocks Tdd on the rocks
Tdd on the rocks
 
Desarrollo Guiado Por Pruebas
Desarrollo Guiado Por PruebasDesarrollo Guiado Por Pruebas
Desarrollo Guiado Por Pruebas
 
U2T4 - Pruebas del Software
U2T4 - Pruebas del SoftwareU2T4 - Pruebas del Software
U2T4 - Pruebas del Software
 
ATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de AceptaciónATDD - Desarrollo Dirigido por Test de Aceptación
ATDD - Desarrollo Dirigido por Test de Aceptación
 
Pruebas software con junit ..
Pruebas software con junit ..Pruebas software con junit ..
Pruebas software con junit ..
 
Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008Testing Con Visual Studio Team System 2008
Testing Con Visual Studio Team System 2008
 
Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010
Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010
Testing en equipos ágiles con Microsoft Test Manager y Lab Manager 2010
 
Calidad del software cap3
Calidad del software   cap3Calidad del software   cap3
Calidad del software cap3
 
Unit testing
Unit testingUnit testing
Unit testing
 
Test Automation .NET
Test Automation .NETTest Automation .NET
Test Automation .NET
 

Ähnlich wie No debuggearás - Introducción al Unit Testing y TDD

Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareGomez Gomez
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurancewill2294
 
Pruebas Automatizadas
Pruebas AutomatizadasPruebas Automatizadas
Pruebas AutomatizadasAngel Nuñez
 
Desambiguación del Término - Pruebas Unitarias - por Jorge H. Abad abad L.
Desambiguación del Término -  Pruebas Unitarias - por Jorge H. Abad abad L.Desambiguación del Término -  Pruebas Unitarias - por Jorge H. Abad abad L.
Desambiguación del Término - Pruebas Unitarias - por Jorge H. Abad abad L.Jorge Hernán Abad Londoño
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesJobsket
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -bJairoSimbaa
 
Unit Testing with Mock Objects
Unit Testing with Mock ObjectsUnit Testing with Mock Objects
Unit Testing with Mock ObjectsAngel Nuñez
 
Cabalgando a la bestia: una experiencia de rediseño legacy
Cabalgando a la bestia: una experiencia de rediseño legacyCabalgando a la bestia: una experiencia de rediseño legacy
Cabalgando a la bestia: una experiencia de rediseño legacyDiego Fontdevila
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETLa Red DBAccess
 
Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Juampy NR
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Juan Vladimir
 
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por NosotrosGeneXus
 

Ähnlich wie No debuggearás - Introducción al Unit Testing y TDD (20)

Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Software Quality Assurance
Software Quality AssuranceSoftware Quality Assurance
Software Quality Assurance
 
Pruebas Automatizadas
Pruebas AutomatizadasPruebas Automatizadas
Pruebas Automatizadas
 
Desambiguación del Término - Pruebas Unitarias - por Jorge H. Abad abad L.
Desambiguación del Término -  Pruebas Unitarias - por Jorge H. Abad abad L.Desambiguación del Término -  Pruebas Unitarias - por Jorge H. Abad abad L.
Desambiguación del Término - Pruebas Unitarias - por Jorge H. Abad abad L.
 
Desarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agilesDesarrollo con Java y metodologías agiles
Desarrollo con Java y metodologías agiles
 
S9-DAW-2022S1.pptx
S9-DAW-2022S1.pptxS9-DAW-2022S1.pptx
S9-DAW-2022S1.pptx
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -b
 
Pruebas del software
Pruebas del softwarePruebas del software
Pruebas del software
 
Pruebas del software
Pruebas del softwarePruebas del software
Pruebas del software
 
Pruebas del software
Pruebas del softwarePruebas del software
Pruebas del software
 
Unit Testing with Mock Objects
Unit Testing with Mock ObjectsUnit Testing with Mock Objects
Unit Testing with Mock Objects
 
Cabalgando a la bestia: una experiencia de rediseño legacy
Cabalgando a la bestia: una experiencia de rediseño legacyCabalgando a la bestia: una experiencia de rediseño legacy
Cabalgando a la bestia: una experiencia de rediseño legacy
 
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NETPruebas Unitarias - Uso de NUnit dentro de proyectos .NET
Pruebas Unitarias - Uso de NUnit dentro de proyectos .NET
 
Qunit CookBook español
Qunit CookBook españolQunit CookBook español
Qunit CookBook español
 
Calidad del software cap2
Calidad del software   cap2Calidad del software   cap2
Calidad del software cap2
 
Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012Taller de Simpletest - Drupal Day Valencia 2012
Taller de Simpletest - Drupal Day Valencia 2012
 
Conceptos básicos de Unit Test
Conceptos básicos de Unit Test Conceptos básicos de Unit Test
Conceptos básicos de Unit Test
 
Test unitarios
Test unitariosTest unitarios
Test unitarios
 
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros065 Testing Automatizado Hagamos Que Las Maquinas  Trabajen Por Nosotros
065 Testing Automatizado Hagamos Que Las Maquinas Trabajen Por Nosotros
 
software testing
software testingsoftware testing
software testing
 

Kürzlich hochgeladen

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx241523733
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx241522327
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxMariaBurgos55
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfSergioMendoza354770
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELmaryfer27m
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxJOSEMANUELHERNANDEZH11
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativaAdrianaMartnez618894
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramDIDIERFERNANDOGUERRE
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxJOSEFERNANDOARENASCA
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptMiguelAtencio10
 

Kürzlich hochgeladen (20)

GonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptxGonzalezGonzalez_Karina_M1S3AI6... .pptx
GonzalezGonzalez_Karina_M1S3AI6... .pptx
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
FloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptxFloresMorales_Montserrath_M1S3AI6 (1).pptx
FloresMorales_Montserrath_M1S3AI6 (1).pptx
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
Segunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptxSegunda ley de la termodinámica TERMODINAMICA.pptx
Segunda ley de la termodinámica TERMODINAMICA.pptx
 
El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdfPARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
PARTES DE UN OSCILOSCOPIO ANALOGICO .pdf
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
El uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFELEl uso delas tic en la vida cotidiana MFEL
El uso delas tic en la vida cotidiana MFEL
 
Hernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptxHernandez_Hernandez_Practica web de la sesion 11.pptx
Hernandez_Hernandez_Practica web de la sesion 11.pptx
 
definicion segun autores de matemáticas educativa
definicion segun autores de matemáticas  educativadefinicion segun autores de matemáticas  educativa
definicion segun autores de matemáticas educativa
 
Explorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ramExplorando la historia y funcionamiento de la memoria ram
Explorando la historia y funcionamiento de la memoria ram
 
Arenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptxArenas Camacho-Practica tarea Sesión 12.pptx
Arenas Camacho-Practica tarea Sesión 12.pptx
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptxGoogle-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
Google-Meet-como-herramienta-para-realizar-reuniones-virtuales.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
dokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.pptdokumen.tips_36274588-sistema-heui-eui.ppt
dokumen.tips_36274588-sistema-heui-eui.ppt
 

No debuggearás - Introducción al Unit Testing y TDD

  • 6. Debuggear... No asegura NO introducir nuevos bugs
  • 8.
  • 10. Unit Tests Unit = Unidad Tests = Pruebas
  • 13. Unit Tests class Calculator(object): def add(self, a, b): return a + b def sub(self, a, b): return a - b def multiply(self, a, b): return a * b def divide(self, a, b): return a / b def square(self, a): return a * a
  • 14. Cajas
  • 15. Algunas reglas Los tests unitarios deben ser: Repetibles Independientes Automatizables
  • 16. La importancia Los tests unitarios: Fa itan cil io amb el c
  • 17. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n
  • 18. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n Aunque no lo crean, aceleran el desarrollo
  • 19. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n Aunque no lo crean, aceleran el desarrollo d nalida io an func Valid
  • 20. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n Aunque no lo crean, aceleran el desarrollo iones s regre n Evita d nalida io an func Valid
  • 21. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n Aunque no lo crean, aceleran el desarrollo iones s regre n Evita Verifican interfaces d nalida io an func Valid
  • 22. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n Aunque no lo crean, aceleran el desarrollo iones s regre n Evita Verifican interfaces d nalida io an func Valid Testean bugs dedicadamente
  • 23. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if ican la integ racio n Aunque no lo crean, aceleran el desarrollo iones s regre n Evita Verifican interfaces d nalida io an func Valid Testean bugs dedicadamente Fuerza la modularizacion
  • 24. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if Facilitan la migracion ican la integ racio n Aunque no lo crean, aceleran el desarrollo iones s regre n Evita Verifican interfaces d nalida io an func Valid Testean bugs dedicadamente Fuerza la modularizacion
  • 25. La importancia Los tests unitarios: Fa itan cil io amb el c Simpl if Facilitan la migracion ican la integ racio n Aunque no lo crean, aceleran el desarrollo iones s regre n Evita d nalida io an func Valid Son documentacion que nunca pasa de moda Verifican interfaces Testean bugs dedicadamente Fuerza la modularizacion
  • 26. La importancia al iempo de testeo manu Reducen el t Simpl ifica io n la amb integ el c racio an n d cilit Facilitan la migracion Fa nalida io an func Valid Aunque no lo crean, aceleran el desarrollo Los tests unitarios: iones s regre n Evita Son documentacion que nunca pasa de moda Verifican interfaces Testean bugs dedicadamente Fuerza la modularizacion
  • 27. La importancia al iempo de testeo manu Reducen el t Simpl ifica io n la amb integ el c racio an n d cilit Facilitan la migracion Fa nalida io an func Valid Aunque no lo crean, aceleran el desarrollo Los tests unitarios: Son documentacion que nunca pasa de moda nes io egres itan r Testean bugs dedicadamente Ev Permiten la integracion continua Verifican interfaces Fuerza la modularizacion
  • 28. La importancia al iempo de testeo manu Reducen el t Simpl ifica io n la amb integ el c racio an n d cilit Facilitan la migracion Fa nalida io an func Valid Aunque no lo crean, aceleran el desarrollo Los tests unitarios: ing gg ebu ed dd ida es nec l a Son documentacion que nunca pasa de moda n enes deuecio e r gr s Rn Testean bugs dedicadamente Evita Permiten la integracion continua Verifican interfaces Fuerza la modularizacion
  • 29. Limitaciones Los tests unitarios: No van a asegurar un programa libre de bugs ● Solo testean la funcionalidad de las unidades en si ● No pueden testear algoritmos no-deterministicos ● Tambien pueden tener bugs ● Necesitan mantenerse actualizados ●
  • 30. Frameworks Lo basico que un framework xUnit nos debe ofrecer Test Runner ● Test Case ● Test Suites ● Test Fixtures ● Test Result Formatter ● Assertions ● Y...
  • 31. Frameworks Lo basico que un framework xUnit nos debe ofrecer ● Test Execution setup(); ... /* * Cuerpo de la prueba */ ... teardown();
  • 32.
  • 33. Talibanismo Los tests unitarios NO deben Interactuar con la DB Tocar el filesystem Ni con la Red
  • 35. Mock and Roll Usamos mocks para: Aislar la unidad que testeamos ● Escenarios dificiles de reproducir ● Error de red, DB, Filesystem ● Algoritmos nodeterministicos ● Fecha/Hora ● Ambientes costosos de crear ● Objetos que todavia no existen ●
  • 36. Mock and Roll Lo que un framework de mock basico deberia tener: Crear Mocks ● Definirles stub methods ● Definirles expectativas ● Verificar las expectativas ●
  • 37. TDD
  • 38. TDD
  • 39. 2 Reglas 1 – Nada de codigo sin un test que falle
  • 40. 2 Reglas 2 – 0% de codigo repetido 2 – 0% de codigo repetido
  • 47.
  • 48. Autor: Sergio Orbe sergioo@exo.com.ar Ejemplo de código: https://github.com/reyiyo/vending-machine Licencia Creative Commons Reconocimiento – CompartirIgual (by-sa): Se permite el uso comercial de la obra y de las posibles obras derivadas, la distribución de las cuales se debe hacer con una licencia igual a la que regula la obra original.