Qué es QA testing y su importancia en el desarrollo de software

POR ANGÉLICA GARCÍA, CRISTHIAN LEÓN, GERSON PUENTE, NYDIA HERNÁNDEZ Y HEIDY HERNÁNDEZ / QA EN HTECH
Quality Assurance (QA) es el proceso utilizado para asegurar que el producto sea de la mayor calidad posible. Busca ofrecer una gran experiencia de usuario y cumplir con las expectativas generales del proyecto. Como lo menciona Muhammad Raza: “Calidad, se refiere a la conformidad de requisitos, expectativas y normas implícitas o explícitas”.

Para lograr la calidad en un producto es fundamental detectar errores y corregirlos a tiempo, por lo tanto, es importante que el equipo de QA esté presente en cualquier fase de desarrollo del proyecto, aplicando distintos tipos de pruebas para validar que cada funcionalidad, integración o nuevo módulo cumpla con los requisitos solicitados por el cliente.

¿Por qué contar con Quality Assurance?

Con la evolución de la era digital, los sistemas de software se volvieron de uso básico en la vida. Hoy en día existen aplicaciones de actividades bancarias, entretenimiento, consumo etc. Sin embargo, la mayoría de las personas ha tenido una mala experiencia usando alguna aplicación, lo que ocasiona muchos problemas a las partes interesadas.

A pesar de que existen diversas causas que pueden afectar la calidad de un software es indispensable hacer conciencia sobre los resultados de los errores que se cometen al no contar con un control de calidad, ya que existe una amplia probabilidad de que se presente un sinnúmero de problemas en el uso del sistema. Esto perjudica visiblemente la imagen de la empresa, le hace perder clientes potenciales y le trae costos visibles e invisibles que la desfavorecen, como la pérdida de dinero y tiempo o una mala reputación comercial.

Anteriormente, la compañía Htech no contaba con un departamento de calidad, lo que generaba un alto índice de defectos en entornos de producción. Esto afectaba los costos y tiempos de la empresa, como comentaba Fernando Flores, CTO de la empresa:

“Antes, las tareas de testing se repartían entre programadores, project managers e incluso directivos. Éramos pocos, una empresa de 50 personas aproximadamente, con un ambiente tipo startup, donde todos hacíamos de todo, pero, conforme fueron creciendo los proyectos en tamaño y en número se empezó a descuidar la calidad, se pasaban muchos errores en producción y reproducir algunos errores afectaba en los tiempos de desarrollo.“

Basado en eso se tomó la iniciativa de crear el departamento de QA en la compañía, con lo que se obtuvo beneficios y se fomentó la confianza en el nivel de la calidad del producto.

Por lo tanto, contar con un equipo que se encargue de validar la calidad del software es una forma de prevenir y reducir los riesgos en la operación final. Los objetivos principales que busca un QA son:

  • Encontrar errores específicos.
  • Definir y gestionar todos los escenarios de prueba posibles.
  • Prevenir errores futuros.

Aporte de las pruebas

En esta época, todavía hay quien no podría tomar la importancia necesaria de las pruebas de software. También sabemos que tener un área de QA a veces puede ser costoso, pero aplicando técnicas y buenas prácticas puede aportar grandes beneficios como:

  • Tener probadores involucrados desde el inicio del requerimiento reduce el riesgo de que se desarrolle una funcionalidad incorrecta o no verificable.
  • Involucrar a los probadores (QA) mientras se diseña el sistema aumenta la comprensión de cada parte del sistema y facilita a los QA saber qué esperar del flujo, permitiendo que los defectos se detecten en una etapa temprana.
  • Costos de mantenimiento del proyecto, ya que, al detectarlos en una etapa temprana, resulta más fácil solucionarlo.
  • Ahorra tiempo y dinero después de la implementación.
  • Mejor experiencia al usuario para que al final nos recomiende. Por ejemplo, con las pruebas se puede detectar cuando el sistema es lento o si hay alguna funcionalidad que llegué a producir insatisfacción o frustración en la sesión del cliente.
  • Y no olvidemos uno de los beneficios más importantes: al final, teniendo el aseguramiento de la calidad de nuestro sistema, podemos darle la confianza a las partes interesadas de que se está ofreciendo un producto funcional, confiable, de calidad, y así mantener mejores relaciones con nuestros usuarios.

Tipos de pruebas en el desarrollo de software

Como se mencionó al inicio, para validar si el producto cumple con los requisitos, un QA debe realizar las actividades de pruebas en diferentes entornos, de acuerdo con los objetivos que se persiguen en el proceso de desarrollo, a fin de garantizar el control y el aseguramiento de la calidad dentro de un proyecto. Podemos diferenciar entre dos conjuntos de pruebas principales:

  1. Pruebas funcionales: se realizan para evaluar las funciones que debe realizar el sistema y para comprobar que cumple con los requisitos y especificaciones comerciales.
  2. Pruebas no funcionales: se realizan para evaluar las características del sistema y el software, para validar qué tan bien se comporta el sistema bajo diferentes circunstancias.

Para finalizar, si bien la labor de QA es detectar la presencia de defectos y tratar de prevenirlos, no representa la ausencia de éstos. Por lo tanto, para conservar y garantizar la calidad de un producto, todos los implicados deben trabajar en conjunto aportando conocimientos y esfuerzos.