El trabajo y condiciones en las que laboran los profesionales TI están en constante cambio, debido a los procesos que se implementan como nos lo muestra el rol del Analista de calidad o Tester en el desarrollo de software, que hasta hace poco se había limitado a la elaboración de documentos muy grandes como la estrategia de pruebas y planes de pruebas, desarrollar guiones (Scripts) detallados, para luego ejecutando estos guiones identificar errores y reportarlos al equipo.
Bajo esta forma de trabajo, los testers se encontraban abstraídos del resto del equipo y proceso de desarrollo de software, su participación comenzaba en las etapas finales cuando ya el software estaba prácticamente terminado.
Luego surgieron las metodologías agiles y con ellas cambios importantes en el proceso de desarrollo tanto para programadores como para los Testers. Ahora el rol del Tester en las metodologías agiles requieren que sean multifacéticos, tengan mayores conocimientos y habilidades técnicas, trabajen en colaboración y funcionen bajo una mentalidad ágil, entendiendo cómo funcionan los procesos de negocio modelados y tengan mayor orientación al punto de vista del cliente, nos comparten en PMO Informática.
Un Tester que se desenvuelve en un equipo de trabajo bajo metodologías ágiles, necesita trabajar en colaboración con otros Testers, desarrolladores de software e interesados del área de negocio del software que se está construyendo.
Más allá de las nuevas habilidades y conocimientos técnicos que se requieren, lo que se necesita es un cambio de mentalidad.De acuerdo al sitio web Testing Excellence, la mentalidad del Agile Testing se puede expresar en los siguientes principios como valorar la asistencia y apoyo en calidad de software por sobre el aseguramiento de calidad. Probar continuamente el software en lugar de probar solamente al final del ciclo de desarrollo. La calidad es responsabilidad de todo el equipo, no solo del equipo de Testing. Enfoque de todo el equipo como responsable y ejecutor del Testing por sobre el enfoque de departamento de Testing o Testing independiente.
También está el desarrollar la automatización de pruebas en lugar de pruebas de regresión manuales. Hacer Testing técnico y de interfaces de programa (API) y no solo pruebas funcionales. Hacer Testing exploratorio por sobre el Testing basado en guiones. Utilizar historias de usuario y necesidades del cliente en lugar de especificaciones de requerimientos. Mentalidad de construir el mejor software en lugar encontrar los errores de software. Participación anticipada en el ciclo de desarrollo frente a la participación al final. Ciclo de retroalimentación corto en lugar de Feedback tardío. Enfoque de prevención de los defectos del software en lugar de enfoque de solo encontrar los defectos.
Necesita tener conocimientos en Test Driven Development (TDD), Acceptance Test Driven Development y en técnicas de pruebas de caja negra y pruebas de caja blanca. Podemos definir el rol del Tester en las metodologías agiles por medio de las siguientes actividades como entender, implementar y mantener actualizada la estrategia de pruebas Agile Testing. Trabajar con los dueños del producto (Product Owners) para definir los criterios de aceptación y las definiciones de “hecho” (Done) de las historias de usuario. Medir y reportar la cobertura de pruebas sobre todas las dimensiones de cobertura que sean aplicables.
Asegurar que el equipo de trabajo use adecuadamente las herramientas de pruebas. Configurar, usar y gestionar los ambientes de pruebas y los datos de prueba. Desarrollar y ejecutar pruebas automatizadas y reportar los resultados al equipo. Reportar los errores (bugs) y trabajar con los desarrolladores en su resolución. Dar coaching a otros miembros del equipo en los aspectos relevantes al Testing. Asegurar que las actividades de Testing sean incluidas en la planificación de la iteración y de salidas a producción (Releases). Colaborar activamente con los desarrolladores e interesados de las áreas de negocio para clarificar los requerimientos, especialmente en lo referente a que estos puedan verificarse, su consistencia y completitud. Participar proactivamente en las reuniones diarias (Daily Standup), sesiones para el desarrollo de historias de usuario y en las retrospectivas, sugiriendo e implementando mejoras.
Por otra parte, las metodologías ágiles dependen en gran medida de una efectiva colaboración, comunicación e interacción entre los integrantes del equipo de trabajo, así como de interacción con interesados externos. Por ende, el rol del Tester en las metodologías ágiles requiere que tengan buenas habilidades interpersonales.