de Tom Winter

Cum generatorul nostru de date de testare face ca datele false să pară reale

Cum generatorul nostru de date de testare face ca datele
Fotografie de Buzz Andersen pe Unsplash

Am lansat recent DataFairy, un instrument gratuit care generează date de testare. Dar mai întâi, permiteți-mi să vă povestesc cum a apărut.

Aceasta este povestea modului în care am transformat un proiect distractiv open source în ceva care sa dovedit a fi cu adevărat util.

Nu este vorba despre știri false sau păcălirea maselor. Dar rămâne faptul că, pentru dezvoltatori, testeri de software și, oricine, care a dat vreodată o demonstrație, datele false sunt esențiale și este surprinzător de dificil să te compensezi.

Povestea noastră cu date false începe înapoi când am dezvoltat pentru prima dată instrumentul nostru SaaS, Devskiller. Ca toate aplicațiile, aveam nevoie de utilizatori. Nici măcar nu căutam utilizatori plătitori în acest moment. Aveam nevoie doar de profiluri de candidați pentru aplicația noastră. Aveam nevoie de date fictive care păreau reale.

ad-banner

Aveam nevoie de un generator de date de testare

Aveam nevoie de date false din câteva motive:

1. Trebuia să vedem dacă sistemul nostru funcționa

Acest lucru a însemnat că trebuie să construim un număr de profiluri fictive diferite pentru a vedea dacă sistemul le stochează și le afișează corect.

2. Aveam nevoie să ne vindem produsul

Trebuia să facem demonstrații pentru primii noștri clienți potențiali. Am vrut să le arătăm clienților noștri cum ar arăta sistemul după 6 luni de invitație și testare a sute de candidați.

Primul nostru gând a fost să căutăm un generator de date de testare disponibil. Dar problema este că datele sunt greu de falsificat în mod convingător. Întreabă-l pe tipul ăsta,

sau el,

O mulțime de date sunt validate algoritmic

Dacă ar fi ușor să obținem date convingătoare, probabil că nu am avea nevoie de un instrument. Dar generarea de date poate fi dificilă din câteva motive.

Datele false sunt mai mult decât numere aleatorii. Luați exemplul unui număr de card de credit. Majoritatea numerelor cardurilor de credit se bazează pe ceva numit a Algoritmul Luhn. Pentru a explica acest lucru, vom folosi exemplul unui card Visa:

0*K5n41Cr9qmjfLHN6
Fotografie de Dom J din Pexels

Cum să verificați dacă un număr de card de credit este valid

Înainte de a începe, este important să știți că toate numerele cardului Visa încep cu un 4. De asemenea, toate au 16 sau 13 cifre.

Luați acest număr de card Visa:

0*KcSus6ZmvPhsKWnS
Sursă: Reacționează cardurile de credit

Primul lucru pe care trebuie să-l faceți pentru a vedea dacă puteți valida numărul este să dublați cifrele alternative începând cu prima cifră din secvență.

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

Dacă dublarea pe care tocmai ați făcut-o are ca rezultat un număr cu două cifre, adăugați-le împreună pentru a obține un număr dintr-o singură cifră.

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

Apoi, trebuie să reveniți la numărul original al cardului de credit și să înlocuiți cifrele care au dublat noua valoare.

8554885405652537

Aceasta poate fi fie valoarea dublurilor, fie tabelul de valori cu cifrele adunate împreună. Acum adăugați totul.

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

Și apoi verificați dacă suma este divizibilă uniform cu 10. În acest caz este, deci numărul este valid.

Aveți nevoie de un fel de algoritm de calcul pentru a valida numerele cardurilor de credit la scară. Dar numerele cardurilor de credit sunt date relativ ușor de corectat. Nu aveam nevoie doar de piese individuale de date verificabile, aveam nevoie de profiluri întregi.

Profilurile verificabile au nevoie de diferite tipuri de date care se raportează logic unul la altul

Numerele cardurilor de credit sunt relativ ușor de generat, deoarece se referă doar la ele însele. Dar numerele de identitate personală se referă adesea la alte lucruri despre o persoană. Luați numărul de identitate personală suedez, numit practic personnummer.

0*Kkq3ODgzKa7BlQp0
Fotografie de Jonathan Brinkhorst pe Unsplash: Suedia este o țară practică

Pentru cei dintre voi care nu știu, personnumerii sunt concepuți pentru plata impozitelor, ca un număr american de securitate socială. Dar sunt folosite și ca o modalitate de a accesa servicii precum asistența medicală și școli, precum și servicii neguvernamentale, cum ar fi ratingurile de credit.

Formatul unei persoane de vară este ușor diferit de cel al unui card de credit. Este un număr de 10 cifre împărțit într-o secțiune din șase cifre și o secțiune din patru cifre conectate printr-o cratimă.

Fapt interesant: suedezii cu vârsta peste 100 de ani înlocuiesc cratima din varful lor personal cu un semnul plus.

Primele șase cifre din personnummer sunt simple și corespund zilei de naștere a persoanei folosind un format YYMMDD. Din a doua secțiune cu 4 cifre, primele trei sunt un număr de serie. A treia cifră a numărului de serie este impar pentru bărbați și pare pentru femei. Ultimul număr este o cifră de sumă de control.

Deci, dacă luați personnummer:

601128–9235

Știți că este pentru un bărbat născut pe 28 noiembrie 1960.

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

Pentru a calcula suma de control, înmulțiți cifrele individuale din numărul de identitate cu cifrele corespunzătoare din numărul 212121–212.

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

La fel ca în cazul cardului Visa de mai sus, dacă produsul oricăruia dintre aceste numere are ca rezultat un număr din două cifre, pur și simplu adăugați cele două cifre împreună.

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

Adăugați împreună toate produsele rămase.

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

Pentru a obține cifra de control, scădeți ultima cifră a produselor adăugate din 10 (excepția este că, dacă ultima cifră este zero, suma de control este, de asemenea, zero).

10–5=5

Așadar, dacă ai genera un profil al acestei persoane, nu ar putea fi vorba despre o femeie născută pe 10 aprilie 1916. Numărul ei personal ar trebui să fie ceva de genul: 160410 + 1244. Cu alte cuvinte, nu ați putea veni doar cu un număr aleatoriu și să vă așteptați să funcționeze cu orice profil fals pe care l-ați generat.

Aveam nevoie de date logice de testare

Datele ar trebui să se raporteze între ele într-un mod logic, deoarece persoana numită nu este singura bucată de date care se bazează pe informații externe. Majoritatea tipurilor de numere de identificare se referă într-un fel la alte informații. Pur și simplu nu am putut găsi un generator de date de test care să facă asta, așa că am decis să ne construim propriul. Se pare că nu am fost singurii care au această problemă.

JFairy

În calitate de colaboratori obișnuiți ai comunității open source, am decis că cel mai bun mod de a genera datele de testare de care aveam nevoie era să ne construim propria bibliotecă. Chemat JFairy, obiectivul nostru era ca acesta să genereze seturi de date care erau toate verificabile și conectate logic.

În acest fel, am putea popula aplicația noastră cu utilizatori. Datele utilizatorilor noștri nu ar putea fi blestemate sau altfel nu ar putea fi imputate. Așa că am pus biblioteca să funcționeze și a funcționat mai bine decât ne-am fi putut aștepta. Din când în când, chiar generează oameni adevărați. Am aflat acest lucru pentru că am folosit Gravatar pentru a arăta imaginile candidatului. Am fost surprinși când a apărut o fotografie reală pe contul nostru de testare.

0*6llBF0wPjlBrVGm8
Sursă: Tenor

Acest lucru a fost foarte util atunci când am început să cumpărăm în jurul aplicației noastre. Am vrut să le arătăm clienților de întreprindere un cont cu 300 de candidați de testare diferiți pe platformă. Dacă nu am fi construit JFairy, am fi încercat cu toții să folosim aplicația de câteva ori, dar am fost doar cinci în echipă. Nu ar fi fost practic pentru noi cinci să venim cu 300 de profile false conectate logic.

Datele generate de JFairy s-au dovedit a fi atât de convingătoare, încât clienții noi au fost nedumeriți cu privire la locul unde am ajuns să testăm toți acești oameni. De fapt, ei ne-au întrebat dacă îi putem ajuta cu aprovizionarea cu noi dezvoltatori, deoarece în mod clar am fost în legătură cu o serie de oameni care au experiență tehnică, dintre care unii aveau de fapt abilități validate.

Trebuia să lăsăm comunitatea open source să arunce o privire asupra JFairy

Ne-am dat seama că acest lucru devenea ceva mai mare decât noi, așa că am decis să punem sistemul în sursă deschisă. Primul motiv este că suntem cu toții utilizatori pasionați de cod sursă deschisă. Știm că este important să dăm înapoi acelei comunități pentru a obține lucrurile în schimb. În plus, open source poate aduce beneficii reale produsului. Punând proiectul nostru acolo, astfel încât un număr de dezvoltatori diferiți să poată arunca o privire asupra acestuia, putem obține câteva idei noi pe care nu le-am fi luat în considerare niciodată.

Cele mai notabile contribuții au fost includerea de noi limbi. Am creat JFairy doar pentru a genera date pentru vorbitorii de engleză și vorbitori de poloneză. La urma urmei, suntem destul de limitați de limbile pe care le cunoaștem bine. Dar, desigur, ar putea fi un instrument util pentru oameni din orice număr de țări diferite. Prin contribuții open source, am putut adăuga suport pentru date în spaniolă, franceză, germană, suedeză și chineză.

De asemenea, ne-am dat seama că, în timp ce ajungem la un grup mare de utilizatori în cadrul dezvoltatorilor de software, Jfairy avea aplicații mult dincolo de o comunitate ai cărei membri știu să codeze. Așa că am decis să ne bazăm pe succesul bibliotecii și să creăm o aplicație care ar putea sprijini utilizarea acesteia pentru mai multe aplicații și mai mulți oameni.

Data Fairy oferă tuturor acces la date false

JFairy s-a dovedit a fi foarte util pentru dezvoltatorii care știau să codeze, dar nu au fost singurii oameni care ar folosi datele generate de JFairy. Testerii software trebuie să poată să-și completeze sistemele pentru a vedea dacă funcționează. Agenții de vânzări și specialiștii în marketing au nevoie de date pentru ca demonstrațiile să pară realiste. Pentru a face JFairy util celor mai mulți oameni, a trebuit să facem accesul la datele sale false.

0*rPmzovhZ6hMsNbfS

Având în vedere acest obiectiv, am construit DataFairy. DataFairy este o aplicație dezvoltată de JFairy, astfel încât să puteți accesa datele noastre false fără a trebui să învățați să codificați mai întâi. Datele sunt prezentate într-o interfață de notebook elegantă. Pentru a obține mai multe profiluri false, puteți genera un profil nou sau puteți exporta o listă în bloc de până la 100 de profiluri într-un fișier CSV. Este o modalitate gratuită și ușoară de a completa software-ul dvs. cu date valide conectate logic.

0*vPgSlW63nRjOUYYF

Planurile noastre pentru viitorul DataFairy

DataFairy poate fi întotdeauna îmbunătățit și i se pot adăuga noi caracteristici. Pe lângă eforturile noastre, dorim să ne ținem de chiriașii comunității open source. Continuăm să solicităm limbi noi pe care le putem adăuga la lista noastră și avem un program deschis Proiectul GitHub. Ne-ar plăcea, de asemenea, ca utilizatorii să adauge, în cele din urmă, date eșantion. Acest lucru ne va ajuta să construim o comunitate de participanți care va ajuta DataFairy să crească și să devină mai util pentru mai mulți oameni.

Indiferent dacă trebuie să descărcați loturi mari de date validate logic sau pur și simplu doriți să vă distrați citind profilurile care apar, verificați DataFairy.