¿Te has preguntado alguna vez qué es la realidad y cómo la conocemos? Esta es una de las cuestiones más antiguas y fascinantes de la filosofía, que también tiene mucho que ver con la figura de QA (Quality Assurance). La persona de QA es una que se encarga de asegurar la calidad de los productos y servicios, especialmente en el ámbito del software.

El papel de la persona de QA es fundamental en el desarrollo de software, ya que se responsabiliza de asegurar la calidad del producto final. Para ello, no solo hace pruebas y evaluaciones para hallar y solucionar posibles errores, fallos o defectos, sino que también tiene que entender el negocio, el desarrollo y las demandas del cliente. Asimismo, sirve como un enlace entre el equipo de negocio y el equipo de desarrollo, mejorando la comunicación y la colaboración entre ambos.

Pero, ¿cómo sabe esta persona si el software que prueba es realmente lo que el cliente quiere y necesita? ¿Cómo puede estar seguro de que el software cumple con los requisitos y los estándares de calidad establecidos? ¿Cómo puede garantizar que el software se adapte a los cambios y a las expectativas del mercado?

Estas son algunas de las preguntas que se plantea constantemente, y que también se planteó Platón hace más de dos mil años.

Por eso, la persona de QA es una de las piezas clave, por ejemplo, en las reuniones de 3 amigos, donde se establecen los requisitos, las expectativas y los criterios de aceptación del proyecto dando sus consejos y mejores prácticas, haciendo las preguntas adecuadas para evitar cuellos de botella o malentendidos que acaben retrasando los planes, lo que conlleva más coste para todos los implicados.

El mito de la caverna nos muestra cómo nuestra percepción de la realidad puede estar limitada por nuestras condiciones y experiencias. También nos muestra cómo podemos salir de esa limitación y acceder a un conocimiento más profundo y auténtico.

La persona de QA puede verse reflejada en el mito de la caverna, ya que también busca salir de las sombras (los errores, los defectos, las limitaciones) y ver la luz (la calidad, la excelencia, la satisfacción). Para ello, cuenta con herramientas, métodos y habilidades que le permiten realizar un análisis crítico y exhaustivo del software, desde diferentes perspectivas y niveles. Algunos ejemplos son:

  • El diseño e implementación de planes de pruebas, que definen los objetivos, los criterios, los casos y los procedimientos para verificar el software.
  • La ejecución de testing de productos, que consiste en aplicar diferentes tipos de pruebas al software, como pruebas funcionales, no funcionales, integradas, de sistema, de aceptación, etc.
  • El análisis de los resultados, implica revisar los datos obtenidos en las pruebas,identificar los problemas encontrados, clasificarlos por su gravedad e impacto, y documentarlos adecuadamente.
  • El reporte de los hallazgos, que consiste en comunicar los resultados del análisis a las partes interesadas, como el equipo de desarrollo, el cliente o los usuarios finales.
  • La propuesta de soluciones, que consiste en sugerir acciones correctivas o preventivas para resolver o evitar los problemas detectados.
  • Entender y desarrollar un modelo de integración continua, para ello acordar con el resto de los equipos los umbrales de trabajo que se van a permitir, como por ejemplo duplicidad de código, cobertura de test unitarios, cobertura de test de mutación, gestionar un repositorio de código, gestionar un repositorio de artefactos y versiones, etc.
  • La mejora de los procesos, que consiste en aplicar técnicas de gestión de calidad para optimizar el ciclo de vida del software, reducir los riesgos y aumentar la eficiencia. Dentro de este apartado, en un mundo en el que la integración continua es el presente, la automatización de las pruebas es un elemento esencial para establecer con éxito los objetivos, ya que no solo consiste en automatizar, sino también en distinguir entre lo que es necesario y lo que no.
  • Un aspecto que no se suele dar la verdadera importancia que tiene, la gestión documental, como puede ser saber qué artefactos y qué versiones están sobre los diferentes entornos, facilitando a todo el equipo su día a día en las subidas a producción o cuando se va a realizar un hotfix…
Post-it test usabilidad

Además de estas tareas técnicas, la persona de QA también necesita desarrollar una serie de competencias personales y profesionales que le ayuden a desempeñar su rol con éxito. Algunas de estas competencias son:

  • La actitud abierta al aprendizaje, a la innovación y a la mejora continua. El QA debe estar dispuesto a explorar nuevas posibilidades, a adaptarse a los cambios y a superar los obstáculos. Debe estar al día de las tendencias y las tecnologías emergentes en el sector del software.
  • La visión filosófica. QA debe ser capaz de cuestionar lo que ve, buscar lo que hay detrás, descubrir lo que le falta y aspirar a lo que puede lograr, teniendo una mente crítica, creativa y reflexiva.
  • La capacidad de comunicación y colaboración. Ser capaz de expresarse con claridad, precisión y respeto, trabajar en equipo, coordinarse con otros roles, compartir información y conocimiento, y resolver conflictos son algunos elementos clave que este rol conlleva.
  • La orientación al cliente y al usuario. QA debe ser capaz de entender las necesidades, los deseos y las expectativas del cliente y del usuario, y de satisfacerlas con el software que prueba. QA debe ser capaz de generar confianza, credibilidad y valor, llevando las mejores prácticas, las soluciones más adecuadas y las oportunidades de mejora para su proyecto a cotas de excelencia.

Puede darse que para algunos desarrolladores, a la persona de QA la vean con malos ojos, como un obstáculo para entregar su trabajo, o como una crítica negativa a su código.

También puede haber una falta de comunicación o colaboración entre los equipos de desarrollo y QA, lo que genera desconfianza o resentimiento. Sin embargo, esta fama es errónea, ya que la persona de QA no es un enemigo, sino una aliada del desarrollo.

El objetivo de QA es mejorar la calidad del producto, lo que beneficia tanto al cliente como al desarrollador. Ayuda a detectar y prevenir errores, a mejorar el rendimiento y la seguridad, y a garantizar la satisfacción del usuario.

QA también puede aportar una visión externa y objetiva del software, que puede ayudar a mejorar su diseño o funcionalidad. Así, QA y desarrollo podrán contribuir al éxito del proyecto y al crecimiento profesional de cada uno.

En conclusión, el rol de QA y el mito de la caverna tienen en común el propósito de salir de las sombras y ver la luz. Ambos nos invitan a cuestionar lo que vemos, a buscar lo que hay detrás, a descubrir lo que nos falta y a aspirar a lo que podemos lograr. QA es una profesión que requiere de conocimientos técnicos, pero también de una visión filosófica. La persona de QA es una filósofa del software.

¿A qué esperas para empezar tu proceso de iluminación?

Cuéntanos qué te parece.

Los comentarios serán moderados. Serán visibles si aportan un argumento constructivo. Si no estás de acuerdo con algún punto, por favor, muestra tus opiniones de manera educada.