Tutorial de pruebas de automatización: Primeros pasos

Tabla de contenidos

¿Qué es la Prueba de automatización?

Como su nombre indica. las pruebas de automatización toman actividades de prueba de software y las ejecutan a través de un conjunto de herramientas o marco de automatización. En palabras simples, es un tipo de prueba en la que una herramienta ejecuta un conjunto de tareas en un patrón definido automáticamente.

Elimina la presión de los probadores manuales y les permite centrarse en tareas de mayor valor: pruebas exploratorias, revisión de resultados de pruebas, etc. Esencialmente, una máquina se hace cargo e implementa tareas mundanas, repetitivas y confusas en el tiempo, como las pruebas de regresión. Las pruebas de automatización son esenciales para lograr una mayor cobertura de pruebas en plazos más cortos, así como una mayor precisión de los resultados.

¿Por qué las pruebas de automatización son críticas en el ciclo de vida de un Software?

Imagina esto.

En su primer día como QA, debe probar una aplicación que incluya aproximadamente 100 campos que requieren entrada. Al realizar pruebas exploratorias, debe insertar la entrada manualmente en cada campo. Esto toma unos 10 minutos si eres muy rápido.

Pulsa Enviar. Aparece un mensaje de error. Parece una excepción no controlada. Reportas el error y te sientes muy bien con un trabajo bien hecho. Repite el proceso, encuentra algunos errores más y tiene un primer día generalmente productivo.

Al día siguiente, el desarrollador soluciona los problemas y tienes que probar la nueva versión del software, repitiendo los mismos pasos que el día anterior. Error corregido. Trabajo bien hecho. Una buena experiencia de usuario asegurada, gracias a sus esfuerzos.

En el tercer día, los desarrolladores han lanzado una versión más nueva con características más nuevas. Pero para asegurarse de que las nuevas funciones no han roto las funciones de trabajo más antiguas, debe repetir el proceso de nuevo. No se encontraron problemas.

A partir de un mes, los desarrolladores lanzan versiones más nuevas de forma continua, lo que significa que debe seguir probando el software, repitiendo el mismo proceso (insertar entrada de campo) cada vez. Estás aburrido y cansado. Su precisión comienza a flaquear, como resultado de lo cual finalmente termina perdiendo un error, posiblemente uno bastante obvio.

Lo creas o no, este es un escenario bastante común para la mayoría de los QAs. No es posible hacer lo mismo una y otra vez y ser perfecto en todo momento. Aquí es donde entran en juego las pruebas de automatización.

¿Puede un software probar otro software?

Sí. Ese es el objetivo de las pruebas de automatización. Cuando se trata de pruebas de regresión, invertir esfuerzo manual es inútil y derrochador. En lugar de esperar que los humanos repitan los mismos pasos con la misma velocidad, precisión y energía, es mucho más lógico programar una máquina para que haga lo mismo.

¿Qué pruebas deben automatizarse?

Antes de crear una estrategia de automatización de pruebas, echemos un vistazo a qué pruebas son más viables para la automatización:

  • Pruebas de regresión: Los conjuntos de regresión están en constante aumento y requieren que las mismas variables se rellenen varias veces para garantizar que las nuevas características no interfieran con las funciones más antiguas. Esto se puede automatizar fácilmente.
  • Pruebas de funcionalidades complejas: Automatice todas las pruebas que requieran cálculos complejos, algo propenso a errores humanos.
  • Prueba de humo: Ejecute suites automatizadas para verificar la calidad de las principales funcionalidades. Esto ahorra tiempo al ofrecer un análisis rápido de si una compilación requiere pruebas más profundas.
  • Pruebas basadas en datos: Automatice las pruebas para validar funcionalidades que deben probarse repetidamente con numerosos conjuntos de datos.
  • Pruebas de rendimiento: Automatice las pruebas que supervisan el rendimiento del software en diferentes circunstancias. Hacer esto manualmente sería extremadamente laborioso y llevaría mucho tiempo.
  • pruebas Funcionales: Cada vez que un desarrollador envía un PR, las pruebas funcionales deben ejecutarse rápidamente y proporcionar comentarios inmediatos. Esto es imposible de lograr sin automatización, especialmente a medida que las organizaciones se amplían.

Introducción a las pruebas de automatización

Cuando realice la transición de las pruebas manuales a las de automatización, tenga en cuenta los siguientes puntos:

  • No apunte a la automatización de pruebas al 100%. No todas las pruebas se pueden automatizar. Incluso entre las pruebas que se pueden automatizar, no establezca un objetivo inicial de automatización completa.
  • Establezca un objetivo realista. Por ejemplo, comience moviendo algunas pruebas a la automatización. Escriba casos de prueba más pequeños que se puedan reutilizar fácilmente en pruebas futuras del mismo software. Mapee los casos de prueba con las funciones correspondientes para proporcionar una mejor cobertura de prueba. Etiquete los casos de prueba para que los equipos puedan tener claridad sobre qué automatizar y generar informes de manera más efectiva.
  • Explore nuevas áreas de la aplicación con automatización. Al trazar estrategias de automatización, asegúrese de que los requisitos comerciales se tomen tan en serio como las consideraciones técnicas.
  • Sepa qué no automatizar. Esto ayuda a decidir el alcance de la automatización al principio del proceso de ideación. Es mejor dejar las siguientes pruebas a la cobertura manual:

  1. Pruebas de experiencia de usuario: Las herramientas no pueden replicar ningún recorrido de usuario en su totalidad. Es imposible para un algoritmo predecir cómo los usuarios individuales interactuarán con una aplicación. Para juzgar realmente la calidad de la experiencia del usuario, apégate a los probadores humanos. Prueba a usar herramientas de prueba interactivas manuales como BrowserStack Live.
  2. Pruebas de accesibilidad: Al probar cuán accesible es una aplicación, no hay sustituto para el uso humano. Una herramienta no puede medir la accesibilidad porque las personas a menudo tienen opiniones diferentes sobre lo que cuenta como accesible. No es posible que una herramienta reconozca si el flujo de trabajo del software proporciona un acceso fácil para los humanos reales.
  • Seleccione las herramientas derechasla prueba de automatización depende completamente de las herramientas. Esto es lo que debe tener en cuenta al elegir la herramienta correcta:
  1. La naturaleza del software: ¿La aplicación que se está probando está basada en la web o en dispositivos móviles?
    Para probar el primero, use una herramienta como Selenium para automatizar sus pruebas. Para este último, Appium es una de las mejores herramientas posibles para la automatización.
  2. Experiencia de programador: Elija marcos, idiomas y herramientas que coincidan con la comodidad y la experiencia de los evaluadores. Algunos de los lenguajes más populares utilizados para pruebas de automatización incluyen Java, JavaScript,Ruby, C#, etc.
  3. Código abierto o no: Dependiendo de las restricciones presupuestarias, se puede optar por utilizar herramientas de código abierto como Selenium o Appium con fines de automatización. Sin embargo, es importante recordar que todas las herramientas de código abierto no son inferiores a sus contrapartes disponibles comercialmente. Por ejemplo, Selenium Webdriver es una herramienta de código abierto que es la más favorecida por los probadores automatizados de todo el mundo.
  • Seleccione la cuadrícula de prueba correcta

La cuadrícula de prueba se refiere a la infraestructura en la que se ejecutarán todas las pruebas automatizadas. Comprende una serie de dispositivos, navegadores y sistemas operativos (múltiples versiones) en los que se probará el software. Siempre es mejor automatizar las pruebas en dispositivos y navegadores reales. Esto asegurará que el software se esté probando en condiciones reales de usuario.

Además, la cuadrícula de prueba ideal debe permitir las pruebas en paralelo. Esto significa que los probadores deben poder ejecutar múltiples pruebas en varios dispositivos simultáneamente. Esto reduce el tiempo de prueba, agiliza los resultados y ofrece resultados en plazos más cortos.

Algo más que decidir es si la cuadrícula de pruebas debe hospedarse en las instalaciones o en la nube. Tenga en cuenta que la infraestructura local casi siempre es costosa de configurar y mantener. Requiere realizar un seguimiento de los nuevos dispositivos, navegadores y sistemas operativos, actualizarlos y mantenerlos en consecuencia. Este es un desafío, ya que se lanzan varias versiones de cada una cada mes.

Por el contrario, las pruebas en una red basada en la nube son más fáciles, ya que la organización que ofrece la red se encargará de la actualización y el mantenimiento. Por ejemplo, BrowserStack ofrece una red de Selenio en la nube que está conectada a más de 2000 dispositivos y navegadores reales para realizar pruebas. Los usuarios simplemente tienen que registrarse y comenzar a hacer pruebas en una sólida cuadrícula de Selenio que se actualiza constantemente para obtener los mejores resultados posibles.

real device cloud de BrowserStack proporciona más de 2000 navegadores y dispositivos reales para pruebas instantáneas y bajo demanda. La nube también proporciona integraciones con herramientas de CI/CD populares como Jira, Jenkins, TeamCity, Travis CI y mucho más. Además, hay herramientas de depuración integradas que permiten a los evaluadores identificar y resolver errores de inmediato. BrowserStack también facilita las pruebas de ciprés en más de 30 versiones de navegador con paralelización instantánea y sin complicaciones.

Pruebe las pruebas de automatización de forma gratuita

Ejemplo de Automatización de pruebas

Al probar manualmente el software, el comprobador utiliza un soporte y un teclado para interactuar con él. Los scripts y herramientas de automatización replican esta interacción paso a paso.

En este ejemplo, se está probando una calculadora para ver si puede agregar dos números y mostrar el resultado. Manualmente, los pasos para hacerlo serían los siguientes:

Paso 1: Inicie la calculadora
Paso 2: Presione 2
Paso 3: Presione +
Paso 4: Presione 3
Paso 5: Presione =
Paso 6: La pantalla muestra 5
Paso 7: Calculadora de cierre

Una herramienta de automatización puede realizar los mismos pasos con el siguiente script:

//the example is written in MS Coded UI using c# language.public void TestCalculator(){//launch the applicationvar app = ApplicationUnderTest.Launch("C:\Windows\System32\calc.exe");//do all the operationsMouse.Click(button2);Mouse.Click(buttonAdd);Mouse.Click(button3);Mouse.Click(buttonEqual); //evaluate the resultsAssert.AreEqual("5", txtResult.DisplayText,"Calculator is not showing 5");//close the applicationapp.Close();}

Al ejecutar el script anterior, se muestra exactamente el mismo resultado (5). En lugar de tener que seguir los pasos manuales, simplemente escriba el guion y deje que la herramienta se encargue del resto.

Cómo pasar de las pruebas Manuales a las de automatización

Para empezar: haga dos preguntas.

  1. ¿Qué Automatizar?
  2. Cómo Automatizar?

¿Qué Automatizar?

  • Automatice las pruebas necesarias para un ciclo de lanzamiento frecuente. Esto puede incluir pruebas de humo, pruebas de regresión y similares. Básicamente, automatice las pruebas que aceleran todo el ciclo de pruebas. Recuerde, una intervención manual más baja equivale a resultados más rápidos.
  • Automatice las pruebas en función de la prioridad técnica y empresarial. Piense así: ¿la automatización de esta prueba ayudaría al negocio? ¿La automatización de esta prueba ayudaría a simplificar las complejidades técnicas? Si la respuesta es afirmativa a cualquiera de las preguntas, automatice.
  • Automatizar en función de la usabilidad. Algunas pruebas, como las pruebas de compatibilidad entre navegadores, simplemente funcionan mejor cuando se realizan manualmente. La dependencia de la herramienta también puede limitar el potencial de automatización de un determinado equipo de pruebas u organización.

Más información: 10 Prácticas Recomendadas de Automatización de pruebas a seguir

¿Cómo automatizar?

Para empezar, tenga en cuenta que no todas las pruebas se pueden automatizar. Al adherirse a las tres estrategias de la sección anterior, es más fácil iniciar pruebas automatizadas de manera práctica.

  • Comience con poco. la automatización al 100% no es el objetivo, y tampoco es posible. Escriba casos de prueba más pequeños porque son más fáciles de mantener y reutilizar. Mueva un pequeño número de pruebas a una plataforma de automatización, ejecute las pruebas, analice los resultados y decida si el proceso resultó ser beneficioso para el proceso de desarrollo de software.
  • Si se obtienen beneficios significativos de la operación, mueva más pruebas a la automatización. Comience a mover las pruebas no solo en volumen, sino también aumente el tipo de pruebas que se automatizan. Recuerde que esta es todavía una etapa experimental. Es posible que ciertas pruebas resulten ineficaces en la automatización y tengan que volver a las pruebas manuales.
  • Mapee los casos de prueba con cada método o función para obtener una mejor cobertura de prueba. Etiquete sus casos de prueba para una identificación más fácil, para que el equipo pueda saber rápidamente qué pruebas automatizar. Esto también ayuda a mejorar la presentación de informes.
  • Al iniciar las pruebas de automatización, comience explorando nuevas áreas de la aplicación manualmente. Luego, cree un plan de riesgos que detalle lo que debe automatizarse, basado en las prioridades comerciales y técnicas.
  • Utilice analytics para determinar las preferencias del usuario final. Cree una lista de navegadores y dispositivos con los que es más probable que los usuarios accedan al software. Esto ayuda a que las pruebas de automatización cubran las interfaces correctas y optimice el rendimiento del software en las vías de usuario correctas.

Pruebe las pruebas automatizadas en Real Device Cloud

Mantenimiento de automatización de pruebas

Una vez creadas, las suites de pruebas de automatización deben mantenerse. A medida que el software evoluciona y la base de código se expande, los scripts de automatización deben modificarse y actualizarse para incorporar nuevas características y funciones. Incluso los cambios minúsculos en la interfaz de usuario pueden interrumpir las pruebas y hacer que fallen. Al diseñar los casos de prueba, los probadores de automatización deben tener en cuenta el esfuerzo y los costos de mantenimiento.

El enfoque de mantenimiento de automatización de pruebas funciona desde dos perspectivas principales:

  • Fallo de prueba: Al depurar pruebas fallidas, busca posibles problemas de mantenimiento. ¿No se actualizó adecuadamente el script de prueba? ¿Un cambio en el código del software interfirió con el script de prueba? Esta es una manera fácil de identificar qué áreas requieren esfuerzos de mantenimiento.
  • Cambio en Dependencias o Herramientas: El equipo u organización ha cambiado las API, las herramientas de informes, las bases de datos, etc.? Si es así, es posible que sea necesario cambiar o actualizar las pruebas para alinearlas con los nuevos conjuntos de herramientas. Para lograr esto, es obvio que los desarrolladores y probadores necesitarán capacitación en la nueva infraestructura para que puedan mantenerse al día con los esfuerzos de mantenimiento en el futuro.

¿Cuáles son los elementos clave de una estrategia eficaz de automatización de pruebas?

Las pruebas de automatización son una parte integral de cualquier ecosistema de pruebas. Sin pasar a una configuración de automatización, las pruebas exhaustivas se vuelven difíciles, al igual que el cumplimiento de plazos cada vez más cortos. En consecuencia, es importante iniciar los protocolos de prueba de automatización lo antes posible de una manera que equilibre y complemente las pruebas manuales.

Pruebe los pasos descritos anteriormente y experimente lo suficiente para descubrir qué enfoques producen resultados óptimos. No se preocupe por fallar un par de veces antes de encontrar el punto óptimo que permite una automatización efectiva sin comprometer la validación humana.

Write a Comment

Tu dirección de correo electrónico no será publicada.