Wie unser Testdatengenerator gefälschte Daten real aussehen lässt

Wir haben kürzlich DataFairy veröffentlicht, ein kostenloses Tool, das Testdaten generiert. Aber zuerst möchte ich Ihnen die Geschichte erzählen, wie es dazu kam.

Dies ist die Geschichte, wie wir aus einem lustigen Open-Source-Projekt etwas gemacht haben, das sich als sehr nützlich erwiesen hat.

Hier geht es nicht um falsche Nachrichten oder das Betrügen der Massen. Es bleibt jedoch die Tatsache, dass für Entwickler, Softwaretester und wirklich jeden, der jemals eine Demo gegeben hat, gefälschte Daten unerlässlich sind und es überraschend schwierig ist, sie auf den Kopf zu stellen.

Unsere Geschichte mit gefälschten Daten beginnt mit der Entwicklung unseres SaaS-Tools Devskiller. Wie alle Anwendungen brauchten wir Benutzer. Wir haben zu diesem Zeitpunkt noch nicht einmal nach zahlenden Benutzern gesucht. Wir brauchten nur Kandidatenprofile für unsere Bewerbung. Was wir brauchten, waren Dummy-Daten, die echt aussahen.

Wir brauchten einen Testdatengenerator

Wir brauchten aus mehreren Gründen gefälschte Daten:

1. Wir mussten sehen, ob unser System funktioniert

Dies bedeutete, dass wir eine Reihe verschiedener Dummy-Profile erstellen mussten, um festzustellen, ob das System sie korrekt gespeichert und angezeigt hatte.

2. Wir mussten unser Produkt verkaufen

Wir mussten Demos für unsere ersten potenziellen Kunden erstellen. Wir wollten unseren Kunden zeigen, wie das System nach 6 Monaten Einladung und Test von Hunderten von Kandidaten aussehen würde.

Unser erster Gedanke war, nach einem verfügbaren Testdatengenerator zu suchen. Das Problem ist jedoch, dass es schwierig ist, Daten überzeugend zu fälschen. Fragen Sie einfach diesen Kerl,

oder er,

Viele Daten werden algorithmisch validiert

Wenn es einfach wäre, überzeugende Daten zu erstellen, würden wir wahrscheinlich kein Tool benötigen. Das Generieren von Daten kann jedoch aus mehreren Gründen schwierig sein.

Gefälschte Daten sind mehr als nur Zufallszahlen. Nehmen Sie das Beispiel einer Kreditkartennummer. Die meisten Kreditkartennummern basieren auf einem sogenannten Luhn-Algorithmus. Um dies zu erklären, verwenden wir das Beispiel einer Visa-Karte:

So überprüfen Sie, ob eine Kreditkartennummer gültig ist

Bevor Sie beginnen, ist es wichtig zu wissen, dass alle Visa-Kartennummern mit einer 4 beginnen. Außerdem haben alle entweder 16 oder 13 Ziffern.

Nehmen Sie diese Visa-Kartennummer:

Das erste, was Sie tun müssen, um festzustellen, ob Sie die Nummer validieren können, ist, die abwechselnden Ziffern zu verdoppeln, beginnend mit der ersten Ziffer in der Sequenz.

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

Wenn die soeben durchgeführte Verdoppelung zu einer zweistelligen Zahl führt, addieren Sie diese zu einer einstelligen Zahl.

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

Sie müssen dann zur ursprünglichen Kreditkartennummer zurückkehren und die Ziffern ersetzen, mit denen Sie den neuen Wert verdoppelt haben.

8554885405652537

Dies kann entweder der Doppelwert oder die Wertetabelle sein, bei der die Ziffern addiert werden. Nun addieren Sie alles.

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

Überprüfen Sie dann, ob die Summe gleichmäßig durch 10 teilbar ist. In diesem Fall ist die Zahl gültig.

Sie benötigen eine Art Berechnungsalgorithmus, um Kreditkartennummern im Maßstab zu validieren. Kreditkartennummern sind jedoch relativ einfach zu ermitteln. Wir brauchten nicht nur einzelne überprüfbare Daten, sondern ganze Profile.

Überprüfbare Profile benötigen verschiedene Arten von Daten, die sich logisch aufeinander beziehen

Kreditkartennummern sind relativ einfach zu generieren, da sie sich nur auf sich selbst beziehen. Aber persönliche Identitätsnummern beziehen sich oft auf andere Dinge über eine Person. Nehmen Sie die schwedische persönliche Identifikationsnummer, die praktisch als Personennummer bezeichnet wird.

Für diejenigen unter Ihnen, die es nicht wissen, sind Personnummers für die Zahlung von Steuern konzipiert, ähnlich einer amerikanischen Sozialversicherungsnummer. Sie werden aber auch als Zugang zu Diensten wie Gesundheitswesen und Schulen sowie zu nichtstaatlichen Diensten wie Kreditratings verwendet.

Das Format einer Personennummer unterscheidet sich geringfügig von dem einer Kreditkarte. Es ist eine 10-stellige Zahl, die in einen sechsstelligen Abschnitt und einen vierstelligen Abschnitt unterteilt ist, die durch einen Bindestrich verbunden sind.

Coole Tatsache: Schweden über 100 ersetzen den Bindestrich in ihrer Personennummer durch ein Pluszeichen.

Die ersten sechs Ziffern in der Personennummer sind einfach und entsprechen dem Geburtstag der Person im YYMMDD-Format. Von dem zweiten 4-stelligen Abschnitt sind die ersten drei eine Seriennummer. Die dritte Ziffer der Seriennummer ist für Männer ungerade und für Frauen gerade. Die letzte Zahl ist eine Prüfsummenziffer.

Also, wenn Sie die Personennummer nehmen:

601128–9235

Sie wissen, dass es für einen Mann ist, der am 28. November 1960 geboren wurde.

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

Um die Prüfsumme zu berechnen, multiplizieren Sie die einzelnen Ziffern in der Identitätsnummer mit den entsprechenden Ziffern in der Nummer 212121–212.

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

Wie bei der obigen Visa-Karte addieren Sie einfach die beiden Ziffern, wenn das Produkt einer dieser Zahlen eine zweistellige Zahl ergibt.

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

Fügen Sie alle verbleibenden Produkte zusammen.

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

Um die Prüfsummenziffer zu erhalten, subtrahieren Sie die letzte Ziffer der hinzugefügten Produkte von 10 (die Ausnahme ist, dass die Prüfsumme ebenfalls Null ist, wenn die letzte Ziffer Null ist).

10–5=5

Wenn Sie also ein Profil dieser Person erstellen würden, könnte es sich nicht um eine Frau handeln, die am 10. April 1916 geboren wurde. Ihre Personennummer müsste ungefähr so ​​lauten: 160410 + 1244. Mit anderen Worten, Sie konnten nicht einfach eine Zufallszahl finden und erwarten, dass sie mit jedem gefälschten Profil funktioniert, das Sie erstellt haben.

Wir brauchten logische Testdaten

Die Daten müssten auf logische Weise miteinander in Beziehung stehen, da die Personennummer nicht das einzige Datenelement ist, das auf externen Informationen basiert. Die meisten Arten von Identifikationsnummern beziehen sich in irgendeiner Weise auf andere Informationen. Wir konnten einfach keinen Testdatengenerator finden, der dies tun würde, und beschlossen, unseren eigenen zu bauen. Es sieht so aus, als wären wir nicht die einzigen, die dieses Problem haben.

JFairy

Als regelmäßige Mitwirkende der Open Source-Community haben wir beschlossen, dass der beste Weg, um die benötigten Testdaten zu generieren, darin besteht, eine eigene Bibliothek zu erstellen. Unser Ziel, JFairy genannt, war es, Datensätze zu generieren, die alle überprüfbar und logisch miteinander verbunden waren.

Auf diese Weise können wir unsere App mit Benutzern füllen. Unsere Benutzerdaten könnten kein Kauderwelsch sein oder sie könnten nicht unterstellt werden. Also haben wir die Bibliothek in Betrieb genommen und sie lief besser als erwartet. Es erzeugt sogar von Zeit zu Zeit echte Menschen. Wir haben das herausgefunden, weil wir Gravatar verwendet haben, um die Kandidatenbilder zu zeigen. Wir waren überrascht, als ein echtes Foto auf unserem Testkonto erschien.

Dies war sehr nützlich, als wir anfingen, in unserer App einzukaufen. Wir wollten Unternehmenskunden ein Konto mit 300 verschiedenen Testkandidaten auf der Plattform zeigen. Wenn wir JFairy nicht erstellt hätten, hätten wir vielleicht alle ein paar Mal versucht, die App zu verwenden, aber wir waren nur zu fünft im Team. Es wäre für uns fünf unpraktisch gewesen, 300 logisch verbundene gefälschte Profile zu erstellen.

Die von JFairy generierten Daten erwiesen sich als so überzeugend, dass neue Kunden verwirrt waren, wo wir all diese Leute zum Testen gebracht hatten. Tatsächlich fragten sie uns, ob wir ihnen bei der Suche nach neuen Entwicklern helfen könnten, da wir eindeutig Kontakt zu einer Reihe von Personen mit technischem Hintergrund hatten, von denen einige tatsächlich validierte Fähigkeiten hatten.

Wir mussten der Open Source-Community einen Blick auf JFairy werfen

Wir stellten fest, dass dies etwas Größeres als wir selbst wurde, und beschlossen, das System auf Open Source zu stellen. Der erste Grund ist, dass wir alle begeisterte Benutzer von Open Source Code sind. Wir wissen, dass es wichtig ist, dieser Gemeinschaft etwas zurückzugeben, um eine Gegenleistung zu erhalten. Darüber hinaus kann Open Source dem Produkt echte Vorteile bringen. Indem wir unser Projekt so veröffentlichen, dass eine Reihe verschiedener Entwickler es sich ansehen können, können wir einige neue Ideen erhalten, die wir niemals in Betracht gezogen hätten.

Die bemerkenswertesten Beiträge waren die Aufnahme neuer Sprachen. Wir haben JFairy nur entwickelt, um Daten für Englisch- und Polnischsprachige zu generieren. Schließlich sind wir durch die Sprachen, die wir gut kennen, eher eingeschränkt. Aber natürlich könnte es ein nützliches Werkzeug für Menschen aus einer beliebigen Anzahl verschiedener Länder sein. Durch Open Source-Beiträge konnten wir Unterstützung für Daten in Spanisch, Französisch, Deutsch, Schwedisch und Chinesisch hinzufügen.

Wir haben auch festgestellt, dass Jfairy zwar eine große Gruppe von Benutzern in Softwareentwicklern erreicht, aber Anwendungen hat, die weit über eine Community hinausgehen, deren Mitglieder wissen, wie man programmiert. Deshalb haben wir uns entschlossen, auf dem Erfolg der Bibliothek aufzubauen und eine App zu erstellen, die ihre Verwendung für mehr Anwendungen und mehr Menschen unterstützen kann.

Mit Data Fairy hat jeder Zugriff auf gefälschte Daten

JFairy erwies sich als äußerst nützlich für Entwickler, die wissen, wie man programmiert, aber sie waren nicht die einzigen, die die von JFairy generierten Daten verwenden würden. Software-Tester müssen in der Lage sein, ihre Systeme zu füllen, um zu sehen, ob sie funktionieren. Verkäufer und Vermarkter benötigen Daten, damit ihre Demos realistisch aussehen. Um JFairy für die meisten Menschen nützlich zu machen, mussten wir den Zugriff auf gefälschte Daten vereinfachen.

Zu diesem Zweck haben wir DataFairy entwickelt. DataFairy ist eine App von JFairy, mit der Sie auf unsere gefälschten Daten zugreifen können, ohne vorher das Codieren lernen zu müssen. Die Daten werden in einer übersichtlichen Notebook-Oberfläche dargestellt. Um mehr als ein gefälschtes Profil zu erhalten, können Sie entweder ein neues Profil erstellen oder eine Massenliste mit bis zu 100 Profilen in eine CSV-Datei exportieren. Es ist eine kostenlose und einfache Möglichkeit, Ihre Software mit logisch verbundenen gültigen Daten zu füllen.

Unsere Pläne für die Zukunft von DataFairy

DataFairy kann jederzeit verbessert und um neue Funktionen erweitert werden. Zusätzlich zu unseren eigenen Bemühungen möchten wir uns an die Mieter der Open-Source-Community halten. Wir fordern weiterhin neue Sprachen an, die wir unserem Dienstplan hinzufügen können, und wir haben ein offenes GitHub-Projekt. Wir würden uns auch freuen, wenn Benutzer schließlich Beispieldaten hinzufügen. Dies wird uns helfen, eine Community von Teilnehmern aufzubauen, die DataFairy dabei unterstützen, zu wachsen und für mehr Menschen nützlicher zu werden.

Egal, ob Sie große Mengen logisch validierter Daten herunterladen müssen oder einfach nur Spaß beim Lesen der angezeigten Profile haben möchten, lesen Sie DataFairy.