Pruebas y QA · 6 min de lectura

Pruebas de formularios de dirección en 2026: una lista de verificación de QA de 40 puntos

Una lista de verificación de 40 puntos para formularios de dirección: restricciones de campos, momento de validación, textos de error, dependencia del país, autocompletado, accesibilidad y un paquete de regresión.

Por Charlie Simmon ·

Las pruebas de formularios de dirección fallan en lugares predecibles. Los campos son simples, así que el formulario se construye rápido, y luego corrompe silenciosamente un código postal canadiense, elimina un cero inicial alemán o exige una región después de que el usuario elige Hong Kong. Una lista de verificación vale más aquí que las pruebas exploratorias, porque el conjunto de fallos es bien conocido y finito.

Esta es una lista de verificación de 40 puntos agrupada en ocho áreas, con la regla concreta detrás de cada punto. Asume un formulario con línea 1, línea 2, ciudad, región, código postal y país, lo que cubre la gran mayoría de los flujos de pago y registro. Cada punto se puede observar sin acceso al backend, y cada uno corresponde a un defecto que se ha publicado en algún lugar.

1. Inventario de campos y restricciones

Empieza por anotar cada campo, su propósito, su límite de almacenamiento y si es obligatorio. La mitad de los defectos de esta lista son imposibles de evaluar sin esa tabla, porque «el formulario rechazó mi dirección» no es accionable hasta que sabes qué campo la rechazó y por qué.

Las restricciones deben ser por país, no globales. Una longitud máxima única de 10 para el código postal funciona en la mayoría de los países y falla en Irlanda con 8 caracteres y un espacio, y un máximo global de 30 para la ciudad trunca muchas nombres reales. Establece límites generosos y valida el patrón del país en lugar de una longitud elegida para un solo mercado.

CampoObligatorio cuandoMáximo sugeridoValidar como
Línea de dirección 1Siempre, excepto formularios solo de PO Box100 caracteresTexto libre, no vacío tras recortar
Línea de dirección 2Nunca100 caracteresTexto libre, opcional
CiudadSiempre85 caracteresTexto libre, no solo una lista
RegiónDonde el país tiene regiones3 caracteres para US y CALista controlada por país
Código postalDonde el país tiene uno12 caracteresPatrón del país
PaísSiempreCódigo de 2 letras más nombreLista fija

2. Dependencia de país y región

Cambiar el país debe restablecer la región, cambiar la etiqueta del campo postal, cambiar el teclado y el patrón, y borrar cualquier estado de validación obsoleto. El error clásico es una provincia canadiense que queda seleccionada tras cambiar a Estados Unidos, lo que envía un formulario de aspecto válido con un par de valores imposible.

Hong Kong y los Emiratos Árabes Unidos no tienen códigos postales, así que el campo debe volverse opcional y la etiqueta debe indicarlo. Japón invierte el orden de la dirección, y el formulario debe presentar los campos en el orden local o dejar claro que se espera el orden occidental. Prueba el cambio en ambas direcciones y prueba un cambio de país después de que ya se haya mostrado un error de validación.

Cambio de paísLista de regiones esperadaComportamiento postal esperado
US a CAProvincias y territoriosPatrón A1A 1A1, espacio permitido
CA a US50 estados más DC y territorios5 dígitos o ZIP+4
Cualquiera a HKDistritosOpcional, vacío permitido
Cualquiera a AEEmiratosOpcional, vacío permitido
US a GBCondados o texto libreCódigo exterior e interior
GB a JPPrefecturas3-4 dígitos, guion permitido

3. Momento y estado de la validación

Valida el formato al perder el foco, valida los campos obligatorios al enviar y borra un error en cuanto el valor sea válido. Validar en cada pulsación castiga al usuario que está a mitad de escribir un código postal, y validar solo al enviar hace que el usuario descubra seis errores a la vez sin ninguna orientación.

Nunca desactives el botón de envío como sustituto de la validación. Un botón desactivado sin explicación es la queja de accesibilidad más común en los formularios de dirección, porque el usuario no puede saber qué falta y un lector de pantalla puede no anunciar el cambio. Mantén el botón activo, envía y muestra un resumen con enlaces a cada campo.

EventoQué validarQué mostrar
Al cambiarConsistencia de país y regiónRestablecer campos dependientes
Al perder el focoFormato del campo que perdió el focoError en línea si no es válido
Al escribir tras un errorVolver a comprobar y borrar si se corrigióEliminar el error de inmediato
Al enviarTodos los campos, incluidos los obligatoriosResumen más foco en el primer error
Al recibir la respuesta del servidorErrores del servidor por campoAsignar de vuelta a los mismos ids de campo

4. Textos de error y ubicación de los errores

Un mensaje de error debe decir qué campo está mal, cuál es el formato aceptado y cómo corregirlo. «Dirección no válida» falla en los tres. «El código postal debe tener 5 dígitos, por ejemplo 97205» los cumple. Para países cuyo formato es inusual, incluye un ejemplo en lugar de un patrón, porque los usuarios no leen expresiones regulares.

Coloca el error junto al campo y también en un resumen en la parte superior del formulario cuando este sea largo. Asócialo con aria-describedby y establece aria-invalid en el input. Mueve el foco al primer campo no válido al enviar, o al resumen si el resumen es interactivo. Prueba con un lector de pantalla, no solo visualmente.

  • Nombra el campo en el mensaje
  • Indica el formato esperado con un ejemplo
  • Di qué hacer, no solo qué está mal
  • Nunca culpes al usuario; di «Introduce un ZIP de 5 dígitos»
  • Mantén el mensaje en el idioma y la dirección de la página

5. Manejo de la entrada: pegar, autocompletar y teclados

Pegar es donde salen a la luz los errores de formato. Un usuario pega «K1A 0B1» con un espacio de no separación, o una dirección completa en la línea 1. El formulario debe recortar, normalizar los separadores conocidos y conservar los espacios internos. No debe eliminar los guiones de un ZIP+4 ni de un código neerlandés, y no debe convertir a mayúsculas el nombre de una ciudad que legítimamente tiene mayúsculas y minúsculas mezcladas.

El autocompletado depende de los nombres de token correctos. Usa address-line1, address-line2, address-level2 para la ciudad, address-level1 para la región, postal-code y country, y no reutilices street-address en un campo de una sola línea a menos que realmente sea un bloque de calle multilínea. En móvil, los teclados numéricos suelen carecer de guion, así que un ZIP+4 o un código neerlandés introducido con inputmode="numeric" se vuelve imposible de completar. Usa inputmode="text" donde el patrón permita separadores.

CampoToken de autocompletadoTeclado móvil
Línea de dirección 1address-line1text
Línea de dirección 2address-line2text
Ciudadaddress-level2text
Regiónaddress-level1text o un selector
Código postalpostal-codetext cuando se permite un guion
Paíscountryselector

6. Longitud, truncamiento y codificación

Prueba el límite y un carácter por encima para cada campo. El truncamiento es peor que el rechazo, porque el usuario ve un envío exitoso y el valor almacenado es incorrecto. Si la columna de la base de datos tiene 50 caracteres y el formulario permite 100, el defecto aparece solo con entradas largas, que es exactamente lo que nunca contienen los datos de prueba escritos a mano.

Prueba caracteres no ASCII: letras acentuadas, el apóstrofo en O Connell, el guion en un nombre de calle francés, la eszett en una calle alemana y escrituras de derecha a izquierda. Comprueba que el valor viaja de ida y vuelta por la API, la base de datos, la exportación CSV y la etiqueta impresa. Los errores de codificación a menudo aparecen solo en el paso de exportación, que es el paso que nadie prueba.

  • Límite: máximo menos uno, máximo, máximo más uno
  • Acentos: e con acento agudo, u con diéresis, c con cedilla
  • Puntuación: apóstrofos, guiones, puntos en abreviaturas de calle
  • Espacios en blanco: iniciales, finales, dobles, de no separación
  • Escrituras: árabe y hebreo para la dirección, japonés para el ancho
  • Ida y vuelta: formulario, API, base de datos, exportación, etiqueta

7. Accesibilidad y localización

Cada campo necesita una etiqueta visible asociada programáticamente al input. El texto de marcador de posición no es una etiqueta: desaparece al escribir y se anuncia de forma inconsistente. Agrupa los campos de dirección en un fieldset con un legend, y haz que los selectores de país y región se puedan operar con el teclado con búsqueda por escritura.

Para locales de derecha a izquierda, establece dir en el contenedor y no en los inputs individuales, para que la puntuación y el icono de error queden en el lugar correcto. Comprueba que las etiquetas traducidas no se desbordan al 200 por ciento de zoom y que el resumen de errores se anuncia cuando aparece. Son comprobaciones baratas que detectan los defectos por los que cobran las auditorías de accesibilidad.

ComprobaciónCondición de aprobado
Asociación de etiquetaAl hacer clic en la etiqueta se enfoca el input
Aria en erroraria-invalid true y aria-describedby apunta al mensaje
Orden de focoEl orden de tabulación sigue el orden visual
ZoomEl diseño funciona al 200 por ciento sin solapamientos
RTLDirección establecida en el contenedor, iconos reflejados
Lector de pantallaSe anuncian el nombre del campo, el valor y el error

8. El paquete de regresión

Convierte la lista de verificación en un pequeño paquete automatizado que se ejecute en cada cambio. Veinte casos cubren el conjunto de fallos: un caso válido y uno no válido para el mercado principal, un caso para Canadá, el Reino Unido, Alemania, Japón, Brasil, Hong Kong y los Emiratos Árabes Unidos, más longitudes límite, una ciudad no ASCII, un valor pegado con un espacio de no separación y un cambio de país después de un error.

Mantén cada caso independiente y con datos iniciales definidos. Verifica la forma del resultado en lugar de una cadena literal, y verifica el texto de error visible para los casos no válidos, porque las regresiones en los textos de error son regresiones reales. Un paquete de este tamaño se ejecuta en segundos y detecta la mayoría de los defectos descritos anteriormente.

Grupo de casosCantidadCubre
Mercado principal válido y no válido4Rutas principales y textos de error
Casos estructurales atípicos7CA, GB, DE, JP, BR, HK, AE
Longitudes límite4Truncamiento y rechazo
Codificación y pegado3No ASCII, NBSP, pegado de dirección completa
Restablecimientos de dependencias2Cambio de país, recarga con valores obsoletos

Preguntas

¿Cuántos casos de prueba necesita un formulario de dirección?+
Unos veinte cubren el conjunto de fallos comunes: casos válidos y no válidos del mercado principal, casos estructurales atípicos como Canadá, Japón y Hong Kong, longitudes límite, codificación y restablecimientos al cambiar de país.
¿Debe ejecutarse la validación en cada pulsación?+
No. Valida el formato al perder el foco y los campos obligatorios al enviar, y luego borra los errores en cuanto el valor sea válido. La validación por pulsación castiga a los usuarios que están a mitad de la entrada.
¿Por qué Hong Kong rompe los formularios de dirección?+
Hong Kong no tiene códigos postales, así que un campo postal obligatorio bloquea una dirección válida. Lo mismo ocurre con los Emiratos Árabes Unidos; en ambos casos el campo debe ser opcional.
¿Qué tokens de autocompletado debe usar un formulario de dirección?+
address-line1, address-line2, address-level2 para la ciudad, address-level1 para la región, postal-code y country. Permiten que los navegadores rellenen el formulario correctamente.
¿Cómo pruebo el truncamiento?+
Envía un valor con la longitud máxima, un carácter menos y un carácter más, y luego lee el valor almacenado. El truncamiento silencioso tras un envío exitoso es el defecto que hay que detectar.

Los ejemplos son sintéticos. No utilices una dirección generada para verificaciones de identidad, registro de cuentas ni entregas.

Estándares de referencia

Leer a continuación

Todas las guías