Menú

Verificación de edad en pruebas: umbrales y fechas límite

La verificación de edad en pruebas falla en el día exacto del cumpleaños y en los umbrales que se dan por supuestos. Repasamos de dónde salen los límites habituales y cómo se prueban sus bordes.

Publicado el

  • identidad
  • pruebas

La verificación de edad en pruebas no consiste en comprobar que el sistema sabe restar años. Consiste en comprobar que acierta el día exacto en que alguien deja de estar por debajo del límite, que es el único día en el que la respuesta importa de verdad. Alrededor de ese día hay además una maraña de umbrales distintos que provienen de normas distintas y que un equipo suele acabar mezclando en una sola regla.

Por qué existen distintos umbrales de edad

No hay una edad mínima universal, y tratar de encontrarla es el primer error. Los límites que aparecen con más frecuencia vienen de sitios diferentes y persiguen objetivos diferentes.

  • Trece años: es el umbral que suele citarse en el contexto de las normas estadounidenses sobre datos de menores en servicios en línea.
  • Dieciséis años: es la edad de consentimiento que la normativa europea de protección de datos fija como referencia para los servicios de la sociedad de la información, con la posibilidad de que cada Estado miembro la ajuste entre los trece y los dieciséis.
  • Dieciocho años: la mayoría de edad en la mayor parte de los países, asociada a contratos y a responsabilidad legal.
  • Veintiún años: aparece en un número reducido de jurisdicciones y en ámbitos concretos, como el consumo de alcohol.

Pertenecen a marcos distintos, así que no se pueden combinar en una sola comprobación. Un sistema que exige dieciocho años para todo está aplicando la mayoría de edad a un asunto que quizá se rige por otra regla; uno que exige dieciséis para todo ignora los casos en los que la referencia es otra.

¿Basta con que la persona escriba su fecha de nacimiento?

No, y la diferencia entre las dos formas de comprobar la edad es lo más importante de este tema. Una cosa es que la persona declare una fecha y el sistema calcule los años a partir de ella; otra muy distinta es que el sistema compruebe un documento. La primera solo verifica que la aritmética del sistema sea correcta; no verifica nada sobre la persona, porque cualquiera puede escribir una fecha distinta.

Esa distinción tiene consecuencias de diseño. Si la comprobación se basa en lo que la persona declara, el sistema debe asumir que el dato no está confirmado y no puede presentar el resultado como una acreditación de edad. La página de Estados Unidos recuerda que ni siquiera los identificadores oficiales sirven para confirmar quién es alguien por sí solos, y el mismo razonamiento se aplica aquí.

¿Cómo se prueban los días límite?

Con tres fechas por cada umbral, calculadas a partir de una fecha de referencia fija y no del reloj de la máquina.

  • La persona cumple el requisito hoy, es decir, su cumpleaños es la fecha de referencia.
  • La persona lo cumple mañana, de modo que hoy todavía no llega.
  • La persona lo cumplió ayer, así que ya lo supera con holgura.

Esos tres casos detectan la mayor parte de los errores de comparación, porque obligan al código a decidir qué significa exactamente alcanzar el límite. La convención extendida es que el día del cumpleaños ya cuenta como cumplido, así que el primero de los tres casos debe pasar y el segundo no. Si el sistema devuelve lo contrario, la comprobación tiene un error de un día que el resto de las pruebas nunca habría revelado.

Conviene además fijar la fecha de referencia en el conjunto de prueba. Si la prueba consulta el reloj real, el primer caso deja de cumplirse al día siguiente y la batería empieza a fallar sola sin que nadie haya tocado el código. La guía sobre validación de la fecha de nacimiento desarrolla los extremos de esa fecha.

Qué ocurre con quien nació un 29 de febrero

El 29 de febrero solo existe en los años bisiestos, y quien nace ese día cumple años en una fecha que la mayoría de los años no aparece en el calendario. En los años comunes, la convención varía: unos consideran que el cumpleaños es el 28 de febrero y otros el 1 de marzo. Esa diferencia de un día decide, en un umbral de edad, si la persona entra o no entra.

Para un sistema que comprueba edades, la decisión no se puede dejar al azar de la implementación. Hay que elegir de forma explícita una de las dos convenciones, aplicarla en todos los servicios y anotarla donde alguien pueda leerla. Si se deja sin decidir, dos pantallas distintas darán respuestas distintas para la misma persona durante dos días al año.

Cómo preparar datos para probar la verificación de edad

Hace falta un conjunto de fechas que cubra los bordes de todos los umbrales aplicables, con una fecha de referencia fija y sin depender del calendario real. En el generador de datos de identidad de este sitio se obtiene un registro completo del país elegido con la fecha de nacimiento y la edad calculada a partir de ella, de modo que ambos campos son coherentes y el resto del registro acompaña sin contradecirlos.

Como las pruebas sobre edad suelen compartir espacio con otras comprobaciones del registro, la guía sobre coherencia de los datos de identidad explica qué otros pares de campos deben cuadrar para que el caso que se quiere probar sea el que realmente se está probando.

Notas para quien programa

  • Configura los umbrales como datos, no como constantes repartidas. Un número escrito en varios sitios se actualiza en unos cuantos y se olvida en el resto. Un valor de configuración con su origen documentado evita esa clase de discrepancia.
  • No confundas el año de nacimiento con la edad. Restar el año actual menos el año de nacimiento da un resultado incorrecto durante los meses anteriores al cumpleaños. La edad se calcula comparando fechas completas.
  • Fija el huso horario o elimina su influencia. La fecha de nacimiento es un día, no un instante. Si el cálculo depende de la zona horaria del servidor, la respuesta cambia según dónde esté desplegado el servicio.
  • Documenta qué se hace con el 29 de febrero. Es la única fecha que obliga a elegir entre dos días y la única que, sin decisión escrita, produce respuestas incoherentes.
  • Prueba también el caso de la fecha ausente. Un formulario en el que la fecha de nacimiento es opcional tiene que tratar ese hueco sin tratar a la persona como si no cumpliera el requisito.
  • No presentes la comprobación como una acreditación. Calcular una edad a partir de una fecha declarada no confirma nada sobre la persona, y el texto de la interfaz no debería sugerir lo contrario.

Siguientes pasos

Añade hoy los tres casos de borde de cada umbral con una fecha de referencia fija y comprueba que el día del cumpleaños cae del lado correcto. Es la prueba con mejor relación entre esfuerzo y hallazgos de todo este tema.

Para generar los registros de apoyo, el generador de datos de identidad devuelve identidades completas y coherentes. Ese material es solo para pruebas de software, no corresponde a ninguna persona real y no sirve para hacerse pasar por otra ni para superar una verificación de edad o de identidad.

Seguir leyendo

Artículos sobre Generador de datos de identidad y prueba online