Saltar al contenido

Testing de Compatibilidad

Que el software funcione en los entornos soportados, la matriz de compatibilidad como especificación verificable y la compatibilidad hacia atrás 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 antes 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.

Backward Compatibility

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 compatibility testing es particularmente relevante en public APIs, sistemas distribuidos, arquitecturas event-driven, shared libraries y migraciones de base de datos.

Te sirvió, compartilo

// ¿te sirvió?
// compartilo