Saltar al contenido

Testing de Compatibilidad

Cómo verificar que el software funciona en los entornos soportados, y por qué la compatibilidad hacia atrás importa en APIs públicas.

3 min. de lectura

Qué es

El testing de compatibilidad verifica que el software funcione correctamente en los entornos soportados: sistemas operativos, navegadores, dispositivos, tamaños de pantalla, versiones de base de datos, versiones del runtime, entornos cloud, condiciones de red. El widget de reserva que ReservaResto embebe en la web de cada restaurante podría funcionar perfecto en Chrome sobre macOS y romperse en Safari sobre iOS, por ejemplo con el date picker.

Matriz de compatibilidad

Una herramienta simple, pero efectiva: definir explícitamente qué se soporta, con versiones y con niveles de soporte. Una matriz donde todas las filas dicen “sí” no es una especificación: es la misma vaguedad de un “tiene que andar en todos lados”, escrita en una tabla.

EntornoVersiones soportadasNivelCómo se verifica
Chrome / EdgeÚltimas 2 establesCompletoSuite E2E en cada release
FirefoxÚltimas 2 establesCompletoSuite E2E en cada release
Safari macOS16+CompletoSuite E2E en cada release
Safari iOS16+CompletoSuite E2E + prueba manual del date picker
Chrome AndroidÚltimas 2 establesCompletoSuite E2E
Safari iOS15DegradadoSmoke test: reservar tiene que funcionar
Internet ExplorerNo soportadoSe muestra un aviso y no se testea

Cada fila responde tres preguntas que un “sí” no responde: hasta qué versión, qué significa soportar (¿todo funciona, o solo el camino crítico?) y quién lo verifica. Ese último dato es el que convierte la matriz en algo accionable: sin él, la matriz es una intención.

Compatibilidad hacia atrás

Existe otro tipo de compatibilidad que aparece en sistemas y APIs: si ReservaResto expone una API pública para que partners hoteleros integren reservas, un cambio aparentemente inocuo en el contrato de la API puede romper las integraciones de los partners que todavía usan la versión anterior (v1 de un endpoint de booking contra clientes que ya migraron a v2, por ejemplo). Por eso el testing de compatibilidad es particularmente relevante en APIs públicas, sistemas distribuidos, arquitecturas dirigidas por eventos (event-driven), bibliotecas compartidas y migraciones de base de datos.

Con esto cierra el recorrido: de la unidad aislada al sistema completo, y de lo funcional a los atributos de calidad. Cada nivel responde una pregunta distinta, y el test más útil sigue siendo el más barato que puede detectar el defecto que te importa.

Te sirvió, compartilo

// ¿te sirvió?
// compartilo