No podemos hacer los procesos de calidad y testeo de la misma forma que en los proyectos waterfall. Cuando hablamos de desarrollo de aplicaciones, la calidad es uno de los elementos clave.

El aseguramiento de la calidad (QA) es un proceso sistemático que garantiza la excelencia de los productos y servicios. Y por lo tanto una de las claves que nuestros clientes valorarán de nuestras entregas.

En la agilidad el proceso de control de calidad comienza desde el inicio del ciclo de vida de desarrollo de software. Desde la reunión de diseño inicial, pasando por la fase de desarrollo, hasta la prueba final y el despliegue de la aplicación. Y este proceso puede repetirse en los sprints hasta que se lanza el proyecto.

1. COMO DISEÑAR UN PROCESO QA ÁGIL

Las organizaciones están pasando de la metodología tradicional de desarrollo 'waterfall' a una metodología 'agile'. Agilidad no es sinónimo de rapidez y por tanto de 'mala calidad', sino todo lo contrario. En los proyectos ágiles se introduce el control de calidad en el proyecto lo antes posible para prever problemas, escribir y ejecutar casos de prueba y descubrir cualquier problema en los requisitos. Con el proyecto dividido sprints, los técnicos de calidad deben agregar enfoque al proceso de desarrollo y proporcionar feedback rápido y continuo.

Los sprints benefician al cliente al entregar software de trabajo más bien antes que tarde, anticipando el cambio, proporcionando mejores estimaciones en menos tiempo y permitiendo correcciones sobre la marcha antes de hacer fracasar el proyecto. El equipo de calidad y testo incorporará las lecciones aprendidas de proyectos y sprints anteriores para mejorar el proceso para proyectos y sprints futuros.

2. ANALIZAR LOS RIESGOS

Un aspecto importante de cualquier proceso de control de calidad es el análisis de riesgos. El proceso ayuda a las organizaciones a evitar y reducir los riesgos.

Es casi imposible que una aplicación esté 100% libre de errores, pero un equipo de control de calidad dedicado debería intentar eliminar o prevenir los errores más problemáticos. Comprender y anticipar todos los problemas posibles de un proyecto, permitirá al equipo establecer medidas preventivas que reducen la probabilidad de que sucedan.

3. PROBAR PRONTO Y PROBAR A MENUDO

Las metodologías 'agile' tienen como objetivo incorporar el control de calidad en cada etapa o sprint del ciclo de vida para así identificar los problemas lo antes posible. Dentro de cada sprint, los técnicos de control de calidad prueban y vuelven a probar el producto con cada nueva característica. Esto les permitirá validar que las nuevas funcionalidades se implementaron como se esperaba y detectarán cualquier problema que se haya introducido. Estas pruebas tempranas casi siempre llevan a mantener los plazos y el presupuesto del proyecto.

4. PRUEBAS DE CAJA BLANCA VS. CAJA NEGRA

Las pruebas de caja negra no suponen ningún conocimiento de cómo un sistema hace lo que hace, solo nos muestra lo que debe hacer desde la perspectiva del usuario. Las pruebas de caja blanca permiten al técnico de calidad desarrollar una comprensión más profunda de los componentes internos del sistema. Con este conocimiento, el técnico puede comenzar a realizar pruebas mucho antes. En un proceso de control de calidad ágil, los técnicos de testeo necesitan este nivel adicional de comprensión del sistema para validar las funcionalidades tan pronto como se desarrollen.

Estas pruebas permiten anticipar posibles condiciones de error y desarrollar mejores escenarios de prueba. Saber cómo funciona el sistema garantiza que hayan probado todos los posibles escenarios de entrada. También puede ayudar a identificar posibles problemas de seguridad. Quizás lo más importante: las pruebas de caja blanca fomentan una estrecha colaboración entre el desarrollo y el control de calidad.

5. TESTEOS AUTOMATIZADOS CUANDO SEA POSIBLE

La automatización de pruebas se plantea siempre como uno de los principales objetivos en el desarrollo de proyectos ágiles, ya que ayudan a maximizar la efectividad del personal de control de calidad.

Dado que las pruebas de regresión pueden consumir un gran porcentaje del tiempo del equipo de control de calidad, la automatización proporciona una forma de garantizar que los entregables anteriores continúen funcionando mientras que los técnicos de control de calidad se centran en probar las características recién entregadas. Ser capaz de reproducir de manera confiable las pruebas liberará recursos para las pruebas exploratorias. La automatización le dará al equipo de desarrollo la confianza para realizar cambios en el sistema con el conocimiento de que cualquier problema se identificará rápidamente y se puede solucionar antes de la entrega al equipo de control de calidad.

Dicho todo esto, es importante tener cuidado con la automatización excesiva. El equipo debe priorizar los casos de prueba y luego determinar cuál de ellos debe automatizarse. Las situaciones en las que los datos pueden cambiar o en las que un escenario no es reproducible de manera consistente pueden no beneficiarse realmente de la automatización porque los resultados pueden causar fallas falsas.

La implementación de la automatización supone un coste de inversión previo, pero ahorran costes a largo plazo al aumentar la eficiencia entre los equipos de desarrollo y control de calidad.

6. CONOCER A LOS USUARIOS/AS DE LA APLICACIÓN

Conocer a los usuarios/as de la aplicación mejorará el proceso de control de calidad. Adaptar el proceso de desarrollo y control de calidad a las necesidades de sus usuarios/as permitirá al equipo crear aplicaciones que generen valor. Cuando esté familiarizado con quién utilizará el producto final real, puede priorizar mejor el proceso de control de calidad para ahorrar tiempo y dinero.

7. EL TRABAJO EN EQUIPO CONSIGUE EL PRODUCTO DESEADO

Detrás del producto hay un equipo que trabaja incesantemente para mantener un alto nivel de calidad en el producto o servicio. Aunque cada equipo que trabaja en el proyecto debe asumir la responsabilidad de garantizar la calidad, la responsabilidad principal de la calidad recae en el equipo de control de calidad. Este equipo debe comprender lo que el cliente necesita que haga el sistema y debe demostrar la satisfacción del cliente con este sistema. Utilizando el proceso Agile QA, es responsabilidad de todos los técnicos del equipos eliminar los problemas y ayudar al equipo a entregar productos de alta calidad y así garantizar la confianza del cliente, la credibilidad de la organización y la entrega exitosa del producto.

 8. BUENAS PRÁCTICAS

En la cultura de un equipo agile, todo el equipo es responsable por la calidad del producto, no es una responsabilidad que recae en el tester.

Los testers tienen que ser parte del equipo de desarrollo, por lo tanto, deben trabajar juntos en el día a día, estar físicamente ubicados en el mismo espacio y participar en los eventos de Agile (Scrum.

En las metodologías ágiles el trabajo del tester tiene un enfoque más preventivo que reactivo. Participan en la buena especificación y diseño de los requerimientos para evitar que ciertos defectos ocurran.

El equipo debe tener como objetivo que los testers no encuentren bugs. Si el equipo incrementa su calidad de desarrollo de manera que minimiza la cantidad de bugs detectados por Testing el proceso se hace más eficiente. Se reduce el trabajo y se optimiza el cuello de botella que suele representar el testing.

Descárgate gratuitamente nuestro e-book sobre Testing Agile

    Política de Privacidad