Blog

Shift Left Testing y Shift Right Testing, una estrategia posible

Instrumentar prácticas de Shift Left Testing es fundamental para lograr un análisis temprano de la calidad y crear cada vez mejor software, ágil y eficiente, con el fin a prevenir y no solo a resolver los problemas de calidad. Sin embargo, el Shift Right Testing también presenta grandes ventajas para mejorar la estrategia de pruebas. Por su nombre suena que van en direcciones opuestas, y muchas veces escuchamos la siguiente pregunta: ¿Es posible combinar ambas prácticas? Entérate de todo en este artículo, con una entrevista a Matias Fornara.

Shift Left Testing y Shift Right Testing: Buenas prácticas para liberar software de calidad y más rápido
Foto de Pablo García Saldaña en Unsplash

Hace mucho se habla de Shift Left Testing, pero aún así muchas empresas y profesionales aún no incorporan este enfoque en su labor diaria. Coincidentemente, las mismas compañías suelen optar por trabajo en cascada (Waterfall en inglés) en lugar de recurrir a metodologías ágiles tales como Scrum, que por lo general fomentan el enfoque de involucrar al testing más temprano en el proceso.

Por otro lado, si bien se considera mala práctica enviar a producción sin probar, tenemos equipos con muy buenos resultados en su trabajo que implementan procesos en los que el testing lo hacen los usuarios.

En otras palabras, liberan muy frecuentemente, en forma escalonada (entregando primero a un grupo reducido de usuarios y avanzando el despliegue de manera progresiva), analizan lo que pasa en producción y, en caso de que algo presente problemas, revierten los cambios.

Todo esto se logra con mucho automatismo, impactando a los usuarios en la menor medida posible. Obtener información de producción sobre la calidad del sistema para poder tomar decisiones para mejorar el producto es parte de lo que se conoce como Shift Right Testing.

Estas prácticas hablan de una filosofía de trabajo, y pueden tener un gran impacto no solo en el desarrollo de software ágil y eficiente, sino también en los costos de desarrollo y la sostenibilidad de las organizaciones que las llevan adelante, además de su escalabilidad.

Shift Left y Shift Right Testing

La implementación de Shift Left y Shift Right Testing implica cambios que no son siempre fáciles de llevar adelante, pero que pueden traer excelentes resultados. Por eso, lo vemos como sumamente necesario en una sociedad que se halla en momentos de acelerada transformación digital, que precisa de software de calidad para la medicina, la educación, el mundo del trabajo y todas las áreas de la vida de las personas.

En esta línea, Sofía Palamarchuk, miembro del Directorio de Abstracta y CEO de Apptim expresó: “Las prácticas ágiles, incluyendo TDD, BDD y CI/CD, promueven la idea del Shift Left Testing, haciendo que el testing sea partícipe en el proceso de construcción del software de manera temprana y más involucrada. Hacer este cambio modifica la visión de las pruebas: en lugar del control de calidad tradicional, se transforma en ingeniería de calidad (Quality Engineering)”.

Si bien no se trata de algo nuevo en absoluto, consideramos que es importante no dejar este tema de lado y seguir teniendo este tipo de intercambios y conversaciones con clientes y partners, con el fin de tornar más claras y eficientes las formas de trabajo y procesos.

Repasaremos entonces las definiciones de Shift Left Testing y Shift Right Testing, de la mano de Matías Fornara, líder del hub de Automation de Abstracta, para comprender por qué afirmamos que son formas de trabajo que parecen tan antagónicas, pero que en realidad pueden complementarse entre sí para lograr mejores resultados.

Matías Fornara, Líder Hub Automatización en Abstracta Inc.

¿Qué es Shift Left Testing?

Es el enfoque de expandir las actividades de testing hacia la izquierda del proceso de desarrollo, entendiendo el mismo como una línea temporal. La etimología de esta idea proviene de que en metodologías más tradicionales como waterfall, las actividades de calidad quedan más “a la derecha”, es decir, al final.

La idea del Shift Left Testing es incluir actividades de calidad desde el principio, incluso desde que se planifican las funcionalidades, con el fin de mitigar riesgos y tener un mejor análisis de calidad en cada una de las etapas de este proceso. Esto no quiere decir que nos concentremos solo en las actividades de “la izquierda”(del inicio del proceso de desarrollo), sino que el foco está “hacia la izquierda” pero también es importante evaluar la calidad en todas las instancias del proceso.

¿Qué es Shift Right Testing?

Por el contrario, Shift Right se refiere a la idea de realizar acciones más adelante en el proceso de desarrollo, normalmente en los pasos posteriores a la liberación del producto. Con la popularización del concepto de DevOps, las prácticas de Shift Right también se han vinculado a los procesos de liberación, configuración, y monitorización de aplicaciones. Un concepto clave asociado a esto es “observabilidad”.

Claramente, el nivel de riesgo al llevar a cabo exclusivamente este tipo de prácticas es mayor ya que podríamos generar incidentes que afecten a los usuarios. Es por ello que existen distintas prácticas que buscan mitigar los riesgos, tales como Canary releases, A/B testing, User Acceptance Testing (UAT). Features Flags, API Monitoring.

¿Cómo se complementan Shift Left Testing y Shift Right Testing?

Testing temprano: características y beneficios
Foto de Nick Fewings en Unsplash

Debemos tener en cuenta que Shift Left Testing ayuda a prevenir los incidentes y no solo corregirlos, y así acelerar el “time to market” del desarrollo, ya que los equipos incorporan las pruebas desde el principio, preferentemente desde antes que se escriba el código o durante el desarrollo en sí mismo.

En el otro lado de la ecuación, las prácticas de Shift Right Testing se enfocan en analizar la fiabilidad del software en ambientes productivos y bajo condiciones reales. Como resultado, los equipos obtienen una cobertura de pruebas más enfocada en lo que el usuario realmente utiliza, y no en lo que alguien piensa que podría potencialmente pasar

Por otro lado, la información obtenida es más cabal, ya que se gana la capacidad de observar funcionalidades, performance de la aplicación, experiencia de usuario y tolerancia a fallos en condiciones que son difíciles de simular en ambientes de prueba. Todo esto da entrada a otro concepto que es la observabilidad de una aplicación.

¿Cuáles son los beneficios de la aplicación de cada cual?

En Shift Left Testing es posible tener feedback más temprano, lo cual ayuda a la resolución de incidentes y a la optimización de procesos de desarrollo de software que mejoran la calidad de nuestros incrementos de producto. Así, de alguna manera, estamos disminuyendo riesgos para minimizar el impacto en nuestro producto. Además, trae grandes beneficios a los equipos de trabajo, en relación con su funcionamiento y modo de trabajar. Recomiendo leer más sobre el tema en este artículo.

Por otro lado, sumando la idea de Shift Right Testing, logramos crear un “continuous feedback loop”, desde la experiencia del usuario real directo hasta nuestro proceso de desarrollo. Este “loop” es parte de la realidad que vive hoy día la industria IT, en la que cada vez más equipos migran al agilismo y cambian las prácticas de despliegue de una vez cada pocos meses o una vez al año a una vez cada pocas semanas o días, y a veces varias veces al día. Todo esto apunta a maximizar nuestras chances de éxito.

Si bien parecen prácticas antagónicas, en realidad son complementarias, ya que el foco de las pruebas cambia, el tipo de problemas que queremos encontrar es distinto y tanto la manera procesar la información como las acciones que se toman a partir de dicha información varía.

¿Cambio de paradigma?

Paulatinamente, cuando el contexto lo permite, se empieza a dar un cambio en el que se combinan ambas prácticas: Shift Left Testing y Shift Right Testing.

“La propuesta es expandir el testing hacia la izquierda (Shift Left Testing), y en realidad también hacia la derecha (Shift Right Testing), incluyendo actividades de calidad en todo el proceso”, apuntó Federico Toledo, COO de Abstracta. Aún así, agregó, es importante poner foco “en las ventajas que tiene el Shift Left Testing” con el fin de lograr involucrar a los testers en etapas tempranas del proceso de desarrollo.

En la misma línea, Matías Fornara sostuvo: “Es importante analizar la calidad en cada etapa. Hay que incluir calidad desde el principio, para reducir riesgos. Pero en esto de tener un mindset ágil, si algo no funciona o no tiene el impacto que preciso, tengo que cambiarlo, complementarlo o mejorarlo. Y si eso es a través de incluir prácticas de Shift Right Testing, bienvenido sea”.

Matías explicó que es posible combinar de forma inteligente ambas prácticas. “Se puede tener todas las pruebas con enfoque Shift Left y hacer los pasajes a producción haciendo A/B testing o canary release”, ejemplificó. “Son prácticas que parecen antagónicas porque se supone que se hace una para no hacer la otra, pero en realidad si haces las dos, estás haciendo más cabal el proceso”.

En conclusión, esta combinación implica una forma diferente de hacer testing continuamente, es decir que comience a realizarse lo antes posible pero, a su vez, que no tenga un punto final. “Siempre que se realicen modificaciones en los sistemas o en los datos se corre el riesgo de introducir errores. Por eso, es importante que la calidad siga siendo evaluada más allá del ciclo de vida del proyecto”, especificó Alejandra Viglietti, Operations Manager de Abstracta.

Práctica de Testing Continuo en DevOps

“Todo esto se trata, en definitiva, de realizar testing de modo continuo, cómo lo alcances depende de ti”, apuntó Matías. Y concluyó: “En la búsqueda de optimizar el proceso de delivery, uno implementa prácticas porque tienen impacto. Yo no creo que ninguna de las 2 corrientes sea la definitiva. Siempre depende del contexto, las habilidades del equipo, la presión de los stakeholders y la criticidad de lo que se hace, entre otros factores. Por eso, un enfoque de Shift Left combinado con Shift Right resulta más que prometedor”.


¿Buscas ayuda experta para implementar el enfoque Shift Left y Shift Right Testing en tu empresa? Abstracta es la empresa más confiable de América Latina en ingeniería de calidad de software.

Las pruebas tempranas y las pruebas al final del ciclo de desarrollo son un factor clave para aumentar la calidad y la eficiencia en tu empresa, minimizar los costos y riesgos, y mantenerte competitivo en el mercado. En Abstracta llevamos 14 años ayudando a expandir el negocio de nuestros clientes en más de 25 países, a través de un entendimiento integral del negocio y con soluciones personalizadas.

Contáctanos y conversemos acerca de los beneficios que puede traer para tu negocio el enfoque de Shift Left Testing y Shift Right Testing, y cómo puede ayudarte a lanzar mejores productos digitales más rápido.


Otros contenidos relacionados

Beneficios de Shift Left Testing en el Ciclo de Desarrollo de Software

3 claves para una implementación exitosa de Testing Continuo

La mejor forma de hacer Testing de Performance en Integración Continua

Tendencias en Pruebas y Control de Calidad de Software 2022-23

161 / 175