Últimamente se ha estado hablando mucho del tema de los QA en uno de los grupos de Underc0de, y como actualmente me desempeño como QA en una empresa de software, voy a comentar mi experiencia personal en esta área.

QA

¿Qué es un QA?

Para resumir 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.

Para abaratar costos, muchas empresas dejan de lado el área de QA porque quizá lo ven innecesario o como una pérdida de tiempo, pero a la larga se nota la diferencia. Es imposible que una aplicación o proyecto sea perfecto, siempre tiene algún defecto, 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 de Tester y QA, o simplemente los mete dentro de la misma bolsa, pero se trata de 2 perfiles totalmente diferentes.

El tester es aquel que se encarga de detectar y reportar fallas en un sistema durante la fase de desarrollo, mientras que el QA es el responsable de asegurar la calidad no solo del producto en sí, sino también de todas los procesos del desarrollo.

Para resumir, un QA realiza las tareas de un tester, aunque un tester no realiza las tareas de un QA. En otras palabras, un QA es un tester evolucionado.

QA vs QC

Aseguramiento de la Calidad (QA) y Control de Calidad (QC) son dos términos que pueden dar lugar a varias interpretaciones, debido a los múltiples significados de “aseguramiento” y “control”, y que pueden originar confusión a los profanos en sistemas de gestión de calidad.

El “aseguramiento de la calidad” puede definirse como el conjunto de actividades planificadas implementadas dentro del sistema de calidad que proporcionan la confianza de que un producto o servicio cumple con los requisitos de calidad.

Cuando hablamos de “control de calidad” nos referimos al conjunto de técnicas operativas y actividades utilizadas para comprobar los requisitos de calidad de un producto o servicio.

Según la norma ISO 900:2005 “Sistemas de gestión de la calidad. Fundamentos y vocabulario”:

Control de calidad (QC): parte de la gestión de calidad orientada al cumplimiento de los requisitos de calidad.

Aseguramiento de la calidad (QA) : parte de la gestión de calidad orientada a proporcionar confianza en que se cumplirán los requisitos de la calidad.

Tareas de un QA

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 el 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 prueba (test plan) que va a contener distintos casos de pruebas (test cases) teniendo en cuenta los diferentes flujos de la aplicación.

Estrategias de testing

La estrategia de testing a emplear se definirá en función del estado del proyecto, los tiempos, el tamaño de la aplicación y otros factores significativos.

Elaboración de reportes

No sé si lo harán todos los QA, pero yo envío reportes semanales para que el PO tenga conocimiento del estado de la plataforma (bugs existentes y fixeados).

Scripts Automatizados

De este tema hablaremos más en profundidad en otra nota del blog, pero si es importante decir que los QA pueden ser manuales o automatizadores. En este segundo caso, elaboran scripts que ejecutan cierta tarea de forma automática. Para poder automatizar, obviamente es necesario saber programar antes.

Conclusiones

Entonces, se puede decir que un QA le otorga calidad al producto, al desarrollo y al proceso. No es una pérdida de dinero, ya que al cliente final le llega un producto listo para usar.

Muchas empresas que no tienen área de QA, entregan productos sin probar y terminan fallando en producción, gastando dinero en arreglar las fallas y perdiendo tiempo para la puesta en marcha.