Kā mūsu testa datu ģenerators padara viltus datus reālus

Nesen mēs izlaidām bezmaksas rīku DataFairy, kas ģenerē testa datus. Bet vispirms ļaujiet man pastāstīt jums par to, kā tas notika.

Šis ir stāsts par to, kā mēs jautru atvērtā pirmkoda blakusprojektu pārvēršām par kaut ko, kas izrādījies patiešām noderīgs.

Šeit nav runa par viltus ziņām vai masu mānīšanu. Bet fakts paliek fakts, ka izstrādātājiem, programmatūras testētājiem un patiešām ikvienam, kurš jebkad ir sniedzis demonstrāciju, viltoti dati ir ļoti svarīgi, un tos ir pārsteidzoši grūti izlīdzināt.

Mūsu stāsts ar viltotiem datiem sākas, kad mēs pirmo reizi izstrādājām savu SaaS rīku Devskiller. Tāpat kā visas lietojumprogrammas, arī mums bija vajadzīgi lietotāji. Šajā brīdī mēs pat nemeklējām maksas lietotājus. Mums vienkārši vajadzēja kandidātu profilus mūsu pieteikumam. Mums vajadzēja viltus datus, kas izskatījās reāli.

Mums bija nepieciešams testa datu ģenerators

Viltoti dati mums bija nepieciešami vairāku iemeslu dēļ:

1. Mums vajadzēja pārliecināties, vai mūsu sistēma darbojas

Tas nozīmēja, ka mums bija jāizveido vairāki dažādi manekenu profili, lai redzētu, vai sistēma tos pareizi uzglabā un parāda.

2. Mums vajadzēja pārdot savu produktu

Mums vajadzēja izveidot demonstrācijas mūsu pirmajiem potenciālajiem klientiem. Mēs vēlējāmies parādīt saviem klientiem, kā sistēma izskatīsies pēc 6 mēnešiem pēc simtiem kandidātu uzaicināšanas un testēšanas.

Mūsu pirmā doma bija meklēt pieejamu testa datu ģeneratoru. Bet problēma ir tā, ka datus ir grūti pārliecinoši viltot. Vienkārši pajautājiet šim puisim,

vai viņu,

Liela daļa datu tiek apstiprināti algoritmiski

Ja pārliecinošus datus būtu viegli iegūt, mums, iespējams, nebūtu vajadzīgs rīks. Bet datu ģenerēšana var būt sarežģīta vairāku iemeslu dēļ.

Viltoti dati ir vairāk nekā tikai nejauši skaitļi. Veikt kredītkartes numura piemēru. Lielākā daļa kredītkaršu numuru ir balstīti uz tā saukto Luhn algoritmu. Lai to izskaidrotu, izmantosim Visa kartes piemēru:

Kā pārbaudīt, vai kredītkartes numurs ir derīgs

Pirms sākat, ir svarīgi zināt, ka visi Visa kartes numuri sākas ar 4. Turklāt tiem visiem ir vai nu 16, vai 13 cipari.

Paņemiet šo Visa kartes numuru:

Pirmā lieta, kas jums jādara, lai pārliecinātos, vai varat apstiprināt numuru, ir divkāršot ciparus, kas mainās, sākot ar pirmo ciparu secībā.

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

Ja divkāršojot tikko paveikto, tiek iegūts skaitlis ar diviem cipariem, pievienojiet tos kopā, lai iegūtu vienciparu skaitli.

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

Pēc tam jums jāatgriežas pie sākotnējā kredītkartes numura un jāaizstāj cipari, ar kuriem divkāršojāt jauno vērtību.

8554885405652537

Tā var būt vai nu divkāršā vērtība, vai arī vērtību tabula ar cipariem, kas saskaitīti kopā. Tagad pievienojiet to visu.

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

Pēc tam pārbaudiet, vai summa vienmērīgi dalās ar 10. Šajā gadījumā tā ir, tāpēc skaitlis ir derīgs.

Jums ir nepieciešams sava veida skaitļošanas algoritms, lai kredītkaršu numurus varētu validēt mērogā. Taču kredītkaršu numuri ir samērā vienkārši pareizi. Mums vajadzēja ne tikai atsevišķus pārbaudāmus datus, bet arī veselus profilus.

Pārbaudāmiem profiliem nepieciešami dažāda veida dati, kas loģiski saistīti viens ar otru

Kredītkaršu numurus ir salīdzinoši viegli ģenerēt, jo tie attiecas tikai uz viņiem pašiem. Bet personas kods bieži attiecas uz citām lietām par personu. Paņemiet Zviedrijas personas kodu, ko praktiski sauc par personnummer.

Tiem no jums, kas nezina, personālizstrādātāji ir paredzēti nodokļu maksāšanai, līdzīgi kā Amerikas sociālās apdrošināšanas numurs. Bet tos izmanto arī kā veidu, kā piekļūt tādiem pakalpojumiem kā veselības aprūpe un skolas, kā arī nevalstiskiem pakalpojumiem, piemēram, kredītreitingiem.

Personnummer formāts ir nedaudz atšķirīgs no kredītkartes. Tas ir 10 ciparu skaitlis, kas sadalīts sešciparu sekcijā un četrciparu sekcijā, kuru savieno defise.

Foršs fakts: zviedri, kas vecāki par 100 gadiem, sava personīgā vasaras defisi aizstāj ar plus zīmi.

Pirmie seši cipari personīgajā vasarā ir vienkārši un atbilst personas dzimšanas dienai, izmantojot YYMMDD formātu. No otrās četrciparu sadaļas pirmie trīs ir sērijas numurs. Trešais sērijas cipars vīriešiem un pat sievietēm ir nepāra. Pēdējais skaitlis ir kontrolsummas cipars.

Tātad, ja jūs lietojat personīgo gadu:

601128–9235

Jūs zināt, ka tas ir domāts vīrietim, kurš dzimis 1960. gada 28. novembrī.

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

Lai aprēķinātu kontrolsummu, reiziniet atsevišķos ciparus identitātes numurā ar atbilstošajiem cipariem skaitlī 212121–212.

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

Tāpat kā ar iepriekš minēto Visa karti, ja kāda no šiem skaitļiem reizinājums rada divciparu skaitli, vienkārši saskaitiet abus ciparus kopā.

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

Pievienojiet visus pārējos produktus kopā.

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

Lai iegūtu kontrolsummas ciparu, no 10 atņemiet pievienoto produktu pēdējo ciparu (izņēmums ir tāds, ka, ja pēdējais cipars ir nulle, kontrolsumma ir arī nulle).

10–5=5

Tātad, ja jūs gatavojaties ģenerēt šīs personas profilu, tas nevar būt sieviete, kura dzimusi 1916. gada 10. aprīlī. Viņas personai jābūt kādai līdzīgai: 160410 + 1244. Citiem vārdiem sakot, jūs nevarētu vienkārši nākt klajā ar nejaušu skaitli un sagaidīt, ka tas darbosies ar jebkuru jūsu izveidoto viltus profilu.

Mums bija nepieciešami loģiski testa dati

Dati būtu savstarpēji jāsaista loģiskā veidā, jo personāla skaitītājs nav vienīgais datu gabals, kas balstīts uz ārēju informāciju. Lielākā daļa identifikācijas numuru veidu kaut kādā veidā attiecas uz citu informāciju. Mēs vienkārši nevarējām atrast testa datu ģeneratoru, kas to darītu, tāpēc mēs nolēmām izveidot savu. Izskatās, ka mums nebija vienīgo, kam bija šāda problēma.

JFairy

Kā atvērtā pirmkoda kopienas pastāvīgie līdzstrādnieki nolēmām, ka labākais veids, kā ģenerēt nepieciešamos testa datus, ir izveidot savu bibliotēku. Saukts par JFairy, mūsu mērķis bija, lai tas ģenerētu datu kopas, kuras visas būtu pārbaudāmas un loģiski saistītas.

Tādā veidā mēs varētu papildināt mūsu lietotni ar lietotājiem. Mūsu lietotāju dati nevarēja būt neķītri, ne arī tos nevarēja attiecināt. Tāpēc mēs nodibinājām bibliotēku darbā, un tā darbojās labāk, nekā varējām gaidīt. Tas pat laiku pa laikam ģenerē reālus cilvēkus. Mēs to uzzinājām, jo ​​izmantojām Gravatar, lai parādītu kandidātu attēlus. Mēs bijām pārsteigti, kad mūsu testa kontā parādījās īsta fotogrāfija.

Tas bija patiešām noderīgi, kad mēs sākām iepirkties ap mūsu lietotni. Mēs platformā vēlējāmies parādīt uzņēmuma klientiem kontu ar 300 dažādiem testa kandidātiem. Ja mēs nebūtu uzbūvējuši JFairy, iespējams, mēs visi pāris reizes būtu mēģinājuši lietotni izmantot, taču komandā bijām tikai pieci. Būtu nepraktiski, ja mēs pieci izdomātu 300 loģiski savienotus viltus profilus.

JFairy ģenerētie dati izrādījās tik pārliecinoši, ka jaunie klienti bija neizpratnē par to, kur mēs visus šos cilvēkus esam izmēģinājuši. Patiesībā viņi mums jautāja, vai mēs varētu viņiem palīdzēt iegūt jaunus izstrādātājus, jo nepārprotami mēs sazinājāmies ar vairākiem cilvēkiem, kuriem ir tehniska pieredze, no kuriem dažiem faktiski bija apstiprinātas prasmes.

Mums vajadzēja ļaut atvērtā koda kopienai ieskatīties JFairy

Mēs sapratām, ka tas kļūst par kaut ko lielāku par mums pašiem, tāpēc nolēmām nodot sistēmu atklātā pirmkoda. Pirmais iemesls ir tas, ka mēs visi esam dedzīgi atvērtā koda lietotāji. Mēs zinām, ka ir svarīgi atdot šai kopienai, lai saņemtu lietas pretī. Bet papildus tam atklātais kods var radīt reālus ieguvumus produktam. Izvietojot mūsu projektu tur, lai to apskatītu vairāki dažādi izstrādātāji, mēs varam iegūt dažas jaunas idejas, kuras mēs nekad nebūtu apsvēruši.

Nozīmīgākais ieguldījums bija jaunu valodu iekļaušana. Mēs tikai izveidojām JFairy, lai ģenerētu datus angliski runājošajiem un poļu valodā runājošajiem. Galu galā mūs diezgan ierobežo labi zināmās valodas. Bet, protams, tas varētu būt noderīgs rīks cilvēkiem no jebkura skaita dažādu valstu. Izmantojot atvērtā pirmkoda ieguldījumu, mēs esam spējuši pievienot atbalstu datiem spāņu, franču, vācu, zviedru un ķīniešu valodā.

Mēs arī sapratām, ka, lai gan mēs sasniedzam lielu lietotāju grupu programmatūras izstrādātājos, Jfairy bija lietojumprogrammas, kas pārsniedz kopienu, kuras locekļi zina, kā kodēt. Tāpēc mēs nolēmām balstīties uz bibliotēkas panākumiem un izveidot lietotni, kas varētu atbalstīt tās izmantošanu vairākām lietojumprogrammām un vairāk cilvēku.

Datu feja ļauj ikvienam piekļūt viltotiem datiem

JFairy izrādījās ļoti noderīgs izstrādātājiem, kuri zināja, kā kodēt, taču viņi nebija vienīgie cilvēki, kas izmantoja JFairy radītos datus. Programmatūras testētājiem jāspēj aizpildīt savas sistēmas, lai redzētu, vai viņi strādā. Pārdevējiem un tirgotājiem ir nepieciešami dati, lai viņu demonstrācijas izskatās reāli. Lai padarītu JFairy noderīgu lielākajai daļai cilvēku, mums nācās padarīt tā viltus datus viegli pieejamus.

Paturot prātā šo mērķi, mēs izveidojām DataFairy. DataFairy ir lietotne, ko nodrošina JFairy, lai jūs varētu piekļūt mūsu viltus datiem, vispirms nemācoties kodēt. Dati tiek parādīti glītā piezīmjdatora saskarnē. Lai iegūtu vairāk nekā vienu viltotu profilu, varat vai nu ģenerēt jaunu profilu, vai eksportēt uz CSV failu lielapjoma sarakstu ar ne vairāk kā 100 profiliem. Tas ir bezmaksas un vienkāršs veids, kā aizpildīt programmatūru ar loģiski saistītiem derīgiem datiem.

Mūsu plāni attiecībā uz DataFairy nākotni

DataFairy vienmēr var uzlabot, un tam var pievienot jaunas funkcijas. Papildus mūsu pašu centieniem mēs vēlamies palikt pie atvērtā pirmkoda kopienas īrniekiem. Mēs turpinām lūgt jaunas valodas, kuras varam pievienot savam sarakstam, un mums ir atvērts GitHub projekts. Mēs arī vēlētos, lai lietotāji galu galā pievienotu datu paraugus. Tas mums palīdzēs izveidot dalībnieku kopienu, kas palīdzēs DataFairy augt un kļūt noderīgākam vairāk cilvēku.

Neatkarīgi no tā, vai jums ir nepieciešams lejupielādēt lielas loģiski apstiprinātu datu partijas vai vienkārši vēlaties izklaidēties, lasot uznirstošos profilus, skatiet DataFairy.