Distancia entre testing y equipo de desarrollo

Ya sea el proyectos ágiles o no, a día de hoy en las empresas existen varias opciones sobre dónde ubicar a los tester o QAs en relación al equipo de desarrollo.

Estas son las opciones con las que me he ido encontrando y los pros y contras de cada una de ellas desde mi punto de vista.


Externalizado a otra empresa

Pros
  • Ideal para beta testing o testing exploratorio: Las pruebas por personas que no conozcan el producto y que no hayan participado en su definición hacen sea mucho más parecidas al uso que harían los usuarios finales
  • Mobile testing: Permite aumentar el número de dispositivos y combinación de configuraciones con terminales reales
  • Soluciones tecnológicas complejas: Una empresa externa puede estar especializada en arquitecturas de testing complejas, disponer de la infraestructura necesaria para realizar pruebas de carga intensivas o en otros aspectos avanzados relacionados con el testing
  • Optimización de recursos internos: Puede ayudar a optimizar los recursos entre picos y valles de carga de trabajo.
Cons
  • Pérdida de contexto: No tener contexto del producto y las decisiones que se toman al respecto puede repercutir en ineficiencias en el testing
  • Script testing: Se corre el riesgo de que los tester externos ejecuten exclusivamente un test plan estructurado y no profundicen más
  • Menor implicación: La implicación con la calidad final del producto puede ser nula o verse resentida notablemente
  • Problemas de comunicación: A la hora de comunicar decisiones tomadas, features a probar o en el reporte de bugs
  • Burocratización: Se puede incurrir en burocratización excesiva del proceso
  • Falta de cultura de empresa
  • Feedback lento


Externalizado en la misma empresa (Dpto. independiente de QA)

Pros
  • Cultura de empresa: Al ser personal de la empresa será gente que esté al tanto de la cultura de empresa, procedimientos, departamentos, responsables, etc.
  • Perfiles especializados: Se dispone de perfiles especializados en testing para las pruebas
  • Implicación y Autonomía: Puede resultar más sencillo conseguir implicación y cierta autonomía de los testers
Cons
  • Externalizar la calidad: En muchas ocasiones en equipo asumen que también externaliza la responsabilidad de mantener la calidad de su desarrollo
  • Pérdida de contexto: Los testers pueden no estar informados de todas las decisiones que tomen en el día a día
  • Guerra de departamentos: Si los objetivos de los departamentos no están correctamente alineados puede originarse un “fuego cruzado” entre desarrollo y testing a la hora de reportar bugs y resolver incidencias
  • Burocratizar el proceso: En ocasiones puede burocratizarse en exceso el proceso de testing y reporte de incidencias


Tester dentro del equipo

Pros
  • Contexto: Se dispone de la información necesaria y se conocen las decisiones tomadas en el día sobre el producto
  • Implicación: Al ser parte del equipo, los objetivos están alineados y la implicación mejora notablemente
  • Evangelización: Desde dentro del equipo, es más sencillo dar apoyo en buenas prácticas y concienciar al equipo sobre la importancia de la calidad
  • Feedback: El feedback al equipo mejora el tiempo y forma
Cons
  • Responsabilidad única: El equipo puede asumir que el tester es responsable de velar por la calidad
  • Carga de trabajo: El equipo asumen que el tester es el único responsable de hacer las pruebas por lo que carga de trabajo en ocasiones puede ser excesiva


Perfil rotatorio dentro del equipo

Pros
  • Responsabilidad compartida: Todo el equipo toma conciencia de la importancia y la responsabilidad sobre la calidad se comparte.
  • Formación: Todos los miembros del equipo aprenden
  • Contexto: El conocimiento de la información es total
  • Puntos de vista: En ocasiones, diferentes aproximaciones pueden ayudar a mejorar la calidad global
Cons
  • Sin perfil especializado: Se puede caer en la idea de “esto de la calidad cualquiera puede hacerlo”
  • Negativizar el puesto: En ocasiones puede asumirse de que las tareas son una carga y por ello que se comparten y se rotan entre todos (Como nadie quiere hacerlo, nos fastidiamos todos)
  • Objetivos confusos: Debería existir alguien con conocimientos suficientes  que marque las líneas generales de trabajo

Sin testers

Pros
  • Reducción de coste: En proyectos pequeños o de presupuesto ajustado la presencia de testers puede no ser factible
  • Responsabilidad: La responsabilidad del equipo de desarrollo es total en todos los ámbitos de la aplicación
  • Favorece equipo multidisciplinar
Cons
  • Bugs: Sin testing realizado por perfiles especializados el número de bugs en producción puede aumentar
  • Falta de puntos de vista de usuario final.
  • Equipo viciado: La falta de visión externa o de alguien centrado en "velar" por la calidad en el equipo puede hacer que el equipo no sea plenamente consciente de algunos malos hábitos


Conclusiones

Todos los modelos tienes su defectos y virtudes. Aunque, en mi opinión el factor más influyente en la calidad del testing es el contexto. En la mayoría de los casos, disponer de información actualizada y de primera mano en fases tempranas influirá enormente en la efectividad de las pruebas y reducirá el tiempo de feedback. Por eso, los mejores resultados en cuanto a número de bugs y velocidad de entrega de nueva funcionalidad se producen cuanto más cerca está del testing del desarrollo.

Por ello, si el equipo dispone de una persona con experiencia en testing y aseguramiento de la calidad dentro del equipo mucho mejor. Dicho perfil no es necesario que se dedique al 100% a labores de testing pero sí es recomendable que guie al resto del equipo en dichas tareas. Esto último sería aplicable también con rotar las funciones entre los miembros del equipo.

La opción de no disponer de tester la dejaría reservada para equipos “seniors” con un alto nivel de disciplina y responsabilidad individual unido a una “Definition of Done” clara.

Externalizar las pruebas puede resultar enormemente útil sobre todo en fases de beta-testing de aplicaciones donde se necesite asegurar el correcto funcionamiendo del servicio bajo múltiples configuraciones, localizaciones geográficas y bajo condiciones de uso reales.

Comentarios

Entradas populares de este blog

Lorem Ipsum

Exploratory Testing Chrome Extension