Pruebas de autocorrección y corrector ortográfico con datos de errores tipográficos controlados
La mayoría de los equipos prueban sus sistemas de autocorrección y corrector ortográfico con el tipo equivocado de errores. Pulsan teclas al azar, escriben texto sin sentido deliberadamente o copian y pegan un puñado de errores ortográficos creados manualmente. El resultado es un conjunto de pruebas que no les dice nada sobre cómo funcionará su sistema cuando usuarios reales escriban en dispositivos reales.
El problema no es la falta de esfuerzo. Es la falta de datos de entrada realistas. Los algoritmos de autocorrección están diseñados para corregir los tipos de errores que los humanos realmente cometen—pulsaciones de teclas adyacentes, transposiciones, caracteres omitidos, letras duplicadas. Cuando pruebas con errores que ningún humano produciría, estás midiendo la capacidad de tu sistema para manejar escenarios que nunca ocurrirán en producción. Mientras tanto, los errores que tus usuarios sí cometerán quedan sin probar.
Este artículo explica por qué los datos de errores tipográficos realistas importan para las pruebas de calidad, por qué la mutación aleatoria de caracteres falla como estrategia de prueba, y cómo construir conjuntos de datos de prueba controlados y reproducibles usando generación de errores basada en la física.
Por qué los errores aleatorios fallan en las pruebas
El enfoque más común para generar datos de prueba para sistemas de corrector ortográfico y autocorrección es la sustitución aleatoria de caracteres. Eliges una palabra, eliges una posición, intercambias un carácter aleatorio. “keyboard” se convierte en “keybzard” o “keyb$ard.” La lógica parece razonable: estás introduciendo errores, y el sistema debería detectarlos.
Pero este enfoque tiene tres problemas fundamentales.
Los errores aleatorios no coinciden con los patrones humanos
Cuando un humano escribe mal “keyboard,” el error sigue la física del movimiento de los dedos. La “o” podría convertirse en una “p” o una “i” porque esas teclas son adyacentes en un teclado QWERTY. No se convertirá en una “z” o un “$” porque ningún desplazamiento del dedo podría producir esa sustitución. La mutación aleatoria de caracteres ignora esto por completo. Trata cada posible sustitución como igualmente probable, produciendo errores que son físicamente imposibles para un mecanógrafo humano.
La autocorrección está optimizada para patrones realistas
Los algoritmos modernos de autocorrección usan modelos probabilísticos que tienen en cuenta la geometría del teclado. Saben que “e” y “r” son adyacentes, por lo que “thr” es una escritura errónea plausible de “the.” Saben que “q” y “w” son vecinos, así que ponderan esas sustituciones más alto al clasificar candidatos de corrección. Cuando pruebas con errores aleatorios—sustituciones que el algoritmo nunca fue diseñado para encontrar—no estás probando las rutas de código que importan. Tu sistema podría obtener una puntuación perfecta con errores aleatorios y aun así fallar con las pulsaciones de teclas adyacentes que constituyen la mayoría de los errores tipográficos del mundo real.
Los datos poco realistas dan falsa confianza
Esta es la consecuencia más peligrosa. Un conjunto de pruebas lleno de mutaciones aleatorias de caracteres producirá tasas de aprobación que parecen excelentes. Tu autocorrector maneja “keybzard” perfectamente—solo hay una corrección plausible. Pero en producción, los usuarios escriben “keybiard” o “keyboadr,” y la ambigüedad es mucho mayor. Existen múltiples correcciones válidas. El autocorrector podría elegir la incorrecta, o no corregir en absoluto, porque el patrón de error real es más difícil de resolver que los aleatorios con los que probaste. Tu conjunto de pruebas dijo que todo estaba bien. Tus usuarios saben que no es así.
Generación controlada de errores
Las pruebas efectivas de autocorrección requieren datos de entrada que reflejen lo que los usuarios realmente escriben. Un simulador de errores de teclado basado en física produce errores fundamentados en la adyacencia de teclas, áreas de toque del dispositivo, velocidad de escritura y las restricciones biomecánicas de las manos interactuando con dispositivos de entrada. También significa la capacidad de controlar y reproducir esos errores con precisión.
Reproducibilidad basada en semillas
Uno de los mayores desafíos en las pruebas de calidad es la reproducibilidad. Si generas un conjunto de variantes de errores tipográficos para una ejecución de prueba, necesitas generar las mismas variantes exactas cuando vuelvas a ejecutar la prueba después de una corrección de errores. La generación aleatoria de errores dificulta esto sin una gestión cuidadosa de semillas. Los generadores basados en la física como LikelyTypo soportan generación determinista basada en semillas: el mismo texto de entrada, perfil, dispositivo y semilla siempre producirán una salida idéntica. Esto significa que tus casos de prueba son estables, controlables por versiones y depurables.
Tipos de errores específicos
Diferentes funciones de autocorrección manejan diferentes tipos de errores. Tu lógica de corrección de teclas adyacentes necesita ser probada con errores de teclas adyacentes. Tu detección de transposiciones necesita pares de caracteres transpuestos. Tu manejo de omisiones necesita caracteres omitidos. Un generador de errores controlado te permite enfocarte en categorías específicas de errores—sustituciones de teclas adyacentes, omisiones de caracteres, pulsaciones duplicadas, transposiciones, errores de espaciado—para que puedas probar cada ruta de corrección de forma aislada antes de combinarlas.
Escenarios de prueba específicos por dispositivo
Una pantalla táctil de teléfono produce errores fundamentalmente diferentes a un teclado físico. El área de toque en un teléfono es más amplia, por lo que los errores de teclas adyacentes tienen un radio mayor. La escritura con los pulgares en un teléfono introduce errores de espaciado que raramente ocurren en un teclado de escritorio. Los teclados de tablets producen otra distribución de errores diferente. Si tu autocorrector sirve a múltiples plataformas, tus datos de prueba deben reflejar los patrones de error específicos de cada dispositivo. Probar con un único conjunto genérico de errores significa que solo estás validando la experiencia de una plataforma.
Construir un conjunto de datos de prueba
El proceso de construir un conjunto de datos de prueba de errores tipográficos controlados con la herramienta web LikelyTypo sigue un flujo de trabajo sencillo. Así es como los equipos de calidad pueden abordarlo.
Comienza con frases representativas
Comienza con el texto que tus usuarios realmente escriben. Para un motor de búsqueda, eso significa consultas comunes. Para una app de mensajería, eso significa frases conversacionales. Para un editor de documentos, eso significa prosa de la longitud de un párrafo. El texto de entrada debe reflejar los patrones de uso reales de tu producto, no cadenas de prueba artificiales. Extrae datos de analíticas, transcripciones de investigación de usuarios o contenido de muestra que coincida con el vocabulario y la estructura de frases de tu audiencia.
Genera variantes a través de perfiles
Abre el generador LikelyTypo y pega tu texto representativo. Luego genera variantes de errores tipográficos usando diferentes perfiles de escritura. Un mecanógrafo cuidadoso produce errores diferentes a un mecanógrafo rápido. Un mecanógrafo que busca y pulsa comete errores diferentes a alguien que usa los diez dedos. Al generar variantes a través de múltiples perfiles, construyes un conjunto de datos de prueba que cubre el rango de comportamientos de escritura que exhiben tus usuarios.
Varía el modelo de dispositivo
Para cada conjunto de frases, genera variantes usando diferentes modelos de dispositivo. Los errores de pantalla táctil de teléfono pondrán a prueba tu autocorrector móvil de formas que los errores de teclado de escritorio no lograrán. Si tu producto funciona en múltiples plataformas, cada plataforma necesita su propia porción del conjunto de datos de prueba generado con el modelo de dispositivo apropiado.
Fija semillas para pruebas de regresión
Una vez que tengas un conjunto de variantes generadas que proporcione buena cobertura, registra los valores de las semillas. Estas semillas hacen que tu conjunto de datos de prueba sea completamente determinista. Cuando corrijas un error en tu lógica de autocorrección y necesites verificar la corrección, regenera exactamente las mismas variantes de errores tipográficos usando las mismas semillas. Tus pruebas de regresión serán estables y significativas porque los datos de entrada son idénticos entre ejecuciones.
Organiza por categoría de error
Estructura tu conjunto de datos de prueba para que puedas filtrar por tipo de error. Agrupa los errores de teclas adyacentes separados de las transposiciones, las omisiones separadas de las inserciones. Esto te permite ejecutar conjuntos de pruebas específicos contra funciones de autocorrección concretas e identificar rápidamente qué ruta de corrección está fallando cuando aparece una regresión.
Cómo son los buenos datos de prueba
Considera la frase “The quick brown fox jumps over the lazy dog.” Un generador de mutaciones aleatorias podría producir “Thx quicj broen fox.” Estos errores no te dicen nada útil. Nadie va a escribir “thx” cuando quiere decir “the”—la tecla “x” no está cerca de la tecla “e”.
Un generador basado en la física produce errores como “Thr quick brown fox jumps over teh lazy dog.” La “e” se convirtió en una “r” (adyacente en QWERTY). El “the” se convirtió en “teh” (caracteres transpuestos, uno de los errores más comunes del mundo real). Estos son los errores que tu autocorrector necesita manejar, porque estos son los errores que tus usuarios cometerán.
La diferencia entre estas dos entradas de prueba es la diferencia entre probar lo que importa y probar lo que es conveniente. Los datos aleatorios son fáciles de generar pero inútiles para la validación. Los datos basados en la física requieren una herramienta adecuada pero producen casos de prueba que se mapean directamente a escenarios de producción.
Crea tus datos de prueba
Si tu equipo está probando autocorrección, corrector ortográfico o validación de entrada, la calidad de tus datos de prueba determina la calidad de tus resultados. Las mutaciones aleatorias de caracteres te darán pruebas que pasan y usuarios que fallan. Los errores basados en la física te darán casos de prueba que reflejan la realidad.
La demostración interactiva de LikelyTypo te permite generar datos de errores tipográficos controlados y reproducibles en segundos. Pega tu texto representativo, selecciona un dispositivo y perfil de escritura, establece una semilla para la reproducibilidad y genera los errores realistas que tu pipeline de calidad necesita. Cambia entre modelos de dispositivo para construir conjuntos de prueba específicos por plataforma. Ajusta los perfiles para cubrir diferentes comportamientos de escritura. Cada variante generada está basada en la física del teclado, no en ruido aleatorio.
Crea tus datos de prueba
Genera variantes de errores tipográficos controlados y reproducibles para pruebas de autocorrección y corrector ortográfico. Errores basados en la física para múltiples dispositivos y perfiles de escritura.
Prueba la demostración interactivaTus usuarios no escriben texto aleatorio sin sentido. Cometen errores predecibles, gobernados por la física, en dispositivos específicos con hábitos de escritura específicos. Tus datos de prueba deberían hacer lo mismo.