O dónde se esconden los bichos (bugs) y qué tan fácil es atraparlos.

Una verdad universal afirma: cualquier aplicación, ya sea una tienda online en un CMS o un sistema ERP multimodular, debe funcionar sin errores, es decir, ser de calidad. Pero la realidad es que los errores han existido, existen y existirán en todos los sistemas vivos y en desarrollo.

Y si en proyectos pequeños las tareas de aseguramiento de calidad se pueden delegar a los desarrolladores, en proyectos grandes estas tareas se suelen externalizar a un proceso separado: QA. De esto hablaremos a continuación.

¿Qué es el QA testing?

QA (Quality Assurance) (aseguramiento de calidad) es el proceso de asegurar la calidad del software. Es un concepto muy amplio que incluye la prueba del producto y el análisis de la documentación técnica antes de su entrega al desarrollo.

Los procesos de QA correctamente configurados permiten reducir el tiempo de trabajo y ahorrar presupuesto. La implementación de QA en etapas tempranas permite lanzar un producto «limpio», que agrade a los usuarios, mejore la reputación de la empresa en el mercado y aumente los beneficios.

Los ingenieros de QA se encargan de las pruebas en el equipo de desarrollo. Su tarea es verificar cuidadosamente el software antes de que llegue a manos de los usuarios. Detectan errores en el código y se aseguran de que el software funcione en todos los dispositivos y plataformas compatibles.

Ilustración isométrica que representa el QA Testing, mostrando una tableta con iconos de pruebas, una lupa, bloques con herramientas y una nube, simbolizando la verificación y el aseguramiento de la calidad del software en la nube.
Visualización del proceso de QA Testing: Desde la planificación hasta la implementación, asegurando un software de alta calidad y rendimiento.

Los desarrolladores reciben de los ingenieros de QA informes de errores con una descripción detallada del problema. Esta información se puede utilizar para reproducir el error y comprender cómo se puede corregir.

De qué se compone QA

QA es un proceso complejo en el que participa no solo el equipo de testers. Para que el software funcione de forma estable y sin errores, es necesario realizar un gran esfuerzo, y para facilitar y optimizar el proceso de verificación del código, este se divide en varias etapas.

  • Análisis: Primero, los ingenieros de QA evalúan los puntos débiles de la documentación técnica y los problemas potenciales en los que hay que centrarse. Cuanto más minucioso sea el análisis, menor será la probabilidad de que los usuarios reciban una aplicación con errores y fallos en el lanzamiento.
  • Desarrollo de escenarios de prueba: En la siguiente etapa, los ingenieros de QA elaboran casos de prueba, instrucciones especiales que describen detalladamente los pasos para la preparación de la prueba, el algoritmo de la propia verificación y el resultado esperado.

Los casos de prueba se elaboran para cada función de la aplicación, ya sea un algoritmo de sistema complejo o el código de un botón individual con el que interactúa el usuario. Todos los problemas encontrados se registran en forma de informes de errores, documentos especiales para los desarrolladores con una descripción detallada de los errores y las condiciones en las que se producen.

Lee también: Informe de Errores: Qué es y Cómo Redactarlo Correctamente

  • Pruebas: Etapa clave en la que se verifica la capacidad de funcionamiento del producto de TI en todas las plataformas. Se prueba la interfaz de usuario, las funciones del sistema, las integraciones externas y se consideran todos los posibles escenarios de interacción con la aplicación.
  • Prueba de regresión: Una vez que los desarrolladores han corregido todas las deficiencias, los testers realizan una nueva verificación. En esta etapa, es necesario asegurarse de que no hayan aparecido nuevos errores después de la corrección de los errores y de que la aplicación funcione correctamente. Las pruebas de regresión también se utilizan cuando se cambia a una nueva arquitectura o plataforma.
  • Informe: Después de realizar todas las pruebas, los ingenieros de QA preparan un informe sobre el trabajo realizado. En él, se describen de nuevo todas las comprobaciones realizadas durante el desarrollo del proyecto. Los informes ayudan a comprender el estado actual del producto de TI y a elaborar un plan de acción para el futuro.

Tipos de pruebas

En QA existen muchos tipos de pruebas que permiten verificar el sistema en función de los datos disponibles. Existen muchos enfoques, pero no todos se utilizan a la vez. Para cada proyecto, los ingenieros de QA eligen los métodos más adecuados que satisfacen los requisitos técnicos. Los tipos de pruebas se dividen en los siguientes grupos:

Por grado de automatización:

  • Pruebas manuales: Los ingenieros siguen todos los casos de prueba y realizan las acciones descritas en ellos. Esto requiere mucho tiempo y esfuerzo, por lo que este método es más adecuado para controlar pequeños cambios.
  • Pruebas automatizadas: El ingeniero de QA desarrolla un programa que simula las acciones del usuario. Esto permite a los testers ahorrar tiempo, utilizando el código repetidamente, ejecutando todos los casos de prueba con un solo botón o automáticamente, en función del tiempo o de un evento.

Por objetivos:

  • Pruebas funcionales: consisten en verificar que el software cumple con los requisitos. Los especialistas en QA prueban todas las funciones de la aplicación y evitan problemas que puedan surgir durante su uso.
  • Pruebas no funcionales: durante las pruebas no funcionales, los ingenieros de QA comprueban cómo funciona la aplicación en diferentes condiciones. Esta categoría de pruebas incluye pruebas de seguridad, rendimiento, compatibilidad, localización, pruebas de estrés y otras comprobaciones.

Por conocimiento del sistema:

  • Pruebas de «caja blanca»: Para trabajar con este método, el ingeniero de QA debe conocer la arquitectura interna del producto. Crea independientemente casos de prueba y detecta los errores cometidos al escribir el código, analiza el enrutamiento, los catálogos, los ciclos y puede realizar modificaciones en el código.
  • Pruebas de «caja negra»: En este caso, el tester no tiene acceso al código. Actúa como un usuario real del programa y se orienta únicamente a su interfaz. Este método de prueba se utiliza en todas las etapas del desarrollo y se considera más accesible para los especialistas principiantes, pero no siempre permite eliminar todos los errores.
  • Pruebas de «caja gris»: Enfoque combinado en el que los especialistas ven parte del código y tienen acceso a la configuración interna del programa. La propia comprobación implica el uso de la interfaz que ve el usuario final.

Por la positividad del escenario:

  • Pruebas positivas: Solo se utilizan datos de entrada válidos. La tarea del ingeniero de QA es asegurarse de que la función funciona correctamente en los escenarios de explotación normales.
  • Pruebas negativas: El objetivo de este tipo de pruebas es comprobar los casos excepcionales. Se utilizan valores no válidos como datos de entrada. Imagine que, en lugar de su nombre, el usuario introduce su fecha de nacimiento. ¿Seguirá funcionando el programa? Si es así, ¿qué datos devolverá al usuario? Las respuestas a estas preguntas son las que proporcionan las pruebas negativas.

Por los ejecutores:

  • Pruebas alfa: Verificación de una versión temprana del producto de TI que solo funciona dentro de la empresa. A veces se pueden involucrar usuarios finales en este proceso, pero la mayoría de las veces las pruebas alfa están cerradas a los participantes externos.
  • Pruebas beta: Producto casi terminado que la empresa lanza para un número limitado de usuarios. En esta etapa, los desarrolladores recopilan comentarios, realizan cambios en la base de código y se preparan para el lanzamiento público.

Por cronología de ejecución:

  • Confirmatorias: Pruebas repetidas que se ejecutan para confirmar la corrección exitosa de un defecto.
  • De regresión: Se utilizan después de realizar cambios en la base de código del proyecto. Estas pruebas ayudan a asegurarse de que no se hayan producido nuevos errores después de las modificaciones.
  • De aceptación: Se comprueba que el código del proyecto cumple con todos los requisitos y necesidades del producto de TI.

Niveles de pruebas

Normalmente, la verificación del software se realiza en cuatro niveles que forman parte de la clásica «pirámide de pruebas».

  • Pruebas unitarias: En este nivel, los ingenieros de QA comprueban la capacidad de funcionamiento de los módulos individuales del código del programa. En algunos equipos, estas pruebas las realizan los desarrolladores. Esto permite encontrar errores antes de que el código llegue a los testers.
  • Pruebas de integración: Con su ayuda, se comprueba cómo interactúan entre sí los diferentes módulos del programa. Por ejemplo, cómo funciona el código con un servicio externo o una base de datos.
  • Pruebas de extremo a extremo: En esta etapa, los ingenieros de QA prueban todo el proyecto. Se presta especial atención al paso de escenarios de usuario concretos. Es necesario asegurarse de que todos los módulos e integraciones externas funcionan correctamente.
  • Pruebas de UI: Se comprueban todos los elementos de la interfaz de usuario, su diseño, coherencia, facilidad de uso y conformidad con los escenarios de uso.
Pirámide de pruebas de software que ilustra los diferentes niveles de pruebas: Unit tests, Integration tests, End-to-end tests y UI tests, mostrando la proporción ideal para cada uno.
Optimiza tu estrategia de testing con la pirámide de pruebas. Aprende la importancia de la proporción entre Unit tests, Integration tests, End-to-end tests y UI tests.

Herramientas de los ingenieros de QA

Los testers experimentados utilizan decenas de herramientas y servicios en su trabajo. Los ingenieros de QA principiantes no necesitan conocer todas, pero algunas utilidades se encuentran con más frecuencia:

  • BrowserStack: Plataforma en la nube que permite probar software en diferentes dispositivos y sistemas operativos. Si no tiene un teléfono inteligente Android a mano, puede ejecutar las pruebas en BrowserStack.
  • Jira: Sistema de gestión de proyectos y seguimiento de errores que conecta a desarrolladores, testers y usuarios.
  • Selenium: Biblioteca abierta para la automatización del trabajo del navegador. Se utiliza con mayor frecuencia para probar aplicaciones web.
  • Postman: Herramienta para probar API. Con su ayuda, los ingenieros de QA comprueban las solicitudes del cliente al servidor.
  • Apache JMeter: Aplicación abierta para realizar pruebas de carga.
  • Git: Sistema de control de versiones que almacena el historial de cambios en el código.

En resumen

QA es una de las etapas clave del desarrollo de cualquier producto de TI. De este proceso depende la forma en que el programa llegue a manos de los usuarios.

Los especialistas en control de calidad participan en todas las etapas del desarrollo del programa y comprueban cada componente del producto, desde el pliego de condiciones hasta la facilidad de uso y el diseño.

Existen muchos tipos de pruebas QA, cada uno de los cuales se refiere a una etapa determinada del desarrollo del producto. Para algunos de ellos no es necesario conocer los lenguajes de programación, pero la mayoría requieren comprender el funcionamiento interno y la arquitectura del software.

Categorizado en:

Fundamentos,