Cómo elaborar una estrategia de automatización de pruebas

Cómo elaborar una estrategia de automatización de pruebas-firmbee-com-gcsNOsPEXfs-unsplash

Diseñar e implementar una estrategia de automatización de pruebas puede ser abrumador. Hay varios puntos a considerar y al investigar, se hallará muchos puntos de vista a considerar. La forma en que se desarrolla e implementa una estrategia de automatización es única para las necesidades y habilidades de cada organización. En esta serie de artículos de tres partes, se proporcionarán algunas ideas sobre cómo diseñar e implementar estas estrategias.

En este artículo, se discutirá el POR QUÉ desea comenzar a automatizar, o sea los objetivos, y el QUIÉN será el propietario, o responsable. Si bien esos dos puntos parecen sencillos, hay elementos a considerar que pueden ser exclusivos de las circunstancias o que quizá no se tenían “bajo el radar”.

Tabla de contenido de la serie “Cómo elaborar una estrategia de automatización de pruebas”

💡 Tal vez te interese el artículo Hoja de ruta para convertirse en un Automatizador de Pruebas.

Capítulo 1: Identifique sus objetivos y responsables

Identificación de sus objetivos de automatización

Responder por qué desea automatizar es una pregunta fundamental e importante. Una vez que identifique esto, se debe hacer referencia continuamente a esta respuesta a lo largo del proceso de automatización. Es una prioridad asegurar que se está implementando técnicas o herramientas que ayudan a alcanzar los objetivos planteados. A continuación, se presentan algunos objetivos comunes que se pueden considerar en la estrategia:

  • Tiempos de ejecución más rápidos: dicho de otra manera, mayor velocidad de comercialización o mejoras en el time-to-market. Cuanto más rápido pueda su equipo validar los cambios de código, más rápido podrá llegar el código a los clientes. La automatización de su conjunto de pruebas puede reducir en gran medida la cantidad de tiempo que lleva completar la prueba.
  • Precisión mejorada: cadavez que un Analista QA ejecuta manualmente las pruebas, existe el riesgo de error humano. Es natural cometer errores relacionados con la pérdida de concentración o fatiga, y una forma de reducir el riesgo de errores es crear scripts de sus pruebas (automatización) para permitirle ejecutar la misma prueba cada vez.
  • Optimización de los ingenieros de pruebas: una vez que haya cubierto las pruebas a través de la automatización, sus ingenieros de pruebas manuales pueden centrar sus esfuerzos en pruebas complejas y centradas en el ser humano. Impulsar este cambio de cultura mejorará las experiencias del usuario final (UX, User eXperience) dentro de su aplicación.
  • Simulación de carga de usuario: tener la capacidad de automatizar la carga en su aplicación es imperativo para garantizar que sus sistemas puedan manejar las horas pico. Desafortunadamente, tener carga manual agregada a su aplicación a menudo no es suficiente. 
  • Bucles de retroalimentación más rápidos: la automatización, cuando se desarrolla de manera efectiva, le permite enviar retroalimentación al desarrollador rápidamente. Si las pruebas revelan un error, el desarrollador aún tiene “fresco” el conocimiento sobre la funcionalidad y puede solucionar el problema rápidamente. Los ciclos de retroalimentación más largos a menudo ocurren cuando los desarrolladores han cambiado de contexto, incluso de proyecto. 
  • Mejor código para el control de calidad: diseñar la automatización para que se ejecute en un pipeline de CI / CD (Integración Continua o Despliegue Continuo) permite que se ejecute cuando un desarrollador sube su código a un repositorio o rama en particular. Esto les brinda una respuesta rápida antes de que pase a verificación del control de calidad.
  • Mayor cobertura de pruebas: la ejecución manual de casos de pruebas puede limitar la cantidad que se puede cubrir durante la prueba, especialmente si trabaja con ciclos de prueba reducidos. Al automatizar, puede cubrir más pruebas de inmediato. 

Identificación del QUIEN

Ahora que se ha definido el por qué, la siguiente parte crucial es el quién. Definir el quién inicial, así como el quién a largo plazo, es importante para el éxito de su estrategia de automatización de pruebas. A continuación, se listan las áreas que necesitará para definir un para quién y algunas opciones que tiene para cada una.

Scripting y mantenimiento 

Hay algunas consideraciones para tener en cuenta al definir quién será el propietario de los scripts de pruebas. Hay necesidades a corto plazo que esencialmente es automatiar la suite de regresión cuanto antes. Además, existen necesidades a largo plazo, como agregar nuevas funcionalidades a la suite de automatización, y mantenimiento de los scripts, ejecuciones y validaciones existentes. Definir quién será el propietario de estos es una decisión que la organización deberá tomar en conjunto. A continuación, se muestran algunas opciones comunes a considerar:

  1. Ingenieros de automatización dedicados o SDET (Software development engineers in Tests: desarrolladores de software especializados en pruebas):los analistas QA de automatización dedicados permiten poner en funcionamiento rápidamente una suite de automatización. Estos analistas tienen experiencia y habilidades tanto para configurar un marco de automatización (frameworks) como para desarrollar scripts de pruebas. Una vez que la suite esté en funcionamiento, se deberá considerar el esfuerzo necesario para dar mantenimiento a los scripts. Los automatizadores a tiempo completo permiirán concentrar esfuerzos garantizando que la suite de automatización se mantenga estable, confiable y genere un alto nivel de confianza.
  2. Desarrolladores: se puede optar por pedirle asignarle al equipo de desarrollo que programe y ejecute la automatización. Sin embargo, esto puede afectar los tiempos de desarrollo de nuevas funcionalidades, así como también lo hará en el futuro el proceso de mantenimiento y actualización de los scripts. La industria, actualmente delega al equipo de desarrollo la creación de pruebas unitarias que garanticen la correctitud del código desarrollado. Es el grupo más grande de pruebas y la base de la pirámide de pruebas de automatización. Se revisará la pirámide de pruebas en el capítulo tres de esta serie: ¿Qué debemos automatizar?
  3. Ingenieros de pruebas manuales: implementar un marco de automatización y programar su suite de regresión es una tarea que requiere mucho tiempo y habilidades altamente desarrolladas, por lo cual es necesario tener un soporte para pruebas manuales, que debe ser ejecutadas por alguien diferente al automatizador, o sea, son dos roles diferentes. Se debe tener presente que uno de los objetivos “para qué” de implementar automatizar las pruebas es reducir el tiempo de prueba. Pedirle a alguien que no solo valide manualmente los cambios, sino que también se concentre en desarrollar el software que probará el software (la automatización), puede conducir al fracaso en el logro de ese objetivo. 

Ejecución y validación de pruebas

Cuando se implementa por primera vez un marco de automatización, normalmente, no se integra directamente a un pipeline de CI / CD. Como tal, se debe considerar quién será responsable de ejecutar los scripts y validar los resultados. A continuación, se muestran algunas opciones comunes a considerar:

  1. SDETssi se contrata ingenieros de automatización dedicados para la creación y mantenimiento de scripts de pruebas, podría tener sentido que esas mismas personas se apropien de la ejecución y validación de las pruebas. De esta forma, los “falsos positivos” de las pruebas son gestionados antes de crear una alerta inexistente en todo el equipo. 
  2. Desarrolladores: Pedir a los desarrolladores que realicen pruebas y validen fallas ciertamente los alejará de su objetivo principal de desarrollar nuevas funcionalidades para el proyecto u organización. Además, la tarea de ejecutar y validar fallas requiere unas habilidades diferentes a las de desarrollo de scripts de pruebas, que en últimas es desarrollo de software. Por lo tanto, usarlos en esta capacidad puede limitar la cantidad de trabajo que pueden realizar.
  3. Ingenieros de pruebas manuales: tener testers manuales que validen las ejecuciones de pruebas de automatización puede ser una buena opción para algunas organizaciones. Usar sus habilidades para profundizar en las fallas y validarlas es una extensión de sus actividades de prueba diarias. Pero se debe tener un proceso de validación y corrección de los “falsos positivos” por parte de los automatizadores para evitar que los testers manuales se concentren en temas irresolubles.

Conclusiones

Después de leer este artículo, ahora debería sentirse cómodo teniendo estas discusiones entre su equipo e identificando los objetivos que está tratando de lograr en su viaje para crear una estrategia de prueba de automatización. Además de los objetivos, asegúrese de estar de acuerdo sobre quién será el propietario de áreas específicas como desarrollo de scripts de automatización de pruebas, mantenimiento y validaciones de fallas. Identificar esto en detalle, por adelantado, le ahorrará tiempo y dolores de cabeza en el futuro.

Fuentes

Basado en Automation Test Strategy: Identify Your Goals and Ownership por Johanna South. 

Imagen por Firmbee.com en Unsplash.

Author: Alex Andrade

Magister Ingeniería de Software, MBA y Especialista en Gerencia de Proyectos Tel: +57-317-241-5118

Deja un comentario

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.