Blog

4 desafíos comunes de la automatización de pruebas: ¿cómo enfrentarlos?

Comenzar con la automatización de pruebas no es una tarea fácil. Compartimos algunos consejos para lograr este proceso de manera efectiva.

Desafíos de la automatización de las pruebas de software
Imagen de Wilfried Pohnke en Pixabay

La automatización de pruebas puede ser una gran impulsora de la productividad dentro de los equipos de testing, y una potenciadora de la calidad de los sistemas cuando se usa correctamente. Por tanto, la clave es asegurarnos que la automatización de use de la manera adecuada, la parte más difícil al comenzar.

En este post, veremos los desafíos más comunes de la automatización de pruebas, y cómo enfrentarlos para llevar a cabo este proceso de manera efectiva.

Desafío 1: Recibir el visto bueno de la gerencia

Como ocurre con cualquier departamento de la empresa, los colaboradores siempre están solicitando cosas que pueden estar o no contempladas en el presupuesto. Es posible que los testers sepan que la automatización de pruebas ofrece beneficios comerciales y técnicos, tales como: disminuir el tiempo de comercialización, aumentar la cobertura y precisión de las pruebas, disminuir el costo de las pruebas por hora, encontrar bugs de manera anticipada, etc.), pero ¿cómo pueden los testers convencer al departamento de finanzas y al líder de desarrollo de asignar el tiempo y los recursos necesarios para implementar la automatización de pruebas?

“La automatización de pruebas promete una mayor productividad y precisión, que es donde se debe plantear el caso comercial. El costo de un solo defecto … puede compensar el precio de una o más licencias de herramientas.”

Randall Rice, Consultor internacional de testing de software y QA

Estamos de acuerdo con Randall Rice en que la automatización puede pagarse por sí sola. Para demostrarle al área gerencial que los beneficios financieros son sustanciales, puede mostrarles este simple desglose que hicimos del ROI de la automatización de pruebas. En dicho post, ejemplificamos cómo un equipo de cinco testers senior y cinco testers junior podría reducir hipotéticamente el costo de las pruebas de $78/hora a solo $17.58/hora y aumentar las pruebas de 1.350 horas por mes a 5.985 horas equivalentes, ganando $315.000 a través de la automatización de pruebas. Esto sin hablar de todos los beneficios cualitativos de la automatización.

Es importante ser muy transparentes con todas las partes involucradas. No oculte información, ni plantee que la automatización no requiere mucho esfuerzo ni recursos iniciales.

Desafío 2: Seleccionar y usar las herramientas adecuadas

Muchos equipos no superan esta fase debido a varias razones. Es posible que carezcan de la experiencia para usar una determinada herramienta, la herramienta que desean no existe, su conjunto de herramientas no ofrece una cobertura completa de prueba, etc.

Si no tiene un conocimiento básico suficiente sobre cómo usar una herramienta, tiene las siguientes opciones:

  • Tomar un curso online.
  • Recurrir a alguien que ayudó a crear la herramienta y puede brindarle alguna capacitación de la misma.
  • Contratar a un consultor para que lo ayude a dominar la herramienta.
  • Cuando todo lo demás falla, la tercerización de las pruebas con una compañía especialista en testing, puede ser un enfoque práctico. 

Si cree que una herramienta no existe, sería bueno confirmarlo con la comunidad. Vaya a foros como Stack Exchange, donde a los demás testers les encanta discutir los recientes desarrollos y novedades en el área de testing. Si no puede encontrarla, evalúe si es factible o si vale la pena crearla usted mismo. En nuestro caso, hemos desarrollado varias herramientas de testing personalizadas para clientes con necesidades específicas, tales como Apptim o GxTest.

Si la herramienta con la que cuenta no hace todo lo que necesita, considere buscar una solución de múltiples herramientas. Recuerde, es imposible probar absolutamente todo, pero puede usar herramientas que prueban las cosas más importantes.

Por último, si una herramienta está fuera de su presupuesto, haga un análisis rápido de costo vs. beneficio y presente su caso. Puede medir el impacto causado por un bug anterior que haya encontrado y mostrar cuánto tiempo y dinero podría haber ahorrado si se contara con dicha herramienta.

Desafío 3: Identificar una estrategia inicial

Ahora bien, contando con todas las herramientas y el soporte para comenzar a automatizar, ¿qué es lo que realmente se automatiza y cómo? Desafortunadamente, las herramientas en sí mismas no dicen qué automatizar, al igual que los nuevos padres descubren que los niños no vienen con un manual.

¿Va a crear pruebas automatizadas robustas y mantenibles, o pruebas inconsistentes y difíciles de mantener en el tiempo? ¡Por supuesto, esperaría lo primero! En realidad, no se puede automatizar todo, por lo que se debe ser estratégico. Puede utilizar dos enfoques para ayudar con esto: un enfoque Risk-Based testing y la pirámide de automatización.

Risk-Based Testing

Risk-Based Testing brinda mayor prioridad a las pruebas de los elementos que tienen un mayor riesgo de fallar, lo que también conlleva las mayores consecuencias negativas si se produce dicha falla. Aquí debe tener en cuenta:

  • El impacto financiero de los posibles errores.
  • La probabilidad de falla (aquí es una buena idea preguntar a los desarrolladores qué piensan).
  • Acuerdo de nivel de servicio (ANS).
  • ¿Hay dinero o vidas en juego? (Sí, esto puede parecer dramático, pero hay varios sistemas que se ocupan de asuntos vitales).

Esto debería brindarle un buen método para priorizar qué casos de prueba automatizar.

Pirámide de Automatización de Pruebas

Otro enfoque que recomendamos ampliamente es seguir la pirámide de automatización. Escribimos mucho más en profundidad sobre este tema en este post, pero esta es una descripción general rápida:

Pirámide de automatización de Pruebas de Mike Cohn

El cono de helado es dulce y tentador, ¡pero podría arruinar su deseo por la automatización! Seguir el enfoque del cono de helado resultará en altos niveles de frustración porque enfatiza la automatización a nivel de interfaz de usuario.

A este nivel, la pruebas son más difíciles de mantener y cualquier mínimo cambio en la interfaz puede hacerlas fallar. Considerando que, si se enfoca en las pruebas unitarias automatizadas, está ayudando a prevenir errores o eliminarlos casi de inmediato a medida que avanza en el ciclo de vida del desarrollo de software.

Desafío 4: Establecer expectativas realistas de automatización

No importa cuán excelentes sean sus herramientas y procesos, es importante recordar que las pruebas nunca están completas. La automatización de pruebas no es la solución definitiva para los sistemas cargados de errores y no debe usarse en lugar de, sino junto con pruebas no automatizadas. Hay algunas pruebas que simplemente no se pueden automatizar, pero hay algunas pruebas automatizadas que descubren errores que no se podrían encontrar de otra manera.

Estamos de acuerdo con la filosofía de automatización de pruebas de James Bach y Michael Bolton. La automatización de pruebas en realidad es sólo verificar automáticamente el sistema, mientras que aún se necesitan humanos para realizar las pruebas no automatizadas. Además, recuerde que el valor de una prueba proviene de la información que proporciona, no del número de pruebas ejecutadas ni de la frecuencia. Lo que más nos importa es si estamos obteniendo la información correcta para poder tomar las mejores decisiones posibles al mejorar la calidad de nuestros sistemas.

Asegúrese que su equipo y la gerencia estén de acuerdo y comprendan los resultados deseados de su plan de automatización para que todos persigan los mismos objetivos.

¡Gracias por leer este post! Espero que estos consejos le ayuden a automatizar las pruebas de una forma más eficaz.


Otros contenidos relacionados

Automatizar pruebas de software: ¿cuándo y por qué?

Cómo elegir la mejor Herramienta de Automatización de Pruebas para tu proyecto en 5 simples pasos

Testing Manual vs. Automatizado: ¿cuál es mejor?

Automatización de Pruebas: el motor de la Ingeniería de Calidad

40 / 208