Kuidas meie katseandmete generaator võltsandmed reaalseks näeb

Hiljuti avaldasime tasuta andmed DataFairy, mis loob testandmeid. Kuid kõigepealt lubage mul teile rääkida lugu selle tekkimisest.

See on lugu sellest, kuidas me lõime lõbusa avatud lähtekoodiga kõrvalprojekti millekski, mis on osutunud tõeliselt kasulikuks.

See ei puuduta võltsuudiseid ega massi petmist. Kuid tõsi on see, et arendajatele, tarkvaratestijatele ja tegelikult kõigile, kes on kunagi demo teinud, on võltsandmed hädavajalikud ja neid on üllatavalt raske oma pealaest välja teha.

Meie võltsandmetega lugu algab tagasi, kui me esimest korda arendasime välja oma SaaS-i tööriista Devskiller. Nagu kõik rakendused, vajasime ka meie kasutajaid. Praegu ei otsinud me isegi tasulisi kasutajaid. Vajasime oma kandideerimiseks lihtsalt kandidaatide profiile. Vaja oli näivaid andmeid, mis tundusid tõelised.

Meil oli vaja testandmete generaatorit

Vaja oli võltsitud andmeid mitmel põhjusel:

1. Me pidime kontrollima, kas meie süsteem töötab

See tähendas, et meil oli vaja ehitada mitu erinevat mannekeeniprofiili, et näha, kas süsteem neid õigesti salvestas ja kuvas.

2. Meil ​​oli vaja oma toode maha müüa

Me pidime oma esimestele potentsiaalsetele klientidele demosid tegema. Tahtsime oma klientidele näidata, kuidas süsteem välja näeb pärast kuue kuu pikkust sadade kandidaatide kutsumist ja testimist.

Meie esimene mõte oli otsida saadaolevat testandmete generaatorit. Kuid probleem on selles, et andmeid on raske veenvalt võltsida. Küsige lihtsalt sellelt

või tema,

Palju andmeid valideeritakse algoritmiliselt

Kui veenvaid andmeid oli lihtne teha, ei vajaks me tõenäoliselt tööriista. Kuid andmete genereerimine võib olla keeruline mitmel põhjusel.

Võltsandmed on midagi enamat kui lihtsalt juhuslikud arvud. Võtke näiteks krediitkaardi number. Enamik krediitkaardinumbreid põhineb Luhni algoritmil. Selle selgitamiseks kasutame Visa kaardi näidet:

Kuidas kontrollida, kas krediitkaardi number on kehtiv

Enne alustamist on oluline teada, et kõik Visa kaardi numbrid algavad tähega 4. Samuti on neil kõigil kas 16 või 13 numbrit.

Võtke see Visa kaardi number:

Esimene asi, mida peate tegema, et näha, kas saate numbri kinnitada, on kahekordistada vahelduvaid numbreid, alustades järjestuse esimesest numbrist.

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

Kui kahekordistamine, mille olete just teinud, annab tulemuseks kahe numbriga numbri, lisage need kokku, et saada ühekohaline number.

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

Seejärel peate pöörduma tagasi krediitkaardi algse numbri juurde ja asendama arvud, mille kahekordistasite uue väärtuse.

8554885405652537

See võib olla kas kahekordne väärtus või väärtuste tabel koos numbritega. Nüüd liida see kõik kokku.

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

Ja siis kontrollige, kas summa jagub võrdselt 10-ga. Sellisel juhul on see nii, et number on kehtiv.

Krediitkaardinumbrite ulatuslikuks kinnitamiseks vajate mingisugust arvutusalgoritmi. Kuid krediitkaardinumbrid on suhteliselt lihtsad andmed. Me ei vajanud ainult üksikuid kontrollitavaid andmeid, vaid terveid profiile.

Kontrollitavad profiilid vajavad erinevat tüüpi andmeid, mis on omavahel loogiliselt seotud

Krediitkaardinumbreid on suhteliselt lihtne genereerida, sest need on seotud ainult iseendaga. Kuid isikukoodid on sageli seotud muude inimestega seotud asjadega. Võtke Rootsi isikukood, mida praktiliselt nimetatakse personnummeriks.

Neile teist, kes ei tea, on personnummers mõeldud maksude maksmiseks, umbes nagu Ameerika sotsiaalkindlustuse number. Kuid neid kasutatakse ka juurdepääsuks sellistele teenustele nagu tervishoid ja koolid, samuti valitsusvälistele teenustele, nagu krediidireitingud.

Inimeste suve vorming on krediitkaardil veidi erinev. See on kümnekohaline number, mis on jagatud sidekriipsuga ühendatud kuuekohaliseks ja neljakohaliseks osaks.

Lahe fakt: üle 100-aastased rootslased asendavad oma isikupühal sidekriipsu plussmärgiga.

Kuupäeva esimesed kuus numbrit on lihtsad ja vastavad inimese sünnipäevale, kasutades YYMMDD vormingut. Neljast teisest neljakohalisest jaotisest on kolm esimest seerianumber. Kolmas seerianumber on isastel ja isegi emastel paaritu. Viimane number on kontrollsumma.

Nii et kui võtate isikupidu, toimige järgmiselt.

601128–9235

Teate, et see on mõeldud 28. novembril 1960 sündinud mehele.

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

Kontrollsumma arvutamiseks korrutage üksikud numbrid identifitseerimisnumbris vastavate numbritega numbril 212121–212.

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

Täpselt nagu ülaltoodud Visa kaardi puhul, kui nende arvude korrutise tulemuseks on kahekohaline number, lisage need kaks numbrit lihtsalt kokku.

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

Lisage kõik ülejäänud tooted kokku.

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

Kontrollsumma numbri saamiseks lahutage 10-st lisatud toodete viimane number (erandiks on see, et kui viimane number on null, on kontrollsumma ka null).

10–5=5

Nii et kui kavatsete luua selle inimese profiili, ei saa see olla naine, kes on sündinud 10. aprillil 1916. Tema isikunäitaja peaks olema umbes selline: 160410 + 1244. Teisisõnu, te ei saanud lihtsalt välja mõelda juhuslikku arvu ja eeldada, et see töötab teie loodud võltsprofiiliga.

Meil oli vaja loogilisi testiandmeid

Andmed peaksid olema omavahel seotud loogilisel viisil, kuna inimene ei ole ainus välisteabe põhjal üles ehitatud osa. Enamik identifitseerimisnumbritüüpe on mingil viisil seotud muu teabega. Me lihtsalt ei leidnud testandmete generaatorit, mis seda teeks, nii et otsustasime ehitada oma. Tundub, et meil polnud ainsana seda probleemi.

JFairy

Avatud lähtekoodiga kogukonna regulaarsete kaasautoritena otsustasime, et parim viis vajalike testandmete loomiseks on oma raamatukogu loomine. Meie nimeks JFairy oli meie eesmärk luua kõik kontrollitavad ja loogiliselt ühendatud andmekogumid.

Nii saaksime oma rakenduse kasutajatega asustada. Meie kasutajaandmed ei saanud olla pirtsakad või muidu neid arvutada. Nii panime raamatukogu tööle ja see toimis paremini, kui oleksime osanud oodata. See genereerib aeg-ajalt isegi tõelisi inimesi. Saime sellest teada, sest kandidaatide piltide näitamiseks kasutasime Gravatarit. Olime üllatunud, kui meie testkontole ilmus tõeline foto.

See oli tõesti kasulik, kui hakkasime oma rakenduse ümbruses sisseoste tegema. Tahtsime näidata ettevõtte klientidele kontot, millel oli platvormil 300 erinevat testikandidaati. Kui me poleks JFairyt üles ehitanud, oleksime ehk kõik proovinud rakendust paar korda kasutada, kuid meeskonnas oli meid ainult viis. Viiekesi oleks olnud ebapraktiline välja mõelda 300 loogiliselt ühendatud võltsprofiili.

JFairy genereeritud andmed osutusid nii veenvaks, et uued kliendid olid hämmingus, kuhu me kõik need inimesed katsetama oleme viinud. Tegelikult küsisid nad meilt, kas saaksime neid aidata uute arendajate hankimisel, sest ilmselgelt olime ühenduses paljude tehnilise taustaga inimestega, kellest mõnel olid tegelikult kinnitatud oskused.

Me pidime laskma avatud lähtekoodiga kogukonnal JFairyle pilgu heita

Mõistsime, et sellest on saamas midagi suuremat kui meie ise, seega otsustasime süsteemi avatud lähtekoodiga välja panna. Esimene põhjus on see, et me kõik oleme avatud lähtekoodi innukad kasutajad. Me teame, et asjade eest vastutasuks on oluline sellele kogukonnale tagasi anda. Kuid lisaks sellele võib avatud lähtekood tootele reaalset kasu tuua. Paigutades oma projekti sinna, et mitmed erinevad arendajad saaksid sellele pilgu heita, võime saada uusi ideid, mida me poleks iial kaalunud.

Kõige tähelepanuväärsemad panused olid uute keelte kaasamine. JFairy ehitasime ainult selleks, et genereerida andmeid inglise ja poola keelt kõnelevate inimeste jaoks. Lõppude lõpuks on meid pigem piiratud keeled, mida me hästi tunneme. Kuid loomulikult võib see olla kasulik tööriist paljudest erinevatest riikidest pärit inimestele. Avatud lähtekoodiga kaastööde kaudu oleme suutnud lisada tuge andmetele hispaania, prantsuse, saksa, rootsi ja hiina keeles.

Mõistsime ka seda, et kuigi me jõuame tarkvaraarendajate suure kasutajagrupini, oli Jfairyl rakendusi, mis olid kaugemal kui kogukond, mille liikmed oskavad kodeerida. Niisiis otsustasime tugineda raamatukogu edule ja luua rakendus, mis toetaks selle kasutamist rohkemate rakenduste ja inimeste jaoks.

Andmehaldjas annab kõigile juurdepääsu võltsandmetele

JFairy osutus ülimalt kasulikuks arendajatele, kes oskasid kodeerida, kuid nad ei olnud seal ainsad inimesed, kes kasutaksid JFairy loodud andmeid. Tarkvara testijad peavad suutma oma süsteeme asustada, et näha, kas nad töötavad. Müüjad ja turundajad vajavad andmeid, et nende demod oleksid realistlikud. Et JFairy oleks kasulik enamikule inimestele, pidime selle võltsitud andmetele hõlpsasti juurde pääsema.

Seda eesmärki silmas pidades ehitasime DataFairy. DataFairy on JFairy toetud rakendus, nii et pääsete juurde meie võltsandmetele, ilma et peaksite enne kodeerimist õppima. Andmed esitatakse korralikus sülearvuti liideses. Rohkem kui ühe võltsprofiili saamiseks võite kas luua uue profiili või eksportida kuni 100 profiili hulgiloendi CSV-faili. See on tasuta ja lihtne viis oma tarkvara loogiliselt ühendatud kehtivate andmetega täitmiseks.

Meie plaanid DataFairy tulevikuks

DataFairyt saab alati täiustada ja sellele lisada uusi funktsioone. Lisaks enda jõupingutustele tahame jääda avatud lähtekoodiga kogukonna üürnike juurde. Pakume jätkuvalt uusi keeli, mida saame oma nimekirja lisada, ja meil on avatud GitHubi projekt. Samuti sooviksime, et kasutajad saaksid lõpuks lisada näidisandmed. See aitab meil luua osalejatest koosneva kogukonna, kes aitab DataFairy'l kasvada ja muutuda kasulikumaks paljudele inimestele.

Ükskõik, kas peate alla laadima suured partiid loogiliselt valideeritud andmeid või soovite lihtsalt lõbutsevate profiilide lugemisega lõbutseda, vaadake DataFairyt.