SlideShare una empresa de Scribd logo
1 de 26
Pruebas automáticas
Joan Sebastián Ramírez Pérez
2015
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Pruebas de software
• Pruebas de Software es un proceso de evaluar un sistema ya sea manual o
automático y verificar que este satisface los requisitos o identifica diferencias
entre lo esperados y los resultados actuales.
• Subconjunto de las llamadas “prácticas técnicas” en la cual se automatizan las
pruebas del software.
• Alrededor del 30 40% del tiempo de la implementación se invierte en la
automatización de pruebas de software.
• Las pruebas de software apuntan a mejorar la calidad del producto.
Tipos de pruebas automatizadas
• Unitarias
• Integración
• Funcionales
• Sistema
¿Por qué hacer pruebas de software?
• Mitigar errores en la aplicación.
• Eficiencia de la aplicación.
• Aseguramiento de la calidad (proceso del desarrollo del software).
• Flexibilidad del software.
• Adaptación del sistema a cambios futuros.
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Mocking
• Los mocks son objetos falsos que simulan el comportamiento de un objeto real.
• Se llaman Mock a los objetos que imitan el comportamiento de objetos reales de
una forma controlada. Se usan para probar a otros objetos en test unitarios que
esperan mensajes de una clase en particular para sus métodos, al igual que los
diseñadores de autos usan un crash dummy cuando simulan un accidente.
• Algunos frameworks para hacer mocks: Mockito, EasyMock, PowerMock, Jmock,
Jmockit, ngMock, JustMock, Nmock, RhinoMock.
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Pruebas Unitarias
• Testean la funcionalidad de una unidad de código emulando las llamas a otras
unidades (tanto internas como externas).
• La emulación se hace a través de mocking.
• las pruebas unitarias por lo general son simples y rápidas de codificar, el
desarrollo de una prueba unitaria no debería tomar más de cinco minutos.
• Algunos frameworks: Junit, Karma, Nunit, RSpec.
¿Qué debería cumplir una prueba unitaria?
• Unitaria: prueba solamente pequeñas cantidades de código.
• Independiente: no debe depender ni afectar a otras pruebas unitarias.
• Automatizable: la prueba no debería requerir intervención manual.
• Repetible y predecible: no debe incidir el orden y las veces que se repita la
prueba, el resultado siempre debe ser el mismo.
Patrón AAA
Hace referencia a la forma en la cual se debe organizar el código para
automatizar una prueba.
• Arrange: preparar objetos, variables, dependencias y mock necesarios para
hacer el llamado a la prueba.
• Act: se invoca la funcionalidad que se quiere probar con lo que se genero en
el arrange.
• Assert: verificar que el resultado del act coincide con el esperado a través de
un assert. Un único assert por prueba.
Set up y Tear Down
• Set up nos permite inicializar valores comunes a todos los test.
• Tear Down nos permite limpiar valores comunes a todos los test.
“
”
No hay ningún secreto en cómo escribir los tests, solo
hay secretos en cómo escribir código testeable.
MiskoHevery
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Pruebas de Integración
• Testean unidades de código.
• Se hacen similar a las unitarias solo que no es necesaria la emulación de las
unidades.
• Es importante probar excepciones y timeout en este tipo de pruebas.
• Se hacen con los mismos framework que las pruebas unitarias.
¿Cuándo es una prueba de integración?
• Cuando involucra una o más clases en simultaneo.
• Cuando el código se comunica fuera de las fronteras de su propio proceso
(base de datos, la red, sistemas de archivos)
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Pruebas Funcionales
• Testean la aplicación incluso interactuando con las diferentes capas de ella.
• Estas pruebas simulan la interacción del usuario con la aplicación.
• Jbehave, Cucumber, Protractor, Selenium, Code Ui, Spec Flow, etc.
Tipos de pruebas funcionales
• Visuales o de apariencia: garantizan que la interfaz de usuario se despliega de
la manera esperada con todas sus secciones, comportamientos y elementos
• Transversales: son las pruebas en las cuales se hace un robot que ingresa los
datos a la pantalla y hace la petición como lo haría un usuario.
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía
Pruebas del Sistema
• Testean la aplicación como un todo.
• Usualmente son usadas para realizar pruebas de stress o para verificar
atributos de calidad definidos para la aplicación.
• Pruebas requisitos no funcionales.
Tipos de pruebas de sistema
• Rendimiento: mide la aplicación respecto a los requisitos no funcionales
asociados a tiempo de respuesta. Pueden medir también consumo de
recursos, memoria, disco, procesador, ancho de banda, etc.
• Escalabilidad: mide que el rendimiento de la aplicación no desmejore
abruptamente en la medida que incrementa el número de usuarios.
• Profiling: análisis de rendimiento en un determinado momento. Usado
habitualmente para identificar problemas de rendimiento en ambientes de
producción.
Agenda
• Pruebas de software
• Mocking
• Pruebas unitarias
• Pruebas de integración
• Pruebas funcionales
• Pruebas de sistema
• Bibliografía

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Apresentação Trello
Apresentação TrelloApresentação Trello
Apresentação Trello
 
Ejemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rupEjemplo plan de desarrollo de software rup
Ejemplo plan de desarrollo de software rup
 
Diseño caso de pruebas
Diseño caso de pruebasDiseño caso de pruebas
Diseño caso de pruebas
 
Investigación ipv4
Investigación ipv4Investigación ipv4
Investigación ipv4
 
Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0Plantilla de toma de requisitos softwarev 1.0
Plantilla de toma de requisitos softwarev 1.0
 
Introducción al c#
Introducción al c#Introducción al c#
Introducción al c#
 
Ieee 830
Ieee 830Ieee 830
Ieee 830
 
Ejemplo rup
Ejemplo rupEjemplo rup
Ejemplo rup
 
Guia de aprendizage 5 introduccion a ios de cisco
Guia de aprendizage 5 introduccion a ios de ciscoGuia de aprendizage 5 introduccion a ios de cisco
Guia de aprendizage 5 introduccion a ios de cisco
 
Uso de threads en C#
Uso de threads en C#Uso de threads en C#
Uso de threads en C#
 
Linguagem Java
Linguagem JavaLinguagem Java
Linguagem Java
 
Introdução ao Firebase
Introdução ao FirebaseIntrodução ao Firebase
Introdução ao Firebase
 
Presentacion de clases en c#
Presentacion de clases en c#Presentacion de clases en c#
Presentacion de clases en c#
 
Comandos y funciones sql postgres
Comandos y funciones sql postgresComandos y funciones sql postgres
Comandos y funciones sql postgres
 
Metodología GQM
Metodología GQMMetodología GQM
Metodología GQM
 
Las clases P NP y NP completo
Las clases P NP y NP completoLas clases P NP y NP completo
Las clases P NP y NP completo
 
Unidad 3 ensambladores
Unidad 3 ensambladoresUnidad 3 ensambladores
Unidad 3 ensambladores
 
Patrones de creación
Patrones de creaciónPatrones de creación
Patrones de creación
 
MySQL Query Optimization
MySQL Query OptimizationMySQL Query Optimization
MySQL Query Optimization
 
Análisis y diseño orientado a objetos
Análisis y diseño orientado a objetosAnálisis y diseño orientado a objetos
Análisis y diseño orientado a objetos
 

Destacado (19)

Diagramas comportamiento
Diagramas comportamientoDiagramas comportamiento
Diagramas comportamiento
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Código Limpio
Código LimpioCódigo Limpio
Código Limpio
 
Ciclo devida
Ciclo devidaCiclo devida
Ciclo devida
 
Modelo diseño
Modelo diseñoModelo diseño
Modelo diseño
 
Patrones GOF
Patrones GOFPatrones GOF
Patrones GOF
 
Refactor y deuda técnica
Refactor y deuda técnicaRefactor y deuda técnica
Refactor y deuda técnica
 
Control de versiones
Control de versionesControl de versiones
Control de versiones
 
Principios SOLID
Principios SOLIDPrincipios SOLID
Principios SOLID
 
Practicas técnicas
Practicas técnicasPracticas técnicas
Practicas técnicas
 
La nube. Cloud computting
La nube. Cloud computtingLa nube. Cloud computting
La nube. Cloud computting
 
Roles scrum
Roles scrumRoles scrum
Roles scrum
 
Lean canvas
Lean canvasLean canvas
Lean canvas
 
Microservicios
MicroserviciosMicroservicios
Microservicios
 
Patrones diseño y arquitectura
Patrones diseño y arquitecturaPatrones diseño y arquitectura
Patrones diseño y arquitectura
 
Historias de usuario
Historias de usuarioHistorias de usuario
Historias de usuario
 
Lean startup
Lean startupLean startup
Lean startup
 
Roles desarrollo del software
Roles desarrollo del softwareRoles desarrollo del software
Roles desarrollo del software
 
Calidad en el desarrollo del software
Calidad en el desarrollo del softwareCalidad en el desarrollo del software
Calidad en el desarrollo del software
 

Similar a Pruebas automaticas

Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdflgarcias
 
Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.LuisManuelPoot
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...Federico Toledo
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Abstracta
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -bJairoSimbaa
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?Micael Gallego
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de softwareGomez Gomez
 

Similar a Pruebas automaticas (20)

Practicas tecnicas
Practicas tecnicasPracticas tecnicas
Practicas tecnicas
 
Pruebas automaticas
Pruebas automaticasPruebas automaticas
Pruebas automaticas
 
Entregables de pruebas
Entregables de pruebasEntregables de pruebas
Entregables de pruebas
 
Pruebas-OCW.pdf
Pruebas-OCW.pdfPruebas-OCW.pdf
Pruebas-OCW.pdf
 
Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.Mapa conseptual tipos de pruebas.
Mapa conseptual tipos de pruebas.
 
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe... Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
Charla en Universidad ORT 2014 - Testing técnico (automatización, mobile, pe...
 
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
Testing técnico - Automatización en web y mobile para pruebas funcionales y p...
 
Modelo pruebas
Modelo pruebasModelo pruebas
Modelo pruebas
 
Prubea de software
Prubea de softwarePrubea de software
Prubea de software
 
Pruebas unitarias 7mo -b
Pruebas unitarias   7mo -bPruebas unitarias   7mo -b
Pruebas unitarias 7mo -b
 
Pruebas
PruebasPruebas
Pruebas
 
S5-CDSQA.pptx
S5-CDSQA.pptxS5-CDSQA.pptx
S5-CDSQA.pptx
 
¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?¿Cómo poner software de calidad en manos del usuario de forma rápida?
¿Cómo poner software de calidad en manos del usuario de forma rápida?
 
Pruebas unitarias
Pruebas unitariasPruebas unitarias
Pruebas unitarias
 
U2T4 - Pruebas del Software
U2T4 - Pruebas del SoftwareU2T4 - Pruebas del Software
U2T4 - Pruebas del Software
 
ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2ASP.NET MVC Workshop Día 2
ASP.NET MVC Workshop Día 2
 
Pruebas de software
Pruebas de softwarePruebas de software
Pruebas de software
 
Exposición software.pptx
Exposición software.pptxExposición software.pptx
Exposición software.pptx
 
Exposición software.pptx
Exposición software.pptxExposición software.pptx
Exposición software.pptx
 
Tipos de pruebas de software
Tipos de pruebas de softwareTipos de pruebas de software
Tipos de pruebas de software
 

Más de Joan Sebastián Ramírez Pérez (10)

Clean architecture
Clean architectureClean architecture
Clean architecture
 
Bddtddatdd
BddtddatddBddtddatdd
Bddtddatdd
 
Orm
OrmOrm
Orm
 
Servicios web
Servicios webServicios web
Servicios web
 
MVC
MVCMVC
MVC
 
Uml
UmlUml
Uml
 
Modelo negocio
Modelo negocioModelo negocio
Modelo negocio
 
Retrospectiva
RetrospectivaRetrospectiva
Retrospectiva
 
Integracion continua
Integracion continuaIntegracion continua
Integracion continua
 
BDD TDD ATDD
BDD TDD ATDDBDD TDD ATDD
BDD TDD ATDD
 

Pruebas automaticas

  • 2. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 3. Pruebas de software • Pruebas de Software es un proceso de evaluar un sistema ya sea manual o automático y verificar que este satisface los requisitos o identifica diferencias entre lo esperados y los resultados actuales. • Subconjunto de las llamadas “prácticas técnicas” en la cual se automatizan las pruebas del software. • Alrededor del 30 40% del tiempo de la implementación se invierte en la automatización de pruebas de software. • Las pruebas de software apuntan a mejorar la calidad del producto.
  • 4. Tipos de pruebas automatizadas • Unitarias • Integración • Funcionales • Sistema
  • 5. ¿Por qué hacer pruebas de software? • Mitigar errores en la aplicación. • Eficiencia de la aplicación. • Aseguramiento de la calidad (proceso del desarrollo del software). • Flexibilidad del software. • Adaptación del sistema a cambios futuros.
  • 6. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 7. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 8. Mocking • Los mocks son objetos falsos que simulan el comportamiento de un objeto real. • Se llaman Mock a los objetos que imitan el comportamiento de objetos reales de una forma controlada. Se usan para probar a otros objetos en test unitarios que esperan mensajes de una clase en particular para sus métodos, al igual que los diseñadores de autos usan un crash dummy cuando simulan un accidente. • Algunos frameworks para hacer mocks: Mockito, EasyMock, PowerMock, Jmock, Jmockit, ngMock, JustMock, Nmock, RhinoMock.
  • 9. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 10. Pruebas Unitarias • Testean la funcionalidad de una unidad de código emulando las llamas a otras unidades (tanto internas como externas). • La emulación se hace a través de mocking. • las pruebas unitarias por lo general son simples y rápidas de codificar, el desarrollo de una prueba unitaria no debería tomar más de cinco minutos. • Algunos frameworks: Junit, Karma, Nunit, RSpec.
  • 11. ¿Qué debería cumplir una prueba unitaria? • Unitaria: prueba solamente pequeñas cantidades de código. • Independiente: no debe depender ni afectar a otras pruebas unitarias. • Automatizable: la prueba no debería requerir intervención manual. • Repetible y predecible: no debe incidir el orden y las veces que se repita la prueba, el resultado siempre debe ser el mismo.
  • 12. Patrón AAA Hace referencia a la forma en la cual se debe organizar el código para automatizar una prueba. • Arrange: preparar objetos, variables, dependencias y mock necesarios para hacer el llamado a la prueba. • Act: se invoca la funcionalidad que se quiere probar con lo que se genero en el arrange. • Assert: verificar que el resultado del act coincide con el esperado a través de un assert. Un único assert por prueba.
  • 13.
  • 14. Set up y Tear Down • Set up nos permite inicializar valores comunes a todos los test. • Tear Down nos permite limpiar valores comunes a todos los test.
  • 15.
  • 16. “ ” No hay ningún secreto en cómo escribir los tests, solo hay secretos en cómo escribir código testeable. MiskoHevery
  • 17. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 18. Pruebas de Integración • Testean unidades de código. • Se hacen similar a las unitarias solo que no es necesaria la emulación de las unidades. • Es importante probar excepciones y timeout en este tipo de pruebas. • Se hacen con los mismos framework que las pruebas unitarias.
  • 19. ¿Cuándo es una prueba de integración? • Cuando involucra una o más clases en simultaneo. • Cuando el código se comunica fuera de las fronteras de su propio proceso (base de datos, la red, sistemas de archivos)
  • 20. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 21. Pruebas Funcionales • Testean la aplicación incluso interactuando con las diferentes capas de ella. • Estas pruebas simulan la interacción del usuario con la aplicación. • Jbehave, Cucumber, Protractor, Selenium, Code Ui, Spec Flow, etc.
  • 22. Tipos de pruebas funcionales • Visuales o de apariencia: garantizan que la interfaz de usuario se despliega de la manera esperada con todas sus secciones, comportamientos y elementos • Transversales: son las pruebas en las cuales se hace un robot que ingresa los datos a la pantalla y hace la petición como lo haría un usuario.
  • 23. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía
  • 24. Pruebas del Sistema • Testean la aplicación como un todo. • Usualmente son usadas para realizar pruebas de stress o para verificar atributos de calidad definidos para la aplicación. • Pruebas requisitos no funcionales.
  • 25. Tipos de pruebas de sistema • Rendimiento: mide la aplicación respecto a los requisitos no funcionales asociados a tiempo de respuesta. Pueden medir también consumo de recursos, memoria, disco, procesador, ancho de banda, etc. • Escalabilidad: mide que el rendimiento de la aplicación no desmejore abruptamente en la medida que incrementa el número de usuarios. • Profiling: análisis de rendimiento en un determinado momento. Usado habitualmente para identificar problemas de rendimiento en ambientes de producción.
  • 26. Agenda • Pruebas de software • Mocking • Pruebas unitarias • Pruebas de integración • Pruebas funcionales • Pruebas de sistema • Bibliografía