Curso de Introducción a la Automatización de Pruebas

Toma las primeras clases gratis

¿Qué es la automatización de pruebas?

la automatización de pruebas consiste en el uso de un framework para controlar la ejecución de pruebas y la comparación entre los resultados obtenidos y los resultados esperados

La importancia de la automatización de pruebas es disminuir el trabajo tanto tuyo como de otros y esto por defecto, ahorra recursos para las compañías.

Ventajas:

  • Mejora la eficiencia de las pruebas
  • Proporcionar una cobertura de pruebas más amplia
  • Reducir el coste total de las pruebas (vas a poder reutilizar la automatización N veces)
  • Acortar el periodo de ejecución de la prueba (al ser automático, será más rápido que lo que tardaría en hacerlo una persona)
  • Aumenta la frecuencia de prueba / reducir el tiempo requerido para los ciclos de prueba
  • Se pueden ejecutar más pruebas por compilación / liberación
  • Posibilidad de crear pruebas que no se pueden realizar de forma manual (p.ej: pruebas paralelas)
  • Las pruebas están menos sujetas a errores del operador

Desventajas:

  • Costes adicionales (requiere un coste implementar una infraestructura para automatizar las pruebas)
  • Más difícil debuggear
  • Conocimiento de programación (requiere que tu equipo de QA tenga estos conocimientos y por eso se hará más complicado también debuggear)
  • Mantenimiento continuo
  • Requiere tecnologías adicionales
  • Pruebas más complejas
  • Puede distraer la atención de los objetivos de prueba

Limitaciones de la automatización de pruebas

  • Two Factor Authentication
  • reCAPTCHA (aunque se puede montar un entorno de pruebas deshabilitando reCAPTCHA)
  • Correos (mucho coste o tener en cuenta demasiados factores a la hora de automatizar y quizá no vale la pena el riesgo)
  • Pruebas en dispositivos móviles: Sensores (puede ser complejo emular o imitar un comportamiento similar)
  • Sólo puedes verificar resultados interpretables por la máquina (Ejemplo: no puedes medir cuan feliz es el usuario usando tu app)
  • NO va a reemplazar las pruebas exploratorias realizadas por un humano (no analiza los casos a automatizar etc)
  • UX no se puede “medir” de tal forma que permita automatizarlo

Automatización basada en tipos de pruebas

Pruebas funcionales y no funcionales

  • Funcionales: Nos permiten analizar los requisitos comerciales (lo que el cliente va a ver, etc)
  • No funcionales: Nos permiten probar las cosas que son necesarias para que el cliente vea y tenga una experiencia agradable. (Rendimiento, seguridad, alacenamiento de datos … etc)

La automatización de pruebas nos permitirá automatizar ambos tipos de pruebas.

Tipos de pruebas (funcionales y no funcionales)

  • Pruebas unitarias: pequeños bloques de tu software que puedes ir automatizando y probando una funcionalidad pequeña concreta. Son las más baratas y las hacen los mismos desarrolladores.
  • Pruebas de integración: nos permite probar bloques en conjunto.
  • Pruebas de humo: son pruebas que se corren después de una liberación o compilación para asegurar que nada se haya “incendiado” y que todo funciona correctamente.
  • Pruebas de regresión: Nos va a servir para garantizar que todo sigue funcionando correctamente cuando incluimos nuevas funcionalidades.
  • Pruebas de APIs: puedes automatizar pruebas a los endPoints de una API para garantizar que funciona como debe.
  • Pruebas de seguridad: su propósito es identificar las vulnerabilidades de seguridad de un sistema (también conocidas como pruebas de Pentesting)
  • Pruebas de rendimiento: son un tipo de pruebas no funcionales, por que nos permiten evaluar la estabilidad y aseguran que el software funcione adecuadamente.
  • Pruebas de aceptación: Intentan determinar cual es el resultado esperado del cliente
  • Pruebas de UI: Son las pruebas de interfaz y nos permiten garantizar que el proyecto interacture como debería. Se pueden hacer por bloques, por funcionalidad o pruebas end-to-end.

Todas pueden ser agrupadas en tres grupos:

  • Pruebas unitarias ( como desarrollador )
  • Pruebas de API ( desarrollador backend, test automation o QA)
  • Pruebas de UI ( pruebas end-to-end )

Tipos de framework de automatización

  • Capture/Playback
    Reproduce lo que hayas hecho durante la prueba
    • Pros: Se puede usar para el SUT (System under test / sistema probado) a nivel de GUI (interfaz) /API, inicialmente fácil de configurar y usar.
    • Contras: Difícil de mantener. Implementación hasta que el sistema este disponible
  • Linear Scripting
    Es parecido al anterior, pero puede ir por partes y se puede comentar a nivel de código (genera el codigo)
    • Pros: Se puede usar a nivel GUI o API y es facil de configurar
    • Contras: Cantidad de esfuerzo (se hace por partes), difícil de mantener, costo de mantenimiento lineal
https://i.imgur.com/RqMfzjp.jpg
  • Structured Scripting
    Podemos reutilizar los scripts
    • Pros: Reducción de mantenimiento, reutilización de secuencia de comandos, costo de construcción y mantenimiento
    • Contras: mayor esfuerzo inicial, habilidades de programación, administración.
  • Module based
    Basado en POO, cambios pueden ser por secciones
    • Pros: Modular, scalable y flexible (fácil mantenimiento)
    • Contras: Sin flexibilidad en datos
https://i.imgur.com/Vn1vtkq.jpg
  • Data Driven
    Tenemos mas entradas de prueba (no hardcoded)

    • Pros: Costo, mayor cobertura, flexibilidad en ejecución
    • Contras: Mas fuentes de datos, dominio de un lenguaje de programación
  • Keyword Driven
    Parecido al data driven, pero tengo palabras que toman acciones basado en pasos

    • Pros: Flexibilidad en creación de las pruebas, reutilización de código, no requiere conocimientos de secuencias de comando
    • Contras: complejidad de aprendizaje, incremento de dificultad con mas palabras clave
  • Hybrid
    Hibrido entre data driven y keyword driven

    • Pros: Los de los dos anteriores
    • Contras: Los de los dos anteriores
  • Behavior driven development
    Impulsado por el comportamiento, usa palabras reservadas en un lenguaje llamado gherkin

    • Pros: mayor compatibilidad entre historias de usuario y test cases, claros resultados de pruebas, reutilización de código, data driven
    • Contras: Mucho tiempo, tiempo de planificación, conocimiento de Gherkin o lenguaje similar
https://i.imgur.com/kJu83rv.jpg
https://i.imgur.com/ve1QRQ6.jpg
https://i.imgur.com/M0y2tw8.jpg
https://i.imgur.com/cdplpwc.jpg

Proceso de automatización de pruebas

Ciclo de desarrollo de una aplicación automatizada

  • Análisis
  • Diseño
  • Desarrollo
  • Test
  • Deploy
  • Evolución

Ciclo de Test Automation

  • El Análisis de la Automatización se basa en el Diseño del Sistema de Desarrollo
  • El Test requiere del despliegue de la automatización Ciclo integrando Testing Manual
  • El Análisis de la Automatización se basa en el Diseño del Sistema de Desarrollo y el Deploy de las Pruebas Manuales
  • El Análisis de las Pruebas manuales se basa en el Diseño del Sistema de Desarrollo
  • El Test del SD requiere del despliegue de la automatización y las pruebas Manuales
https://i.imgur.com/Eznk262.jpg

Automatización de pruebas en CI/CD

Tenemos que construir y entregar valor constante mente.
Ejempos:

https://i.imgur.com/3LS3ggP.jpg
https://i.imgur.com/VySRxPg.jpg

Beneficios:

  • Agilidad: desarrollo mas rápido y los bugs se encuentran mas rápido
  • Costo menor: entrega de valor mas rápido, menos testers manuales
  • Seguridad: mayor confianza a la hora de desplegar y no se introdujo un bug
  • Productividad

Herramientas para automatización

  • Unit testing
    • Jest
    • Mocha
    • React/Vue testing library
    • Enzyme
  • API Testing
    • Rest Assured (JAVA)
    • Postman
    • Insomnia
  • Web Browser testing
    • Selenium
    • Puppeteer (Google)
    • Playwright (solución de Microsoft)
    • Testcafe
    • Protactor (app de angular)
    • Cypress
  • Mobile testing
    • Appium
    • Detox (react native)
    • Calabash
    • TestProject
  • Performance
    • Jmeter (stress testing, performance)
    • Gatling

Curso de Introducción a la Automatización de Pruebas

Toma las primeras clases gratis

0 Comentarios

para escribir tu comentario

Artículos relacionados