Un analista programador nunca debe olvidar la importancia capital del plan de pruebas. Es decir, al desarrollar un proyecto de software es clave asegurar la calidad y revisar que se cumplen los criterios acordados de antemano con el cliente. Hay que procurar que no se produzcan errores, bugs o cualquier otra eventualidad que haga fallar el software.
El concepto de QA está íntimamente ligado al de calidad. Cualquier equipo de desarrollo debe contar con al menos un responsable que asegure el correcto funcionamiento del software. Es un facilitador para la realización de pruebas de testing que demanda el software.
Cuando un equipo de desarrollo implanta una metodología nueva ha de saber dónde encajar el tema del testing. Por eso, no podemos relegar al QA al final del proceso si queremos ir rectificando rápidamente lo que no funciona.
Para conseguir los objetivos que plantean las metodologías ágiles, desarrollo y QA deben ir de la mano, integrados. Cada equipo de desarrolladores debe contar con un encargado de QA que siga el proceso de desarrollo durante la concepción, el análisis, el desarrollo y la verificación.
En Imagar recordamos que el responsable de QA ha de tener presentes las expectativas que se persiguen. Saber qué tipo de requisitos y cómo quiere verlo implementado el cliente. Este es el punto de partida para crear los primeros test de aceptación, usados en la fase de verificación.
Durante el desarrollo se usan herramientas de integración continua que combinan los test unitarios típicos de las metodologías de TDD. Son las siglas de Test Driven Development, un proceso de desarrollo que codifica pruebas, desarrolla y refactoriza de forma continua el código construido. La meta de esta metodología es hacer de forma inicial las pruebas unitarias para el código que se tiene que implementar.
Las responsabilidades de QA
Ha de estar a medio camino entre la parte de negocio y la técnica. Ha de saber traducir lo que el cliente quiere en pruebas y validar los criterios de aceptación del software implementado por los desarrolladores. No se limita solo a detectar fallos, sino que ha de anticiparse y verificar todas las casuísticas posibles.
Todo para crear un entorno de pruebas adecuado. Durante el proceso de desarrollo, el programador necesita un entorno de pre-producción y de staging con datos reales que no influyan en la parte de producción de la aplicación.
Para las tareas de preparación de datos es necesario automatizar los procesos y conseguir entornos que se puedan reproducir en distintos escenarios.
Definir un plan de testing
Se trata de recopilar los requisitos funcionales que definen el alcance del proyecto. Las pruebas han de hacerse preferiblemente desde el inicio para asegurar que el proyecto final esté libre de errores. Es recomendable involucrar a los usuarios que hayan formado parte de la definición de los requisitos de las aplicaciones. Hay que tener además en cuenta los test de regresión. Es decir, si se detecta y corrige un error hay que volver a testearlo todo. Los tests de regresión son una de las piezas esenciales en cualquier ciclo de vida de desarrollo de software. Son por eso una de las tareas principales de cualquier profesional del QA.
Las pruebas de carga son claves para probar al 100% que toda la parte técnica funciona correctamente, que la infraestructura es capaz de dar soporte a los usuarios. Por otra parte, la escalabilidad es un pilar fundamental en los grandes proyectos de software.
Nunca se pueden hacer pruebas en producción porque se podrían ocasionar problemas reales a los usuarios actuales. Es decir, hay que mantener estables los entornos de pruebas: pre-producción y staging.