Blog

La importancia de la automatización en shift left testing

¿Cuáles son los beneficios del Shift Left Testing con la automatización de validaciones? ¿Es posible realizar Shift Left Testing sin automation? Encuentra las respuestas en este artículo, además, 5 tips para implementar una estrategia Shift Left Testing de modo exitoso.

Foto de Jan van der Wolf en Pexels

Tal como ya ha quedado establecido en un artículo previo, shift left testing y shift right testing no son prácticas antagónicas, sino complementarias, dado que plantean amplificar el foco de las pruebas en distintas direcciones. En este artículo, nos enfocaremos en shift left testing. Si bien no es la respuesta a todos los problemas de desarrollo de software, en Abstracta consideramos crucial comenzar a realizar testing lo antes posible en el ciclo de desarrollo de un producto.

La explicación de esto es simple: es más rentable revelar y corregir los defectos y otros problemas antes que después. También respalda el espíritu de “fallar rápido y arreglar rápido”, lo cual ayuda a eliminar las inestabilidades del código y a mejorar la calidad.

Asimismo, facilita el agregado de validaciones en las distintas etapas del desarrollo de producto, no solo resolviendo los problemas de hoy, sino que mejorando el proceso y evitando posibles errores a futuro.

¿Cómo implementar shift left testing?

Para la implementación de shift left testing, es conveniente también trabajar en la automatización de validaciones en un marco de Continuous Integration, e idealmente en un marco práctico de CI/CD.

Gracias a implementar integración continua, incluyendo pruebas automatizadas en un pipeline, podemos obtener feedback de las mismas en cada incremento de producto. Esto básicamente implica automatizar en mi proceso de construcción de software la ejecución de pruebas automáticas y ganar la habilidad de detener este proceso cuando ciertas pruebas fallan.

De este modo, es posible detectar errores más temprano y disminuir los costos de la creación de software, con la posibilidad de repetirlo la cantidad de veces que sea necesario hasta que no fallemos más, para lograr un incremento de producto dado en nuestro sprint.

La práctica de shift left testing se beneficia mucho de la automatización debido a que automatizar nos permite ganar tiempo validando cosas que ya sabemos (por eso es bueno hablar de validaciones automáticas y no pruebas automáticas). Esto nos da tiempo para hacer un mejor testing manual y descubrir lo que no sabemos, así como conocer los riesgos y problemas que pueden impactar al usuario final y pasar inadvertidos.

¿Qué tan temprano comenzar a probar?

Muchas veces nos han preguntado para qué asociarse con Abstracta o requerir de nuestros servicios de testing si aún no hay un producto terminado. Podría parecer que es muy ineficiente involucrar el testing desde fases tan tempranas del ciclo de desarrollo, pero es al revés. Cuanto más tarde se hallen los bugs, más caros resultan.

Según Business Wire, el 88% de los estadounidenses tiene sentimientos negativos hacia las marcas con sitios web y Apps móviles de bajo rendimiento. Estos sentimientos negativos están asociados a la molestia, la frustración, la desconfianza y el enfado.

Como evidencia de ello, el informe “The Cost of Poor Software Quality in the US” CISQ 2020 reveló que el coste total de la mala calidad del software en Estados Unidos fue de 2,08 billones de dólares (T) en 2020.

En este contexto, muchas personas que se encuentran alineadas a la idea del shift left testing se preguntan si es posible realizar pruebas en etapas tempranas y críticas para la definición del producto, como las etapas de diseño y desarrollo, o si es necesario utilizar un enfoque diferente. ¿Qué tan a la izquierda se puede ir? En mi opinión, considero que depende de tus necesidades, contexto, equipo y más.

Sin dudas, es importante validar el diseño y la arquitectura de una aplicación, pero muchas veces hay errores que se hacen notorios con el tiempo. Por ejemplo, a veces puede tomar un par de años notar el impacto de que hiciste un diseño o arquitectura incorrectos para la escala (volumen de usuarios o de datos) que tiene que atender el sistema.

Sin embargo, siempre es importante tener instancias de validación y feedback desde el día cero. Realizar testing de software desde el inicio puede disminuir mucho los costos y riesgos, aumentar la eficiencia, la calidad e incluso ser una ventaja competitiva.

Cuando hablamos de considerar el testing en etapas más tempranas, hay que pensar en varias cosas. Primero en todo lo relacionado al testing funcional (testing exploratorio combinado posiblemente con casos de prueba, gestión de incidentes, requerimientos y criterios de aceptación, etc.)

¿Cuándo es recomendable el testing automatizado?

Foto de Miguel Á. Padriñán

Luego, es recomendable definir qué automatizar, para lo cual se suele utilizar modelos como la pirámide de automatización pensando cubrir los distintos niveles, priorizando las pruebas que entreguen mayor ROI en menor tiempo en cada fase del desarrollo. Además, podemos pensar en realizar una evaluación de otros atributos de calidad, por ejemplo con pruebas no funcionales, como performance, usabilidad, accesibilidad y seguridad.

Por ello, la automatización es un aliado fundamental a la hora de seguir un enfoque de shift left testing. Sin dudas, diseñar buenas estrategias de pruebas, que contemplen las automatizaciones adecuadas, es crucial para crear cada vez mejor software y de manera más eficiente.

5 claves para implementar exitosamente una estrategia de shift left testing

  • Mantener una buena comunicación entre todos los involucrados.
  • Realizar un análisis y priorización siempre basados en riesgos.
  • Implementar buenas prácticas de desarrollo, tales como peer-review, análisis estático de código y testing unitario. Correcto, ¡no todo el testing y control de calidad está en manos de los testers!
  • Contar siempre con una base de testing funcional manual.
  • Automatizar guiándonos por la pirámide de automatización y teniendo en cuenta los riesgos analizados previamente.

¿Buscas asesoría o un socio experto para implementar la automatización de pruebas de software en tu empresa?

Creemos en la automatización como el motor de la ingeniería de calidad. Nuestros ingenieros expertos en metodologías ágiles y que han finalizado +300 proyectos de automatización con éxito, implementan las soluciones apropiadas para tu negocio, en beneficio de la calidad.

Contáctanos y conversemos sobre cómo podemos ayudarte automatizar los casos de prueba en la cantidad correcta y en todos los niveles del sistema, para lograr un retorno de la inversión más alto con pruebas automatizadas.

¡Síguenos en LinkedIn, X, Facebook, Instagram y YouTube para ser parte de nuestra comunidad!

146 / 206