Menú

Escalar datos de prueba entre países: invariantes y excepciones

Escalar datos de prueba entre países no es multiplicar filas. Hay invariantes que deben cumplirse en todos los territorios y una lista de excepciones que hay que mantener corta y con fecha.

Publicado el

  • estrategia
  • pruebas

Escalar datos de prueba entre países parece una operación aritmética y en realidad es un problema de clasificación. Multiplicar filas es fácil; lo difícil es decidir qué se mantiene igual en todos los territorios y qué se aparta como excepción sin que la lista de excepciones se coma el diseño. Esta guía explica cuatro formas de crecer, qué invariantes conviene fijar, por qué mantener una lista de excepciones es más barato que dispersar condiciones y cómo se comprueba que la cobertura creció de verdad.

Qué se rompe primero al añadir territorios

Lo primero que se rompe no son los datos, son las suposiciones. Cada territorio que entra trae consigo decisiones que en el caso doméstico estaban implícitas y ahora hay que escribir.

La más común es asumir que existe un campo obligatorio. Al añadir territorios aparece que ese campo no aplica en todas partes, y la validación que lo exigía empieza a rechazar registros correctos.

La segunda es asumir un formato único de presentación. Los valores largos, los alfabetos distintos y las líneas adicionales rompen plantillas que nunca se habían probado con esos casos.

La tercera es asumir una relación estable entre territorio, idioma y moneda. En cuanto los tres dejan de coincidir, cada punto del sistema que los derivaba uno de otro muestra combinaciones que nadie previó.

Añadir el segundo territorio ya revela la mitad de estas suposiciones. Añadir el vigésimo ya no revela nada nuevo: solo amplifica lo que no se arregló al principio.

¿Conviene crecer por número de territorios o por profundidad?

Son dos ejes distintos y conviene tratarlos por separado, porque crecer a la vez en los dos multiplica el trabajo sin avisar.

Ampliar el número de territorios mejora la cobertura de casos generales: sirve para detectar cuándo una regla se ha escrito de más y para comprobar que el sistema no se apoya en el caso conocido.

Profundizar en un territorio, con más divisiones internas, más ciudades y más variantes de dirección dentro de él, sirve para otro propósito: encontrar los fallos de los campos derivados y de las reglas propias de ese lugar.

Estrategia Qué aporta Cuándo elegirla
Más territorios, poca profundidad Detecta reglas demasiado amplias En la fase de diseño de reglas
Menos territorios, mucha profundidad Encuentra fallos en los campos derivados Antes de abrir un mercado
Cobertura completa de códigos Comprueba listas y correspondencias Al validar el catálogo
Una muestra larga por región Prueba composición y textos largos Antes de revisar la presentación

La confusión habitual es intentar cobertura completa y profundidad máxima al mismo tiempo. Eso produce un conjunto enorme que nadie recorre y cuyo mantenimiento consume más tiempo que las pruebas que soporta.

¿Qué invariantes deben cumplirse en todos los territorios?

Un invariante es una condición que se cumple en cualquier territorio y que no depende de sus reglas particulares. Fijarlos es lo que permite añadir territorios sin revisar todo el conjunto cada vez.

Los más útiles son de forma, no de contenido. El identificador del territorio debe estar presente y pertenecer al catálogo en todos los registros. Los campos que no aplican deben estar ausentes de forma explícita y no contener un valor de relleno. Las relaciones entre los datos deben mantenerse aunque cambien los valores, por ejemplo que la división indicada pertenezca al territorio indicado.

Conviene escribir los invariantes como comprobaciones automáticas y no como buenas intenciones. Un invariante que solo vive en la documentación se incumple en la primera carga hecha con prisa, y esa carga suele ser la que se usa para probar.

El segundo grupo de invariantes tiene que ver con el formato de los datos de prueba: identificadores estables entre ejecuciones, ausencia de datos que parezcan reales y reproducibilidad del conjunto a partir de su definición. Un conjunto que cambia en cada ejecución no sirve para comparar resultados.

Por qué la lista de excepciones debe ser corta y tener fecha

Porque una excepción sin fecha es una excepción que nadie se atreve a quitar, y con el tiempo el conjunto se convierte en una colección de parches que ya no describen ningún motivo real.

Cada excepción debe responder a tres preguntas: qué territorio la necesita, por qué la necesita y cuándo se revisa. Si no se puede responder la segunda, la excepción probablemente oculta una regla mal escrita y no una particularidad del territorio.

El número de excepciones es un buen indicador de salud. Si crece al mismo ritmo que la cobertura, las reglas generales están mal formuladas y cada territorio nuevo obliga a escribir una condición nueva. Si se mantiene pequeña, la mayor parte del crecimiento se está absorbiendo con invariantes.

También conviene vigilar las excepciones que se contradicen entre sí. Dos excepciones para el mismo territorio con criterios distintos son una señal de que el motivo original se ha perdido.

Cómo comprobar que la cobertura creció de verdad

Con una medición que no dependa del número de filas. Contar registros dice cuánto ocupa el conjunto, no cuántos casos distintos cubre.

La forma más útil es medir la cobertura por categoría de caso: cuántos territorios tienen al menos un registro con campo derivado presente, cuántos tienen una variante de escritura larga, cuántos ejercitan el camino en el que el territorio no se atiende. Ese recuento se puede revisar de un vistazo y muestra qué falta.

Después conviene comprobar que los invariantes pasan en el conjunto completo y no solo en la muestra habitual. Un invariante que falla en dos registros de un territorio poco usado sigue siendo un invariante roto.

Por último, merece la pena guardar el conjunto junto con su definición y su fecha. Sin eso, la próxima revisión empieza otra vez desde cero y nadie puede saber si la cobertura mejoró o solo cambió.

Notas para quien programa

  • Decide y escribe los invariantes antes de añadir el segundo territorio.
  • Mantén la lista de excepciones corta, con motivo y fecha de revisión en cada entrada.
  • Mide la cobertura por categoría de caso y no por número de registros.
  • Separa el crecimiento en número de territorios del crecimiento en profundidad dentro de un territorio.
  • Comprueba los invariantes en el conjunto completo, no solo en la muestra de siempre.
  • Guarda la definición que genera el conjunto para poder reproducirlo y compararlo.
  • Revisa las excepciones cuando cambie una regla general: muchas dejan de ser necesarias.

Siguientes pasos

Cuenta cuántas excepciones hay por territorio; si el promedio pasa de una o dos, el problema está en las reglas generales y no en la cobertura. Para inventariar qué campos y estados conviene cubrir antes de ampliar el conjunto, la guía sobre la lista de cobertura de datos por país ofrece el método. Si lo que quieres es que el conjunto no envejezca, la guía sobre la vigencia de los datos de país trata la procedencia y las fechas. Y para consultar territorios concretos y sus datos antes de preparar los casos, el directorio de países y regiones los reúne por región con enlace al detalle de cada uno.

Los invariantes y la lista de excepciones que aparecen en esta página son una estructura de ejemplo. No describen ningún conjunto de datos existente ni recogen cifras de cobertura de ningún sistema real.

Seguir leyendo

Artículos sobre Formatos de dirección e identidad por país