¿Qué es un QA?

Para resumirlo en un par de líneas, QA (Quality Assurance) o aseguramiento de calidad hace referencia a la forma de medir la calidad, no solo del producto sino también del proceso de desarrollo.

Muchas empresas, para abaratar costos, dejan de lado el área de QA; quizás la ven innecesaria o como una pérdida de tiempo, pero a la larga se nota la diferencia. Es imposible que una aplicación sea perfecta, siempre va a tener defectos. La misión de un QA no es simplemente encontrarlos, sino también ayudar a prevenirlos.

Tester vs. QA

Mucha gente confunde los términos o los mete en la misma bolsa, pero son dos perfiles distintos:

Tester
Se encarga de detectar y reportar fallas en un sistema durante la fase de desarrollo.
QA
Se encarga de asegurar la calidad no solo del producto, sino de todos los procesos del desarrollo.
El QA abarca las tareas del tester y suma procesos, estrategia, criterios y reportes

Un QA realiza las tareas de un tester, pero un tester no realiza las tareas de un QA. En otras palabras, un QA es un tester evolucionado.

Tareas de un QA

Tareas de un QA: análisis, plan de pruebas, estrategia, reportes y automatización

Análisis

Ayuda al Product Owner a definir tareas y criterios de aceptación. El QA suele tener una visión más horizontal del producto y del desarrollo, por lo que puede ayudar a definir las user stories y que queden claras para los desarrolladores.

Desarrollo de un plan de pruebas

En base a los criterios de aceptación, elabora un plan de pruebas (test plan) con distintos casos de prueba (test cases), teniendo en cuenta los diferentes flujos de la aplicación.

Estrategias de testing

Según el estado del proyecto, los tiempos, el tamaño de la aplicación y otros factores, define la estrategia de testing que se va a emplear.

Elaboración de reportes

No sé si lo hacen todos los QA, pero yo envío reportes semanales para que el PO conozca el estado de la plataforma: bugs existentes y corregidos.

Scripts automatizados

Da para otro post, pero los QA pueden ser manuales o automatizadores. En el segundo caso elaboran scripts que ejecutan tareas de forma automática, para lo cual es necesario saber programar.

Para concluir: un QA le otorga calidad al producto, al desarrollo y al proceso. No es una pérdida de dinero, porque al cliente final le llega un producto listo para usar. Muchos desarrollos sin área de QA entregan productos sin probar que terminan fallando en producción, gastando dinero en arreglar las fallas y perdiendo tiempo en la puesta en marcha.

Publicado originalmente en el foro de Underc0de.

Introducción QA