A menos que hayas estado sin conexión durante las últimas décadas, estoy seguro de que ya conoces bien los beneficios del testing continuo: minimizar los costos del desarrollo, menos desperdicios, mejora de la fiabilidad del sistema y reducción de los riesgos al momento del lanzamiento, entre otros.
Sin embargo, ponerlo en práctica en el mundo real no es tan sencillo como algunas compañías pueden hacerte creer. Es claro que el hecho de tener configurada una herramienta de integración continua no significa que un equipo logre implementar con éxito las pruebas continuas.
Afortunadamente, ahora tenemos más recursos que nunca para superar este reto organizativo, como el ACT framework. Hace un tiempo, mi equipo y yo publicamos nuestra Guía de Testing Continuo, que está alineada con la filosofía del ACT framework.
En este artículo, voy a compartir algunas consideraciones clave y consejos de esta guía con el fin lograr una implementación exitosa de testing continuo.
Evaluar tu equipo actual, la tecnología y los procesos
Siempre que se busque mejorar los resultados del desarrollo de software, es necesario tener en cuenta tres pilares fundamentales que están estrechamente relacionados entre sí: los procesos, las herramientas y las personas.
Los equipos pueden aprender continuamente y mejorar sus procesos, pero las herramientas que utilizan y los propios miembros del equipo también deben adaptarse para que los nuevos y mejorados procesos tengan éxito a largo plazo.
Algunas de las preguntas que recomiendo hacer aquí:
● ¿Tenemos una idea común de nuestro delivery pipeline? No pienses solo en el proceso de desarrollo, sino también en la forma de aportar valor a tu empresa.
● ¿Cuánto de esto está automatizado? ¿Tenemos un motor de CI/CD instalado?
● ¿Nuestras herramientas y procesos de testing actuales se integran con estos pipelines?
● ¿Nos falta experiencia para automatizar? ¿Debemos invertir en formación? Si así es, ¿en qué?
● ¿Cuáles son nuestras mayores limitaciones? ¿Tiempo, presupuesto y/o recursos? ¿Cómo podemos compensar alguna de estas?
Saber cuáles son los factores de calidad más importantes
Para cada equipo, algunos factores de calidad serán más importantes que otros, por lo que no siempre es necesario o inteligente centrarse en las pruebas continuas para cada factor de calidad del software.
Por ejemplo, si estás trabajando en un sistema para un grupo de usuarios muy diverso, las pruebas de usabilidad pueden ser más prioritarias que las pruebas de performance. Por ejemplo, un sistema gubernamental utilizado por los ciudadanos para presentar sus impuestos puede requerir un mayor grado de usabilidad y seguridad que de performance.
Según las normas ISO 25010 para la calidad de los productos de software, hay ocho características de calidad del software: idoneidad funcional, eficiencia de rendimiento, compatibilidad, usabilidad, fiabilidad, seguridad, mantenibilidad y portabilidad. Para cada una de ellas, tienes el correspondiente conjunto de pruebas para evaluar su nivel de calidad.
Recomiendo que tengas una instancia de evaluación junto a tu equipo, para identificar cuáles son las mayores áreas de preocupación respecto a la calidad del software para los usuarios y las partes interesadas.
¿Cuáles son los peores escenarios en los que, si algo se “rompiera”, causaría el mayor daño? Éstos son los riesgos que deben abordarse en primer lugar. Seguir un enfoque basado en riesgos por un determinado tiempo entre versión y versión, ya sean horas, días o semanas, será de gran ayuda para identificar qué conviene priorizar.
Trazar tu ruta hacia el testing continuo
Hay varias áreas de calidad que van a resultar de gran ayuda en tus esfuerzos para alcanzar un programa de testing continuo eficiente, abarcando shift-left testing y shift-right testing.
El siguiente modelo describe los tres niveles de madurez de testing: básico, eficiente y continuo. En este se puede visualizar cómo la gestión de los diferentes aspectos de la calidad del código fuente, los ambientes y la automatización de las pruebas, entre otros, deben establecerse para implementar el testing continuo. Por ejemplo, antes de tener el motor de CI/CD instalado, hay que implementar el versionado del código fuente.
Sugiero que utilices este modelo como referencia para revisar la situación de tu equipo respecto a las nueve áreas de calidad. Revisa las filas de arriba a abajo, considera junto a los miembros de tu equipo si están manejando cada área mencionada de tal manera que se caracterice por pruebas básicas, eficientes o continuas.
A partir de ahí, se puede elaborar un plan de acción para avanzar en estos niveles de madurez, hasta alcanzar el nivel de testing continuo. Aborda las áreas que deben mejorarse primero, es decir, las más críticas que sustentan los siguientes pasos hacia la implementación de pruebas continuas, y también las características de la calidad del software que tu equipo ha determinado como más críticas.
Prepararse para el éxito
Como dice el viejo refrán, “no planificar es planear el fracaso”. Antes de entusiasmarse con las pruebas continuas, automatizando todo lo que es apto de ser automatizable, es recomendable primero tener las cosas claras sobre cómo imaginamos el éxito que queremos alcanzar, dado el contexto de tu equipo y los objetivos del negocio. No te preocupes si tu equipo comete algunos errores en el camino, siempre y cuando esté dispuesto a aprender y mejorar sobre la marcha.
Recuerda que, en primer lugar, debes comprender los objetivos de tu organización, así como tu equipo, procesos y herramientas. Conoce los riesgos que son más importantes de mitigar con el testing continuo y construye un plan de acción concreto y realista a partir de ahí.
¡Síguenos en LinkedIn, Twitter, Facebook, Instagram y YouTube para ser parte de nuestra comunidad y enterarte de otras buenas prácticas para implementar pruebas continuas!
Otros contenidos relacionados
Cómo crear la estrategia de pruebas adecuada para tu proyecto
Testing Ágil para crear productos digitales de alta Calidad
3 elementos esenciales para lanzar Software rápidamente, sin afectar la Calidad
Etiquetas
Posts Relacionados
Servicio de testing de software: ¿por qué asociarse con un especialista?
Si bien es importante entregar el software rápidamente, también lo es encontrar la empresa de testing adecuada para garantizar el éxito a largo plazo. Mira las implicancias al asociarse con un partner de calidad y cómo elegir el adecuado.
Pruebas de software ágiles: principios, ventajas y prácticas
Este artículo explora las características y el impacto de las pruebas ágiles en la competitividad empresarial. Explicamos sus beneficios, principios y la transformación cultural necesaria para su implementación exitosa.