Cargando ahora

QA Software Testing y Automatización: Conceptos Básicos

“La automatización no es una sustitución de las personas, sino de las tareas monótonas.” — Stewart Butterfield

En el mundo del software, Quality Assurance (QA) se encarga de garantizar que las aplicaciones funcionen correctamente. Tradicionalmente las pruebas se hacían de forma manual, pero hoy muchas empresas aprovechan la automatización para repetir tests de forma rápida y confiable. Automatizar no elimina el factor humano; más bien libera al equipo de QA de las tareas repetitivas, permitiendo enfocarse en casos más complejos. En este artículo explicaremos los conceptos básicos del testing automatizado (framework, librería, script, test runner, etc.), los lenguajes de programación comunes (JavaScript, Python, Java), algunos frameworks populares como Playwright, cómo se estructura un rol de QA Automation, y un plan paso a paso para aprenderlo todo. ¡Acompáñanos y no dudes en dejar tus comentarios con dudas o experiencias!

Terminología esencial en QA y Automatización

  • Framework: Es una infraestructura o conjunto de herramientas predefinidas que facilita el desarrollo de tests automáticos. Por ejemplo, en Python existe el framework pytest, descrito en su documentación oficial como una herramienta que “hace fácil escribir tests pequeños y legibles” . En Java, un ejemplo es JUnit, definido como “un framework de automatización de pruebas para el lenguaje de programación Java” . Los frameworks suelen incluir funciones para definir tests, reportar resultados y extender funcionalidades.
  • Librería: Es una colección de código (módulos o funciones) reutilizable que amplía las capacidades del lenguaje. Por ejemplo, la biblioteca estándar de Python incluye módulos “escrito en C que brindan acceso a funcionalidades del sistema (como entrada/salida de archivos) y módulos en Python con soluciones estandarizadas” para problemas comunes . En testing, se usan librerías para asserts, manipular datos o comunicarse con entornos.
  • Script: Archivo de código que contiene instrucciones ejecutables para realizar tareas específicas. Un script se ejecuta línea por línea en un intérprete. Por ejemplo, en Python un script es “un archivo que generalmente contiene un conjunto de instrucciones autocontenidas” que realizan una tarea específica . En QA automatización, se escriben scripts de prueba que realizan acciones en la aplicación y comprueban resultados.
  • Test Runner (ejecutor de tests): Es la parte del flujo de pruebas encargada de ejecutar los scripts de test y reportar los resultados. En palabras de la documentación oficial de Android, “el test runner es la unidad de ejecución en el flujo de invocación; es donde realmente se ejecutan los tests.” . Un test runner toma los scripts, los corre en el orden definido, recopila logs y muestra si cada prueba pasó o falló. Ejemplos incluyen el comando pytest de Python o la plataforma de ejecución de Playwright/Jest.

Lenguajes de programación en automatización

En QA Automation se utilizan diversos lenguajes, comúnmente aquellos populares en desarrollo web y aplicaciones. A continuación mencionamos tres de los más usados:

  • JavaScript: Lenguaje de scripting muy usado en pruebas web (porque se ejecuta en el navegador). Según MDN, “JavaScript es un lenguaje de programación o de secuencias de comandos que permite implementar funciones complejas en páginas web” . En automatización, frameworks como Playwright, Cypress o Jest usan JS. Por ejemplo, un test sencillo en Jest se vería así (extraído de la documentación oficial en español de Jest ):
// suma.js
function suma(a, b) {
  return a + b;
}
module.exports = suma;

// suma.test.js
const suma = require('./suma');
test('sumar 1 + 2 es igual a 3', () => {
  expect(suma(1, 2)).toBe(3);
});
  • Aquí se define una función suma y luego un test (test(…)) que verifica que suma(1,2) dé 3. Este ejemplo sigue el estilo de la documentación oficial .
  • Python: Lenguaje de alto nivel muy usado en automatización por su sintaxis sencilla. Existen frameworks como pytest o Robot Framework. Con pytest, por ejemplo, simplemente definimos funciones cuyo nombre comienza con test_ y usamos assert. Por ejemplo:
# test_example.py
def test_suma():
    assert 2 + 3 == 5
  • Para ejecutar este test basta con correr pytest en la terminal. Como señala la documentación oficial de pytest, este framework facilita escribir pruebas pequeñas y legibles . Esto se debe a que pytest detecta automáticamente funciones test_, maneja los reportes y permite usar aserciones simples.
  • Java: Lenguaje clásico para aplicaciones de todo tipo. Se usa junto con frameworks como JUnit o TestNG. Java es descrito oficialmente como “un lenguaje de programación y plataforma informática” establecida desde 1995 . Un típico test unitario en JUnit (versión 5) se ve así:
import org.junit.jupiter.api.Test;
import static org.junit.jupiter.api.Assertions.*;

public class EjemploTest {
    @Test
    void testSuma() {
        assertEquals(5, 2 + 3);
    }
}
  • Aquí la anotación @Test marca el método de prueba, y assertEquals verifica que el resultado de la suma sea el esperado. El framework JUnit se define como “un framework de automatización de pruebas para Java” , por lo que su uso es estándar en proyectos Java para testing.

Cada lenguaje tiene su sintaxis y particularidades, pero todos siguen la idea general de escribir código que ejecute acciones sobre el software y valide los resultados esperados. Usar varios lenguajes amplía tus opciones de herramientas y proyectos en QA Automation.

Frameworks de automatización

Un framework de automatización es un conjunto de herramientas y librerías pensado para facilitar las pruebas. Además de los mencionados pytest, JUnit y Jest, existen frameworks especializados de end-to-end (E2E), que simulan al usuario real navegando la aplicación. Un ejemplo moderno es Playwright. En su sitio oficial se presenta como una solución para “realizar pruebas de extremo a extremo confiables para aplicaciones web modernas” . Playwright funciona con Chromium, Firefox y WebKit; puede usarse en Windows, Linux o macOS; y soporta JavaScript, Python, Java, .NET, etc. .

Por ejemplo, la documentación de Playwright muestra cómo escribir un test básico en JavaScript/TypeScript :

import { test, expect } from '@playwright/test';

test('la página tiene el título esperado', async ({ page }) => {
  await page.goto('https://playwright.dev/');
  await expect(page).toHaveTitle(/Playwright/);
});

Este script abre el navegador en la URL de Playwright y comprueba que el título contenga “Playwright”. Como explica su documentación, Playwright “realmente espera” automáticamente a que los elementos sean interactuables antes de cada acción, reduciendo tests “flaky” (inestables) .

Además de Playwright, hay otros frameworks: Selenium (históricamente muy usado), Cypress, Puppeteer, Appium (móvil), etc. Lo importante es entender la idea común: estos frameworks proveen APIs para controlar navegadores o dispositivos y funciones de assert. Su documentación oficial es la mejor fuente para aprender a usarlos de forma correcta .

Rol de QA Automation y conocimientos iniciales

Un QA Automation Engineer suele pertenecer al equipo de calidad dentro de un proyecto de desarrollo. Su responsabilidad principal es diseñar, crear y mantener los tests automatizados que validan el software en cada cambio. Esto implica colaborar con desarrolladores para entender la aplicación, revisar historias y casos de uso, y escribir scripts de prueba confiables. Dependiendo de la empresa, en QA Automation puede haber niveles (junior, senior, líder) y especializaciones (tests funcionales, de rendimiento, de integraciones, etc.).

Conocimientos básicos para empezar:

  • Fundamentos de testing: Entender qué es un test, qué tipos existen (unitarios, integración, funcionales, E2E), y principios de pruebas de software. Conceptos de cobertura, aserciones y diseño de casos de prueba.
  • Programación: Debes manejar al menos un lenguaje de programación usado en testing (por ejemplo, Python o JavaScript). Conocer estructuras básicas (variables, funciones, control de flujo) y cómo depurar código.
  • Herramientas de control de versiones: Git es esencial. Saber clonar repositorios, crear ramas, hacer commits y merges.
  • Frameworks y librerías de prueba: Familiarízate con frameworks como pytest, JUnit, Jest u otros según el lenguaje. Lee su documentación oficial, crea proyectos de prueba sencillos y aprende a interpretar sus reportes.
  • Conceptos de CI/CD: Conocer sistemas de integración continua (como Jenkins, GitHub Actions, GitLab CI) para ejecutar tests automáticamente en cada commit.
  • Soft skills: Atención al detalle, habilidades de comunicación (para reportar bugs y entender requerimientos) y pensamiento analítico. Las personas en QA muchas veces hacen da revisión de código ligero, automación de procesos y reportan métricas de calidad.

Aunque no siempre es solicitado, hay organizaciones que brindan certificaciones oficiales, como ISTQB ofrecen formación en testing. Sin embargo, lo más práctico e importante es aprender haciendo: empieza con pequeños proyectos o retos de automatización (próximamente generare un post sobre Git, GitHub Actions y GitHub… te adelanto… no, no son lo mismo 😊), siguiendo tutoriales y la documentación oficial de las herramientas.

Cómo aprender QA Automation: paso a paso

  1. Conceptos de QA y pruebas manuales. Antes de automatizar, comprende qué es el testing: aprende términos como caso de prueba, bug, regresión, cobertura. Hay recursos oficiales (por ejemplo, la ISTQB o documentos de calidad de IEEE) que explican buenas prácticas.
  2. Elige un lenguaje y aprende sus bases. Por ejemplo, Python o JavaScript. Usa tutoriales oficiales o reconocidos (la documentación de Python o recursos de MDN para JS) para dominar sintaxis básica y ejecución de scripts.
  3. Practica con un framework sencillo. Instala pytest (si elegiste Python) o Jest (con Node.js). Sigue la documentación oficial para escribir tu primer test. Por ejemplo, crea una función simple y prueba su resultado.
  4. Explora un framework de E2E. Instala Playwright (siguiendo su guía ) o Selenium. Ejecuta ejemplos básicos: abre un navegador en una página de ejemplo, navega, haz clic y verifica algo en pantalla. La documentación de Playwright o Selenium contiene ejemplos paso a paso.
  5. Integra control de versiones y CI/CD. Sube tus scripts de prueba a GitHub (o similar). Configura una pipeline (por ejemplo, GitHub Actions) que ejecute los tests en cada push. Así verás cómo los tests se ejecutan automáticamente en un servidor.
  6. Amplía tus conocimientos. Aprende sobre diseño de frameworks (patrón Page Object, parametrización de tests), manejo de datos de prueba (fixtures), generación de reportes. Documentaciones avanzadas o libros de testing automático pueden ser útiles.
  7. Comparte y pregunta. Participa en comunidades (Stack Overflow, grupos de QA en Slack/Discord) y revisa casos reales en GitHub. Aprende de proyectos open source de testing. No dudes en dejar comentarios o preguntar dudas en blogs o foros; la comunidad QA es colaborativa.

Cada concepto nuevo se consolida mejor con la práctica. Por ejemplo, al aprender test runner, realmente lo entiendes cuando configuras un runner en tu proyecto de Node o Python. Lo mismo con los frameworks: tu mejor maestro es su propia documentación. ¡Recuerda ser curioso/a y paciente contigo mismo/a mientras aprendes!

🎁 Te dejo un pequeño resumen para que te descargues:

“El aprendizaje es una aventura sin fin, y la automatización es solo una de sus emocionantes paradas.” 😉

Fuentes: Documentación oficial y material referenciado de Python, Java, JavaScript, Playwright, pytest, JUnit y MDN .

👩🏽‍💼Me despido por ahora. Les compartí mucha info para incorporar y aprender.

¡Te animo a comentar tu experiencia o preguntas abajo! Nos vemos en el próximo post.

Mi nombre es Verónica Sofia Batista y comparto temás relacionados de Quality Assurance Software Testing. Por eso cree un Blog, para compartir todo lo que voy aprendiendo y aplicando a mi carrera profesional. Ojalá que mi sitio te guste y sea de tu interés.

Publicar comentario

Descubre más desde Quality Assurance Software Testing

Suscríbete ahora para seguir leyendo y obtener acceso al archivo completo.

Seguir leyendo