Agile Testing como herramienta de adaptación para los negocios

Una de las ventajas más grandes que puede tener una organización o empresa hoy en día es la capacidad de adaptación y flexibilidad ante la incertidumbre y el constante cambio. Existen herramientas, disciplinas y métodos que ayudan a ejercer y desarrollar estas características, últimamente enfocadas en los modelos de negocio, el manejo de equipos y el desarrollo de productos y software. Agile es una de ellas. 

Agile es la habilidad de responder al cambio dado por un contexto cambiante e incierto. No se trata de velocidad sino de adaptabilidad. Es una mentalidad empírica, en la cual aprendemos de forma iterativa e incremental. 

Durante el ciclo de vida de un producto es necesario hacer las siguientes preguntas: ¿se está construyendo el producto correcto?, ¿se está construyendo correctamente? En este artículo se explora cómo el Agile Testing puede dar una alternativa en la construcción del producto correcto y de la forma apropiada para un determinado contexto.

¿Se está construyendo el producto correcto?

Esta pregunta dispara muchas conversaciones que cuestionan los procesos de trabajo y en especial cuándo los instanciamos. En otras palabras, si se espera al último momento para validar un producto, el riesgo de fallar aumenta exponencialmente. Sin embargo, se puede minimizar este riesgo si confirmamos desde el primer día que vamos en el camino correcto.

Esta mentalidad no es nueva ni una tendencia reciente, es algo que viene de los albores de la ingeniería de software. Durante los años 60 se empezó a hablar del desarrollo guiado por pruebas, aunque hoy se lo recuerda por su popularización con la aparición de XP en los 90. A esto se le sumó el manifiesto ágil el cual a terminó de cerrar este este concepto y el aumento de poder de cómputo a costo reducido. 

“Software funcionando sobre documentación extensiva”

El Agile testing incluye un conjunto de técnicas que permiten construir el producto correcto, de forma correcta. ¿Cómo? Construyendo en un proceso iterativo e incremental basado en pruebas:

  • Agrego una prueba (validada entre negocio y equipo).
  • Escribo el código necesario mínimo para que esta prueba pase.
  • Itero hasta pasar la prueba.
  • Una vez que la prueba pasa, refactoreo (si es necesario) y agrego otra prueba.

Este proceso permite crear código que auto contiene su documentación, ya sea a través de pruebas unitarias como de escenarios (mediante el uso de Gherkin).

Es necesario un cambio de mentalidad al momento de construir software, ¿cuáles son esos principios que guían este cambio?

Principios del Agile Testing

De acuerdo a Lisa Crispin, el Agile Testing se guía por los siguientes principios:

  1. Feedback continuo,y trabajo colaborativo entre desarrollo, calidad y negocio.
  2. Entrega de valor al cliente.
  3. Comunicación cara a cara: el tester toma un rol de guía, ayudando a generar las preguntas correctas.
  4. Existe valor (¿necesita explicación?).
  5. Se busca conservar lo simple, manteniendo un balance entre el valor de negocio adecuado. Se desarrolla sólo lo necesario para agregar valor, volviéndose un proceso magro (lean).
  6. Mejora continua.
  7. Respondemos ante cambios.
  8. Hay auto organización. El equipo decide las mejores tácticas para desarrollar la solución que necesita el cliente.
  9. Enfoque en las personas, es trabajo de todo el equipo (incluyendo cliente).
  10. Lo disfrutamos.
 

¿Cómo se conecta este cambio de mentalidad para saber si se está construyendo el producto correctamente?

TDD en acción

Test driven development, es una técnica heredada de “test-first” de Extreme programming que permite validar el código antes de escribirlo, asegurando tiempos menores de debugging, reduciendo la introducción de nuevos bugs y facilitando la generación de documentación (siendo el mismo código de prueba unitaria la documentación necesaria para entender el comportamiento de nuestro código de producción).

Consulta el siguiente video de su ejecución aquí.

Conclusión

Agile Testing es un cambio de mentalidad que involucra a todas las partes en el proceso de construcción y validación del software. Como gran cambio de paradigma se propone empezar por construir las pruebas, luego código de producción e iterar en pequeños incrementos.

Técnicas como BDD, TDD permiten crear y validar código a diferentes niveles y con diferentes involucrados (Incluyendo a representantes del negocio), creando así una responsabilidad colectiva.

Si bien su adopción puede tomar tiempo, permite mejorar la “testeabilidad” de un producto de software, reduciendo los tiempos de debugging, así como también la reducción de bugs o malos entendidos que llegan a producción. Es una inversión a mediano plazo, durante el ciclo de vida productivo de las soluciones, haciendo el producto más competitivo al poder adaptarse a cambios con menor riesgo.

Para conocer más sobre entrenamientos basados en Agile Testing, consulta este video durante el Globant’s Quality Summit.

Suscríbete a nuestro newsletter

Recibe nuestras últimas noticias, publicaciones seleccionadas y aspectos destacados. Nunca enviaremos spam, lo prometemos.

En un entorno empresarial que cambia vertiginosamente, es imprescindible que las organizaciones puedan adaptarse, generar resiliencia y descubrir rápidamente nuevas posibilidades durante los períodos de incertidumbre. El Agile Organizations Studio permite que las organizaciones evolucionen de manera sostenible y progresiva para mantenerse vigentes en un juego interminable, con reglas que cambian continuamente.