Curso completo

Algoritmos y Programación para QAs

La parte de la automatización de pruebas que la documentación de las herramientas nunca cubre: el JavaScript y los algoritmos de los que tus pruebas están realmente hechas. Parsea, compara, elimina duplicados, reintenta y genera datos con código que puedas defender en una revisión.

~5 horas de contenido

Ver lecciones

Contenido del curso

15 lecciones completas que cubren todo lo que necesitas saber

Introducción

Introducción
Estructura del curso
Descubre cómo está organizado el curso y aprovecha al máximo el contenido.
Introducción
Requisitos previos
Sistemas y conocimientos necesarios para completar el curso. Sin Docker y sin experiencia previa en automatización.
Introducción
Conociendo la aplicación bajo prueba
Conoce la aplicación de clientes, su tabla, su API JSON, su árbol de categorías anidado y su endpoint inestable a propósito.
Lección
Lección 1
Fork, clone y ejecuta la misma prueba en ambos runners
Haz un fork del proyecto, instálalo, levanta la aplicación y observa un mismo helper ejecutado por Cypress y por Playwright.

Fundamentos de JavaScript

Lección
Lección 2
Variables y declaraciones
var, let y const, ámbito y hoisting, y por qué const no significa inmutable en un fixture compartido.
Lección
Lección 3
Valores, tipos y truthiness
Primitivos frente a referencias, == frente a ===, null frente a undefined, y por qué todo lo que se lee del DOM es una cadena.
Lección
Lección 4
Funciones, ámbito y closures
Declaraciones frente a arrow functions, valores por defecto, rest y spread, funciones de orden superior y funciones fábrica, closures, y el this de Mocha que las arrow functions descartan.
Lección
Lección 5
Arrays sin bucles
map, filter, find, some, every, reduce y flatMap aplicados a una sola tarea: convertir las filas renderizadas en datos que puedas interrogar.
Lección
Lección 6
Objetos, inmutabilidad y acceso seguro
Desestructuración, spread, optional chaining, nullish coalescing y el fixture compartido que filtra estado entre pruebas.

JavaScript asíncrono

Lección
Lección 7
Promesas, async/await y el event loop
De callbacks a promesas y a async/await, y por qué Playwright hace await de todo mientras Cypress no hace await de nada.
Lección
Lección 8
Errores, timeouts y reintentos
try/catch, errores personalizados, guard clauses y cómo escribir un reintento acotado con backoff exponencial contra un endpoint inestable.

Estructuras de datos y complejidad

Lección
Lección 9
Big O sin matemáticas
Cuenta el trabajo en lugar de medirlo y responde a la única pregunta que importa en una suite de pruebas: ¿cuánto crece n?
Lección
Lección 10
Maps y Sets frente a arrays
Map, Set y claves de objeto, el includes() cuadrático dentro de un bucle, y cómo encontrar el duplicado escondido tras dos grafías.
Lección
Lección 11
Cadenas, parseo y expresiones regulares
trim, split, replace, template literals y una expresión regular que todavía podrás leer el mes que viene.

Algoritmos en tu código de pruebas

Lección
Lección 12
Recursión y datos anidados
Caso base, caso recursivo y cuándo un bucle es más claro, aplicados al árbol de categorías anidado que devuelve la API.
Lección
Lección 13
Ordenación y comparación
Funciones comparadoras, la sorpresa del sort() por defecto, localeCompare, estabilidad y cómo probar que una columna ordenada lo está de verdad.
Lección
Lección 14
Comparando dos conjuntos de datos
Reconcilia lo que muestra la interfaz con lo que devolvió la API, e informa la diferencia nombrando la fila problemática.
Lección
Lección 15
Generando datos de prueba
Aleatoriedad con semilla para fallos reproducibles, valores únicos que sobreviven a una nueva ejecución y combinaciones sin explosión combinatoria.

Bonus y conclusión

Bonus
Bonus: preguntas de código en entrevistas de QA
Los ejercicios que reciben de verdad las personas candidatas de QA, cómo razonar en voz alta y qué evalúa realmente quien entrevista.
Conclusión
¡Felicitaciones!
¡Has completado el curso Algoritmos y Programación para QAs!