SlideShare una empresa de Scribd logo
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.
Pruebas automaticas
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.
Pruebas automaticas
“
”
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

PPTX
Tecnicas de estimacion de costos de proyecto software
PPTX
Técnicas de evaluación
PDF
Requerimientos en Ingenieria de Software
DOC
Requerimientos de un Sistema (usando criterios del swebok)
PPTX
Informe final de Auditoria Informatica
PPTX
Estimación de Proyectos de Software
DOCX
Plan de Pruebas
Tecnicas de estimacion de costos de proyecto software
Técnicas de evaluación
Requerimientos en Ingenieria de Software
Requerimientos de un Sistema (usando criterios del swebok)
Informe final de Auditoria Informatica
Estimación de Proyectos de Software
Plan de Pruebas

La actualidad más candente (20)

DOC
Auditoria informatica
PPTX
Norma iso 14598
PPTX
Metodología Clásica
PPT
AUDITORIA DE GESTION DEL SISTEMA DE PRODUCCION
PPTX
Metodologia estructurada
DOCX
2. requerimientos del software
PDF
Ingenieria de software
PPTX
MODELO COCOMO (INGENIERA DE SOFTWARE)
PPTX
Metodologia Kendall y Kendall (1.997)
PPTX
Ciclo de vida de un Sistema
PPTX
Tipos de-pruebas
PDF
Metadatos
PPT
Modelado del análisis
PPT
Etica de ingenieria de software
PDF
Diagrama de clases - Ejemplo monográfico 02
PPT
Gestion de la configuracion del software
PPSX
Presentacion herramientas CASE
DOC
1 plantilla plan_desarrollo_software
PPTX
Importancia del Análisis de Requerimientos
PDF
Tendencias en la Evaluación de la IHC
Auditoria informatica
Norma iso 14598
Metodología Clásica
AUDITORIA DE GESTION DEL SISTEMA DE PRODUCCION
Metodologia estructurada
2. requerimientos del software
Ingenieria de software
MODELO COCOMO (INGENIERA DE SOFTWARE)
Metodologia Kendall y Kendall (1.997)
Ciclo de vida de un Sistema
Tipos de-pruebas
Metadatos
Modelado del análisis
Etica de ingenieria de software
Diagrama de clases - Ejemplo monográfico 02
Gestion de la configuracion del software
Presentacion herramientas CASE
1 plantilla plan_desarrollo_software
Importancia del Análisis de Requerimientos
Tendencias en la Evaluación de la IHC
Publicidad

Destacado (19)

PPTX
Diagramas comportamiento
PPTX
Refactor y deuda técnica
PPTX
Control de versiones
PPTX
PDF
Practicas técnicas
PPTX
La nube. Cloud computting
PPTX
Patrones diseño y arquitectura
PPTX
Historias de usuario
PPTX
Roles desarrollo del software
PPTX
Calidad en el desarrollo del software
Diagramas comportamiento
Refactor y deuda técnica
Control de versiones
Practicas técnicas
La nube. Cloud computting
Patrones diseño y arquitectura
Historias de usuario
Roles desarrollo del software
Calidad en el desarrollo del software
Publicidad

Similar a Pruebas automaticas (20)

PPTX
Pruebas automaticas
PPTX
PPTX
Test Automation .NET
PPTX
Pruebas de Manto Cuantos tipos de pruebas hay ? Que es una estrategia ? Que e...
PDF
presentacion de programacion Software testing.pdf
PPTX
Unit testing
ODP
Pruebas al Software
PPTX
S9-DAW-2022S1.pptx
PPTX
Prueba de testeo de software, ingeniería de sistemas.pptx
PDF
Pruebas unitarias
PPS
Presentation_1368477015714
PPTX
Pruebas de software
PPTX
Prubea de software
PPTX
Pruebas Automatizadas
PPTX
Tecnicas de Pruebas
PDF
Introducción a las Pruebas Software
PPTX
U2T4 - Pruebas del Software
PDF
Automatizacion de Pruebas
PDF
Conceptos básicos de Unit Test
PPT
Doo 13-testing
Pruebas automaticas
Test Automation .NET
Pruebas de Manto Cuantos tipos de pruebas hay ? Que es una estrategia ? Que e...
presentacion de programacion Software testing.pdf
Unit testing
Pruebas al Software
S9-DAW-2022S1.pptx
Prueba de testeo de software, ingeniería de sistemas.pptx
Pruebas unitarias
Presentation_1368477015714
Pruebas de software
Prubea de software
Pruebas Automatizadas
Tecnicas de Pruebas
Introducción a las Pruebas Software
U2T4 - Pruebas del Software
Automatizacion de Pruebas
Conceptos básicos de Unit Test
Doo 13-testing

Último (8)

DOCX
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
PPTX
sistemas de informacion.................
PDF
DIMENSIONADO DE UNA INSTALACION FOTOVOLTAICA.pdf
PDF
simulacion de teoria de control para maquinas
PDF
modelos de control para sistemas digitales
PPTX
Derechos_de_Autor_y_Creative_Commons.pptx
PDF
AutoCAD Herramientas para el futuro, Juan Fandiño
PDF
Su punto de partida en la IA: Microsoft 365 Copilot Chat
trabajo programacion.docxxdxxxddxdxxdxdxxxdxxdxdxd
sistemas de informacion.................
DIMENSIONADO DE UNA INSTALACION FOTOVOLTAICA.pdf
simulacion de teoria de control para maquinas
modelos de control para sistemas digitales
Derechos_de_Autor_y_Creative_Commons.pptx
AutoCAD Herramientas para el futuro, Juan Fandiño
Su punto de partida en la IA: Microsoft 365 Copilot Chat

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.
  • 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.
  • 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