Saltar al contenido

Probar lo irreversible

Migraciones, escrituras y borrados: las pruebas que protegen lo único que no se puede deshacer en la máquina de otra persona.

Las migraciones

Lo del nivel 43.2, con su forma de prueba:

La última parece obvia y se olvida: una migración puede aplicarse sin errores y haber perdido una columna por el camino.

Las escrituras interrumpidas

Lo del nivel 40.2, que se puede probar:

Y la segunda tiene una versión más agresiva que merece hacerse una vez a mano: matar el proceso a mitad de una escritura grande y comprobar el estado del disco. Nivel 40.2.

Los borrados

Y lo que hay que probar de una operación destructiva:

  • Que borra lo que debe, exactamente.
  • Y que no borra lo que no debe — que es la prueba que importa: un borrado en cascada mal configurado se lleva cosas que nadie esperaba.
  • Que la confirmación es obligatoria en el camino del usuario.
  • Y que hay copia previa si es masivo. Nivel 43.4.

La segunda merece una prueba explícita por cada relación en cascada que tu esquema declare.

Las copias

Y cerrar el círculo del nivel 43.4, que preguntaba si alguna vez habías restaurado una:

  • Probar que la copia se hace y contiene lo que debe — con la API correcta, no copiando ficheros. Nivel 41.5.
  • Probar que se restaura, en una prueba automática: hacer copia, modificar, restaurar, comprobar que volvió.
  • Y probar el ciclo completo de la migración fallida: provocar un fallo, comprobar que la base queda como estaba y que la copia se conserva.

La segunda es la que contesta la pregunta del nivel 43.4 de forma permanente: si está automatizada, la respuesta a «¿has restaurado alguna vez?» es «en cada construcción».