Implementar prácticas de Shift-Left Testing es esencial para analizar la calidad de manera anticipada y crear software más ágil y eficiente. Este enfoque no solo resuelve problemas de calidad, sino que también los previene. Sin embargo, Shift-Right Testing ofrece otras ventajas para mejorar las estrategias de pruebas. Comúnmente nos preguntamos: ¿es posible combinar ambas prácticas de manera efectiva? Descúbrelo en este artículo, que incluye una entrevista con Matías Fornara.
![Imagen ilustrativa: Shift Left Testing y Shift Right Testing: una estrategia posible para el proceso de pruebas y qa](https://cl.abstracta.us/wp-content/uploads/2022/11/enfoque-shift-left-right-testing-software-devops-1024x683.jpg)
Desde hace tiempo se habla del concepto del Shift-Left Testing, pero muchas empresas y profesionales aún no incorporan el enfoque de desplazamiento a la izquierda en su trabajo diario. Curiosamente, estas mismas empresas tienden a optar por un modelo de cascada, en lugar de metodologías ágiles como Scrum, las cuales promueven realizar pruebas en las primeras etapas del proceso y, por supuesto, en las etapas críticas.
Por otro lado, si bien se considera una mala práctica llevar el producto a producción sin realizar pruebas, existen equipos con excelentes resultados que implementan procesos donde los usuarios realizan directamente las pruebas.
Es decir, como parte del ciclo de desarrollo de software, realizan entregas periódicas y de manera escalable. Primero, liberan primero a un grupo reducido de usuarios y avanzan progresivamente con el lanzamiento. Además, analizan lo que ocurre en el entorno de producción y, ante cualquier problema, revierten los cambios. De esta manera, los comentarios de los usuarios son clave para la entrega continua de nuevas funciones.
Todo esto se logra mediante la implementación de un gran número de pruebas automatizadas que impactan lo menos posible a los usuarios reales. Obtener información de producción sobre la calidad y seguridad del sistema para tomar decisiones informadas que mejoren el producto, es parte de lo que se conoce como Shift-Right Testing.
Estas prácticas reflejan una filosofía de trabajo que puede tener un gran impacto no solo en el desarrollo de software ágil y eficiente, sino también en los costos del desarrollo de software, la sostenibilidad de la empresa que implementan estas prácticas y su capacidad de expansión.
¿En qué consisten los enfoques Shift Left y Shift Right, en los ámbitos del testing y QA?
La implementación de Shift-Left y Shift-Right Testing implica cambios que no siempre son fáciles de implementar, pero que pueden traer excelentes resultados. Por ello, encontramos de valor estas prácticas en una sociedad que vive una acelerada transformación digital, y que requiere software de calidad para la industria de salud y sanitaria, la educación, el mundo laboral y todos los aspectos esenciales de la vida de las personas.
En esta línea, Sofia Palamarchuk, coCEO de Abstracta expresó: “Prácticas ágiles como el desarrollo guiado por pruebas (Test Driven Development – TDD), el desarrollo guiado por el comportamiento (Behavior Driven Development – BDD) y la integración y entrega continuas (Continuous Integration and Delivery – CI/CD), fomentan el concepto de desplazamiento a la izquierda, es decir, realizar pruebas Shift-Left: la inclusión temprana y comprometida de las tareas y actividades de prueba en el ciclo de vida del software. Implementar este cambio modifica la visión de las pruebas: el proceso tradicional de control de calidad se convierte en ingeniería de calidad”.
Si bien esto no es algo nuevo, creemos que es importante no dejar este tema de lado y continuar teniendo este tipo de intercambio de experiencias y conversaciones con clientes y socios, para hacer más claras y eficientes las formas de trabajo y los procesos.
Revisaremos las definiciones de Shift-Left Testing y Shift-Right Testing, con Matías Fornara, líder del hub de automatización de pruebas de Abstracta, para entender por qué decimos que son formas de trabajar que parecen tan antagónicas, pero que en realidad pueden complementarse para lograr mejores resultados.
¿Por qué es importante la automatización en las pruebas de software con el enfoque Shift-Left? ¡Te invitamos a leer este artículo!
![Foto de Matías Fornara, líder del hub de automatización en Abstracta](https://cl.abstracta.us/wp-content/uploads/2022/11/matias-fornara-lider-hub-automation-abstracta-1024x486.png)
¿Qué es el enfoque Shift Left Testing?
El enfoque de ampliar las actividades de prueba hacia la izquierda en el ciclo de desarrollo se entiende visualmente como una línea de tiempo. La etimología de esta idea se origina en metodologías más tradicionales, como la cascada, donde las actividades de calidad se sitúan más “a la derecha”, es decir, al final.
Shift-Left Testing busca incorporar actividades de calidad desde el inicio, incluso desde la concepción de la idea, la planificación de las funciones, la configuración de los escenarios de pruebas, con el fin de mitigar posibles riesgos y tener un análisis de calidad más sólido en cada etapa del proceso.
No implica centrarse únicamente en las actividades a la izquierda, es decir, al inicio del ciclo de desarrollo de software, sino que el foco está “a la izquierda”. También es importante evaluar los requisitos de calidad y de seguridad en todas las etapas del proyecto.
¿Cómo contribuye Scrum a una estrategia de pruebas Shift-Left ? Descúbrelo aquí.
¿Qué es el enfoque Shift Right Testing?
Por otro lado, el concepto de Shift-Right se refiere a realizar acciones más adelante en el ciclo de desarrollo, generalmente en la fase posterior al lanzamiento del software. Con la popularidad que ha ganado el concepto de DevOps, las prácticas Shift-Right también se han vinculado a los procesos de entrega, configuración y monitoreo de aplicaciones. Un concepto fundamental asociado con esto es el de ‘’observabilidad’’ del sistema.
¿Te gustaría aprender más sobre pruebas de observabilidad? ¡Te recomendamos escuchar este episodio del podcast Quality Sense!
Evidentemente, el nivel de riesgo al llevar a cabo exclusivamente este tipo de prácticas es mayor, ya que podrían surgir problemas y errores que afecten a los usuarios. Por ello, existen diversas prácticas y técnicas orientadas a mitigar estos riesgos, como lanzamientos tipo “canary” (también conocidos como Canary Releases), A/B testing, pruebas de aceptación de usuario (UAT), feature flags (también conocidos como feature toggles) y monitoreo de API.
¿Cómo se complementan los enfoques Shift Left y Shift Right Testing?
![Imagen ilustrativa: Características de las pruebas de desplazamiento a la izquierda](https://cl.abstracta.us/wp-content/uploads/2022/11/enfoque-shift-right-testing-1024x683.jpg)
Debemos tener en cuenta que el enfoque de desplazamiento a la izquierdano solo busca corregir errores, sino también prevenirlos. Este enfoque contribuye a acelerar el time to market del producto, ya que los equipos integran pruebas desde una fase temprana, preferiblemente antes de la fase programación o bien durante su desarrollo.
En contraposición, el enfoque Shift-Right tiene como objetivo analizar la confiabilidad del software en entornos de producción y condiciones del mundo real. Como resultado, los equipos logran una cobertura de prueba más enfocada en el uso real del usuario, no basada en meras suposiciones.
Además, la información obtenida es más holística, ya que tiene la capacidad de observar las funciones, el rendimiento de la aplicación, la experiencia del usuario y la capacidad de manejo de fallos en condiciones difíciles de simular en entornos de prueba. Todo esto lleva a otro concepto fundamental, la observabilidad de una aplicación.
¿Cuáles son los beneficios de cada uno de estos enfoques?
![Imagen ilustrativa: Ventajas de los enfoques shift left testing y shift right testing para desarrolladores y testers](https://es.abstracta.us/wp-content/uploads/2024/06/ventajas-enfoques-shift-left-right-testing-ciclo-desarrollo-software-1024x693.jpg)
Con Shift-Left Testing es posible tener una retroalimentación antes, lo cual ayuda en la resolución de problemas y en la optimización de los procesos de desarrollo de software, para mejorar la calidad en cada versión de nuestros productos. De esta manera, estamos reduciendo los riesgos para minimizar el impacto en nuestro producto. Además, este enfoque brinda múltiples beneficios al equipo de trabajo, en relación con sus actividades y metodologías de trabajo.
Por otro lado, al realizar un desplazamiento a la izquierda en las pruebas de software, creamos un ‘’bucle de retroalimentación continua‘’, que integra la experiencia real del usuario con el proceso de desarrollo.
Este ‘’bucle‘’ refleja la realidad actual de la industria de TI, donde cada vez más equipos están migrando hacia prácticas ágiles. Ahora, en lugar de realizar lanzamientos cada pocos meses o una vez al año, están implementando actualizaciones cada pocas semanas, días, e incluso varias veces al día. El propósito es maximizar nuestras posibilidades de éxito.
Aunque puedan parecer prácticas opuestas, en realidad se complementan, ya que el enfoque de las pruebas cambia, el tipo de problemas que queremos encontrar es diferente, y tanto la manera en que procesamos los datos como las acciones que tomamos con base en esa información varían.
¿Cambio de paradigma?
![Imagen ilustrativa: Metodologías, recursos y herramientas adecuadas para implementar pruebas continuas de software](https://es.abstracta.us/wp-content/uploads/2024/06/metodologias-agiles-practicas-implementacion-pruebas-continuas-software-1024x683.jpg)
Poco a poco, conforme el contexto lo permite, se está produciendo un cambio en el que se combinan ambas prácticas: Shift-Left y Shift-Right Testing.
‘La idea es ampliar las pruebas tanto hacia la izquierda como hacia la derecha, lo que facilita la inclusión de actividades de calidad durante todo el proceso’, mencionó Federico Toledo, Chief Quality Officer de Abstracta. Además, agregó que es importante enfocarse ‘en los beneficios de Shift-Left‘’ para involucrar al equipo de testers desde las primeras etapas del desarrollo.
Siguiendo la misma línea, Matías Fornara comentó: ‘Es clave analizar la calidad en cada etapa. La calidad debe estar presente desde el inicio para reducir problemas. Pero en esta mentalidad ágil, si algo no funciona o no tiene el impacto deseado, hay que cambiarlo, complementarlo o mejorarlo. Y si eso se logra mediante la inclusión de prácticas de testing Shift-Right, es algo positivo’.
“Pruebas Continuas: Combinando Enfoques”
Matías explicó que es posible combinar ambas prácticas de manera efectiva. ‘Puedes realizar todas las pruebas con un enfoque Shift-Left y llevar a producción haciendo pruebas A/B o Canary Release‘, ejemplificó. ‘Son prácticas que aparentemente son opuestas porque se supone que debes realizar una para evitar la otra, pero en realidad, al hacer ambas, estás enriqueciendo el proceso de manera integral’.
En definitiva, esta combinación implica una forma distinta de realizar pruebas continuas, es decir, empezar lo antes posible pero, al mismo tiempo, no tener un punto final.
![Gráfica: Proceso de pruebas continuas en ingeniería DevOps](https://cl.abstracta.us/wp-content/uploads/2022/11/proceso-testing-continuo-devops-1024x477.png)
‘Se trata de pruebas continuas, y cómo lograrlas depende de ti’, dijo Matías. ‘En la búsqueda de optimizar el proceso de entrega, se implementan diferentes prácticas buscando un impacto positivo. No considero que una sola práctica sea la definitiva. Siempre depende del contexto, las habilidades del equipo, las necesidades y requisitos de los stakeholders y la criticidad de lo que se está haciendo, entre otros factores. Por eso, un enfoque combinado de Shift-Left y Shift-Right para la estrategia de pruebas, es más que factible’, concluyó.
¿Buscas un Partner de Pruebas y QA?
Abstracta es una de las empresas más confiables en ingeniería de calidad de software en Latinoamérica. Conoce nuestras soluciones y contáctanos para descubrir el modo en que trabajamos y cómo podemos ayudarte a hacer crecer tu negocio.
¡Síguenos en LinkedIn, X, Facebook, Instagram y YouTube para ser parte de nuestra comunidad!
Etiquetas
Posts Relacionados
Holistic testing: ¿cómo ayuda este enfoque a lograr un alto nivel de calidad?
Holistic testing es un enfoque que propone una nueva forma de entregar valor continuamente y a un ritmo sostenido, y que incluye a todos los perfiles relevantes dentro del proceso de desarrollo de software.
ESalud y Testing: ¿democratizará el desarrollo de software el acceso a la salud de calidad?
El universo IT está revolucionando el sistema sanitario, y se espera que sus posibilidades logren repercusiones a nivel global. Revisa porqué el servicio de testing de software es clave en este camino.