SlideShare una empresa de Scribd logo
1 de 27
Testing: la etapa olvidada
>>> from iferminm import info
>>> print info
{
'nombre': 'Israel Fermín Montilla',
'ocupación': 'Programador',
'egresado_de': 'UCAB',
'qué_hace_ahora': 'Lead Developer @ RingTu'
'twitter': '@iferminm',
'blog': 'http://iferminmontilla.com/'
}
Estamos contratando
empleo@ringtu.com
CV + Cover Letter
¿Qué es programar?
Código
Ortogonalidad
(software orthogonality)
Brevísima historia del Testing
● Orientado al debugging (hasta 1956)
– Escribe, luego revisa
● Orientado a la demostración (1957-1978)
– Mostrar que cumple el objetivo
● Orientado a la destrucción (1979-1982)
– Mostrar que hay errores
● Orientado a la evaluación (1983-1988)
– Metodología, nace la ingeniería de pruebas
● Orientado a la prevención (1989-actualmente)
Orientado a la prevención
● Planificación de casos de prueba
● Distintos tipos de pruebas
● Cíclico... nunca termina
– … o al menos tarda en terminar
● El objetivo es producir software efectivo, no
software que sólo pase pruebas.
Debes programar como si quien va
a mantener tu código...
...es un pran de El Rodeo
Desarrollo guiado por pruebas
(Test Driven Development)
TDD
Beneficios
● Definición del requerimiento
● Obliga a escribir las pruebas
– Importante...
● Ayuda a definir el algoritmo
● Visualizar casos no previstos
Pruebas Unitarias
● ¿Qué son?
– Units: bloque específico del programa
– Test: prueba automatizada
● Entradas conocidas, salidas esperadas
Función suma
2
3
5
Pruebas Unitarias
● ¿Qué son?
– Units: bloque específico del programa
– Test: prueba automatizada
● Entradas conocidas, salidas esperadas
Función suma
2
3
5
Revisamos que la salida
Sea el valor esperado
Prueba unitaria
En un programa del mundo real
Problemas
● Data Inicial (fixtures)
– JSON, XML, YAML...
● Acceso a datos
– Escribir y leer de disco cuesta...
● Servicios externos
– Pueden hacer fallar la prueba...
Soluciones
● Sobre los fixtures
– Usar fábricas
● Acceso a datos
– Utilizar almacenamiento in-
memory
● Servicios externos
– Utilizar mockers
El argumento épico
● Las pruebas unitarias consumen tiempo, es
mejor lanzar nuevos features rápido, si da
tiempo las hacemos...
El argumento épico
● Las pruebas unitarias consumen tiempo, es
mejor lanzar nuevos features rápido, si da
tiempo las hacemos...
La respuesta coherente
● Es mejor invertir unas horas extra haciendo
pruebas que gastar semanas haciendo debug
de todo el programa para encontrar el código
que produce un error.
La respuesta coherente
● Es mejor invertir unas horas extra haciendo
pruebas que gastar semanas haciendo debug
de todo el programa para encontrar el código
que produce un error.
Ahora, manos al teclado
¿Qué utilizaremos?

Más contenido relacionado

Destacado

O caminho mais excelente: disciplina
O caminho mais excelente: disciplinaO caminho mais excelente: disciplina
O caminho mais excelente: disciplinaDilean Melo
 
Recopilacion de actividades
Recopilacion de actividadesRecopilacion de actividades
Recopilacion de actividadeshellenrz
 
A 1ª Guerra Mundial
A 1ª Guerra MundialA 1ª Guerra Mundial
A 1ª Guerra MundialRoxxMurderer
 
Reglamento interno
Reglamento internoReglamento interno
Reglamento internojulian5588
 
O emprismo de David Hume (Nereu)
O emprismo de David Hume (Nereu)O emprismo de David Hume (Nereu)
O emprismo de David Hume (Nereu)guest9578d1
 
Grecia dioses griegos
Grecia dioses griegosGrecia dioses griegos
Grecia dioses griegosguxman
 
Sesion 2 curso
Sesion 2 cursoSesion 2 curso
Sesion 2 cursohistoreva
 
Tema 1.5 tendencia central y dispersión (datos no agrupados)
Tema 1.5 tendencia central y dispersión (datos no agrupados)  Tema 1.5 tendencia central y dispersión (datos no agrupados)
Tema 1.5 tendencia central y dispersión (datos no agrupados) anthonymaule
 

Destacado (13)

O caminho mais excelente: disciplina
O caminho mais excelente: disciplinaO caminho mais excelente: disciplina
O caminho mais excelente: disciplina
 
Recopilacion de actividades
Recopilacion de actividadesRecopilacion de actividades
Recopilacion de actividades
 
Reparacion de motores de combustion interna
Reparacion de motores de combustion internaReparacion de motores de combustion interna
Reparacion de motores de combustion interna
 
A 1ª Guerra Mundial
A 1ª Guerra MundialA 1ª Guerra Mundial
A 1ª Guerra Mundial
 
Reglamento interno
Reglamento internoReglamento interno
Reglamento interno
 
O emprismo de David Hume (Nereu)
O emprismo de David Hume (Nereu)O emprismo de David Hume (Nereu)
O emprismo de David Hume (Nereu)
 
Los artistas urbanos
Los  artistas urbanosLos  artistas urbanos
Los artistas urbanos
 
Grecia dioses griegos
Grecia dioses griegosGrecia dioses griegos
Grecia dioses griegos
 
Debian
DebianDebian
Debian
 
Sesion 2 curso
Sesion 2 cursoSesion 2 curso
Sesion 2 curso
 
Bloque de cierre
Bloque de cierreBloque de cierre
Bloque de cierre
 
Lucrecia frutos tp3
Lucrecia frutos tp3Lucrecia frutos tp3
Lucrecia frutos tp3
 
Tema 1.5 tendencia central y dispersión (datos no agrupados)
Tema 1.5 tendencia central y dispersión (datos no agrupados)  Tema 1.5 tendencia central y dispersión (datos no agrupados)
Tema 1.5 tendencia central y dispersión (datos no agrupados)
 

Similar a Testing etapa olvidada

Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupMartin Siniawski
 
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
 
Gestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareGestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareLaura M. Castro
 
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESPRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESFranklin Parrales Bravo
 
Probando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfFederico Toledo
 
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...Federico Peinado
 
Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Israel Antezana Rojas
 
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
 
Programacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILEProgramacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILEGiovanny Guillen
 
Pedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testingPedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testing233 Grados de TI
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010Carlos Ble
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaManuel Rubio
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilagilenavarra
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...César Hernández
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Jano González
 

Similar a Testing etapa olvidada (20)

Ponele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu StartupPonele el TURBO al Dev Team de tu Startup
Ponele el TURBO al Dev Team de tu Startup
 
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
 
Gestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo softwareGestión de pruebas en desarrollo software
Gestión de pruebas en desarrollo software
 
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONESPRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
PRINCIPIOS BÁSICOS DE CONSTRUCCIÓN DE SOFTWARE Y TRATAMIENTO DE EXCEPCIONES
 
Probando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdfProbando aplicaciones basadas en LLMs.pdf
Probando aplicaciones basadas en LLMs.pdf
 
Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Jugando con javascript
Jugando con javascriptJugando con javascript
Jugando con javascript
 
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
GCV Agile testing y videojuegos (Francisco Moreno) - Gestión de la Calidad en...
 
Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)Introducción a la Programación Extrema (XP)
Introducción a la Programación Extrema (XP)
 
Cómo hacer Test Driven Development
Cómo hacer Test Driven DevelopmentCómo hacer Test Driven Development
Cómo hacer Test Driven Development
 
Programacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILEProgramacion RPG: Conceptos ILE
Programacion RPG: Conceptos ILE
 
Pedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testingPedro sebastián mingo. peopleware en el testing
Pedro sebastián mingo. peopleware en el testing
 
S9-DAW-2022S1.pptx
S9-DAW-2022S1.pptxS9-DAW-2022S1.pptx
S9-DAW-2022S1.pptx
 
Charla Tdd Uji 032010
Charla Tdd Uji 032010Charla Tdd Uji 032010
Charla Tdd Uji 032010
 
The path to automation heaven
The path to automation heavenThe path to automation heaven
The path to automation heaven
 
Metodologías Ágiles en la Práctica
Metodologías Ágiles en la PrácticaMetodologías Ágiles en la Práctica
Metodologías Ágiles en la Práctica
 
Agile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvilAgile university day - Un día en un equipo ágil de desarrollo móvil
Agile university day - Un día en un equipo ágil de desarrollo móvil
 
Tdd desde las_trincheras
Tdd desde las_trincherasTdd desde las_trincheras
Tdd desde las_trincheras
 
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...Ecuador jug   2017 -incrementando la productividad de proyectos java ee con c...
Ecuador jug 2017 -incrementando la productividad de proyectos java ee con c...
 
Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1Taller de Unit Testing y TDD en Java: Parte 1
Taller de Unit Testing y TDD en Java: Parte 1
 

Testing etapa olvidada

  • 1. Testing: la etapa olvidada
  • 2. >>> from iferminm import info >>> print info { 'nombre': 'Israel Fermín Montilla', 'ocupación': 'Programador', 'egresado_de': 'UCAB', 'qué_hace_ahora': 'Lead Developer @ RingTu' 'twitter': '@iferminm', 'blog': 'http://iferminmontilla.com/' }
  • 7.
  • 8.
  • 9.
  • 10. Brevísima historia del Testing ● Orientado al debugging (hasta 1956) – Escribe, luego revisa ● Orientado a la demostración (1957-1978) – Mostrar que cumple el objetivo ● Orientado a la destrucción (1979-1982) – Mostrar que hay errores ● Orientado a la evaluación (1983-1988) – Metodología, nace la ingeniería de pruebas ● Orientado a la prevención (1989-actualmente)
  • 11. Orientado a la prevención ● Planificación de casos de prueba ● Distintos tipos de pruebas ● Cíclico... nunca termina – … o al menos tarda en terminar ● El objetivo es producir software efectivo, no software que sólo pase pruebas.
  • 12. Debes programar como si quien va a mantener tu código... ...es un pran de El Rodeo
  • 13.
  • 14. Desarrollo guiado por pruebas (Test Driven Development)
  • 15. TDD
  • 16. Beneficios ● Definición del requerimiento ● Obliga a escribir las pruebas – Importante... ● Ayuda a definir el algoritmo ● Visualizar casos no previstos
  • 17. Pruebas Unitarias ● ¿Qué son? – Units: bloque específico del programa – Test: prueba automatizada ● Entradas conocidas, salidas esperadas Función suma 2 3 5
  • 18. Pruebas Unitarias ● ¿Qué son? – Units: bloque específico del programa – Test: prueba automatizada ● Entradas conocidas, salidas esperadas Función suma 2 3 5 Revisamos que la salida Sea el valor esperado Prueba unitaria
  • 19. En un programa del mundo real
  • 20. Problemas ● Data Inicial (fixtures) – JSON, XML, YAML... ● Acceso a datos – Escribir y leer de disco cuesta... ● Servicios externos – Pueden hacer fallar la prueba...
  • 21. Soluciones ● Sobre los fixtures – Usar fábricas ● Acceso a datos – Utilizar almacenamiento in- memory ● Servicios externos – Utilizar mockers
  • 22. El argumento épico ● Las pruebas unitarias consumen tiempo, es mejor lanzar nuevos features rápido, si da tiempo las hacemos...
  • 23. El argumento épico ● Las pruebas unitarias consumen tiempo, es mejor lanzar nuevos features rápido, si da tiempo las hacemos...
  • 24. La respuesta coherente ● Es mejor invertir unas horas extra haciendo pruebas que gastar semanas haciendo debug de todo el programa para encontrar el código que produce un error.
  • 25. La respuesta coherente ● Es mejor invertir unas horas extra haciendo pruebas que gastar semanas haciendo debug de todo el programa para encontrar el código que produce un error.
  • 26. Ahora, manos al teclado