Cómo nuestro generador de datos de prueba hace que los datos falsos parezcan reales

Recientemente lanzamos DataFairy, una herramienta gratuita que genera datos de prueba. Pero primero, déjame contarte la historia de cómo surgió.

Esta es la historia de cómo convertimos un divertido proyecto paralelo de código abierto en algo que resultó ser realmente útil.

No se trata de noticias falsas o de engañar a las masas. Pero el hecho es que para los desarrolladores, probadores de software y, realmente, cualquier persona que haya dado una demostración, los datos falsos son esenciales y sorprendentemente difíciles de recuperar.

Nuestra historia con datos falsos comienza cuando desarrollamos por primera vez nuestra herramienta SaaS, Devskiller. Como todas las aplicaciones, necesitábamos usuarios. En este momento ni siquiera buscábamos usuarios de pago. Solo necesitábamos perfiles de candidatos para nuestra aplicación. Lo que necesitábamos eran datos ficticios que parecieran reales.

Necesitábamos un generador de datos de prueba

Necesitábamos datos falsos por un par de razones:

1. Necesitábamos ver si nuestro sistema funcionaba

Esto significaba que necesitábamos crear varios perfiles ficticios diferentes para ver si el sistema los almacenaba y mostraba correctamente.

2. Necesitábamos vender nuestro producto

Necesitábamos hacer demostraciones para nuestros primeros clientes potenciales. Queríamos mostrarles a nuestros clientes cómo sería el sistema después de 6 meses de invitar y probar a cientos de candidatos.

Nuestro primer pensamiento fue buscar un generador de datos de prueba disponible. Pero el problema es que los datos son difíciles de falsificar de manera convincente. Pregúntale a este chico

o el,

Muchos datos se validan algorítmicamente

Si fuera fácil obtener datos convincentes, probablemente no necesitaríamos una herramienta. Pero generar datos puede ser complicado por un par de razones.

Los datos falsos son más que números aleatorios. Tome el ejemplo de un número de tarjeta de crédito. La mayoría de los números de tarjetas de crédito se basan en algo llamado algoritmo de Luhn. Para explicar esto, usaremos el ejemplo de una tarjeta Visa:

Cómo comprobar si un número de tarjeta de crédito es válido

Antes de comenzar, es importante saber que todos los números de tarjetas Visa comienzan con un 4. Además, todos tienen 16 o 13 dígitos.

Tome este número de tarjeta Visa:

Lo primero que debe hacer para ver si puede validar el número es duplicar los dígitos alternos comenzando con el primer dígito de la secuencia.

4574487405351567
(4x2), (7x2), (4x2), (7x2), (0x2), (3x2), (1x2), (6x2)
8, 14, 8, 14, 0, 6, 2, 12

Si la duplicación que acaba de hacer da como resultado un número con dos dígitos, súmelos para obtener un número de un solo dígito.

8, 5, 8, 5, 0, 6, 2, 3

Luego, debe volver al número de tarjeta de crédito original y reemplazar los dígitos que duplicó el nuevo valor.

8554885405652537

Este podría ser el valor de dobles o la tabla de valores con los dígitos sumados. Ahora súmalo todo.

8+5+5+4+8+8+5+4+0+5+6+5+2+5+3+7=80

Y luego verifique si la suma es divisible por 10. En este caso lo es, entonces el número es válido.

Necesita algún tipo de algoritmo computacional para validar los números de tarjetas de crédito a escala. Pero los números de tarjetas de crédito son datos relativamente fáciles de acertar. No solo necesitábamos piezas individuales de datos verificables, necesitábamos perfiles completos.

Los perfiles verificables necesitan diferentes tipos de datos que se relacionan entre sí de manera lógica

Los números de tarjetas de crédito son relativamente fáciles de generar, porque solo se relacionan con ellos mismos. Pero los números de identidad personal a menudo se relacionan con otras cosas de una persona. Tome el número de identidad personal sueco, prácticamente llamado personnummer.

Para aquellos de ustedes que no lo saben, los números de persona están diseñados para pagar impuestos, algo así como un número de Seguro Social estadounidense. Pero también se utilizan como una forma de acceder a servicios como la atención médica y las escuelas, así como a servicios no gubernamentales como las calificaciones crediticias.

El formato de un número de persona es ligeramente diferente al de una tarjeta de crédito. Es un número de 10 dígitos dividido en una sección de seis dígitos y una sección de cuatro dígitos conectada por un guión.

Dato curioso: los suecos mayores de 100 años reemplazan el guión en su número de persona con un signo más.

Los primeros seis dígitos del número de persona son simples y corresponden al cumpleaños de la persona usando un formato AAMMDD. De la segunda sección de 4 dígitos, los primeros tres son un número de serie. El tercer dígito del número de serie es impar para los hombres e incluso para las mujeres. El último número es un dígito de suma de control.

Entonces, si toma el número de persona:

601128–9235

Sabes que es para un hombre nacido el 28 de noviembre de 1960.

60(year)11(month)28(day)-(under 100 years old)92(unique numbers)3(unique odd number for male)5(checksum digit)

Para calcular la suma de comprobación, multiplique los dígitos individuales del número de identidad por los dígitos correspondientes del número 212121–212.

(6x2)(0x1)(1x2)(1x1)(2x2)(8x1)(9x2)(2x1)(3x2)
12, 0, 2, 1, 4, 8, 18, 2, 6

Al igual que con la tarjeta Visa anterior, si el producto de cualquiera de estos números da como resultado un número de dos dígitos, simplemente sume los dos dígitos.

3, 0, 2, 1, 4, 8, 9, 2, 6

Agregue todos los productos restantes juntos.

3+0+2+1+4+8+9+2+6=35

Para obtener el dígito de la suma de verificación, reste el último dígito de los productos agregados de 10 (la excepción es que si el último dígito es cero, la suma de verificación también es cero).

10–5=5

Entonces, si vas a generar un perfil de esta persona, no puede ser de una mujer nacida el 10 de abril de 1916. Su nombre de persona tendría que ser algo como: 160410 + 1244. En otras palabras, no podría simplemente crear un número aleatorio y esperar que funcione con cualquier perfil falso que haya generado.

Necesitábamos datos de prueba lógicos

Los datos deberían relacionarse entre sí de una manera lógica, ya que el número de persona no es el único dato que se basa en información externa. La mayoría de los tipos de números de identificación se relacionan con otra información de alguna manera. Simplemente no pudimos encontrar un generador de datos de prueba que hiciera eso, así que decidimos construir el nuestro. Parece que no fuimos los únicos que tuvieron este problema.

JFairy

Como colaboradores habituales de la comunidad de código abierto, decidimos que la mejor manera de generar los datos de prueba que necesitábamos era construir nuestra propia biblioteca. Llamado JFairy, nuestro objetivo era que generara conjuntos de datos que fueran verificables y conectados lógicamente.

De esta manera podríamos llenar nuestra aplicación con usuarios. Nuestros datos de usuario no pueden ser un galimatías o de lo contrario no podrían imputarse. Así que pusimos la biblioteca a trabajar y funcionó mejor de lo que esperábamos. Incluso genera personas reales de vez en cuando. Descubrimos esto porque usamos Gravatar para mostrar las imágenes de los candidatos. Nos sorprendió cuando apareció una foto real en nuestra cuenta de prueba.

Esto fue realmente útil cuando comenzamos a buscar en nuestra aplicación. Queríamos mostrarles a los clientes empresariales una cuenta con 300 candidatos de prueba diferentes en la plataforma. Si no hubiéramos creado JFairy, es posible que todos hubiéramos intentado usar la aplicación algunas veces, pero solo éramos cinco en el equipo. No habría sido práctico para nosotros cinco crear 300 perfiles falsos conectados lógicamente.

Los datos generados por JFairy resultaron ser tan convincentes que los nuevos clientes estaban desconcertados en cuanto a dónde habíamos llevado a todas estas personas a probar. De hecho, nos preguntaron si podíamos ayudarlos con la búsqueda de nuevos desarrolladores, ya que claramente estábamos en contacto con varias personas con experiencia técnica, algunas de las cuales tenían habilidades validadas.

Necesitábamos dejar que la comunidad de código abierto echara un vistazo a JFairy

Nos dimos cuenta de que esto se estaba convirtiendo en algo más grande que nosotros, así que decidimos poner el sistema en código abierto. La primera razón es que todos somos ávidos usuarios de código fuente abierto. Sabemos que es importante retribuir a esa comunidad para poder recibir cosas a cambio. Pero además de eso, el código abierto puede traer beneficios reales al producto. Al publicar nuestro proyecto para que varios desarrolladores diferentes puedan echarle un vistazo, podemos obtener algunas ideas nuevas que nunca hubiéramos considerado.

Las contribuciones más destacadas fueron la inclusión de nuevos idiomas. Solo creamos JFairy para generar datos para hablantes de inglés y polaco. Después de todo, estamos bastante limitados por los idiomas que conocemos bien. Pero, por supuesto, podría ser una herramienta útil para personas de diferentes países. A través de contribuciones de código abierto, hemos podido agregar soporte para datos en español, francés, alemán, sueco y chino.

También nos dimos cuenta de que aunque estamos llegando a un gran grupo de usuarios en desarrolladores de software, Jfairy tenía aplicaciones mucho más allá de una comunidad cuyos miembros saben cómo codificar. Así que decidimos aprovechar el éxito de la biblioteca y crear una aplicación que pudiera respaldar su uso para más aplicaciones y más personas.

Data Fairy les da a todos acceso a datos falsos

JFairy demostró ser muy útil para los desarrolladores que sabían cómo codificar, pero no eran las únicas personas que usaban los datos que generaba JFairy. Los probadores de software deben poder completar sus sistemas para ver si funcionan. Los vendedores y los especialistas en marketing necesitan datos para que sus demostraciones parezcan realistas. Para que JFairy sea útil para la mayoría de las personas, tuvimos que hacer que sus datos falsos fueran de fácil acceso.

Con ese objetivo en mente, creamos DataFairy. DataFairy es una aplicación desarrollada por JFairy para que pueda acceder a nuestros datos falsos sin tener que aprender a codificar primero. Los datos se presentan en una ordenada interfaz de portátil. Para obtener más de un perfil falso, puede generar un nuevo perfil o exportar una lista masiva de hasta 100 perfiles a un archivo CSV. Es una forma fácil y gratuita de completar su software con datos válidos conectados lógicamente.

Nuestros planes para el futuro de DataFairy

DataFairy siempre se puede mejorar y agregar nuevas funciones. Además de nuestros propios esfuerzos, queremos ceñirnos a los inquilinos de la comunidad de código abierto. Seguimos solicitando nuevos idiomas que podamos agregar a nuestra lista y tenemos un proyecto de GitHub abierto. También nos encantaría que los usuarios eventualmente agreguen datos de muestra. Esto nos ayudará a construir una comunidad de participantes que ayudarán a DataFairy a crecer y ser más útil para más personas.

Ya sea que necesite descargar grandes lotes de datos validados lógicamente o simplemente quiera divertirse leyendo los perfiles que aparecen, consulte DataFairy.