Bagaimana generator data pengujian kami membuat data palsu terlihat nyata

Kami baru-baru ini merilis DataFairy, alat gratis yang menghasilkan data pengujian. Tapi pertama-tama, izinkan saya menceritakan kisah tentang bagaimana hal itu terjadi.

Ini adalah kisah tentang bagaimana kami mengubah proyek sampingan sumber terbuka yang menyenangkan menjadi sesuatu yang ternyata sangat berguna.

Ini bukan tentang berita palsu atau menipu massa. Tetapi faktanya tetap bahwa bagi pengembang, penguji perangkat lunak, dan siapa pun yang pernah memberikan demo, data palsu sangat penting dan sangat sulit untuk dibuat-buat.

Kisah kami dengan data palsu dimulai saat kami pertama kali mengembangkan alat SaaS kami, Devskiller. Seperti semua aplikasi, kami membutuhkan pengguna. Kami bahkan tidak mencari pengguna berbayar saat ini. Kami hanya membutuhkan profil kandidat untuk aplikasi kami. Yang kami butuhkan adalah data dummy yang terlihat nyata.

Kami membutuhkan generator data uji

Kami membutuhkan data palsu karena beberapa alasan:

1. Kami perlu melihat apakah sistem kami berfungsi

Ini berarti bahwa kami perlu membuat sejumlah profil dummy yang berbeda untuk melihat apakah sistem menyimpan dan menampilkannya dengan benar.

2. Kami perlu menjual produk kami

Kami perlu melakukan demo untuk calon pelanggan pertama kami. Kami ingin menunjukkan kepada pelanggan kami seperti apa sistem itu setelah 6 bulan mengundang dan menguji ratusan kandidat.

Pikiran pertama kami adalah mencari generator data uji yang tersedia. Tetapi masalahnya adalah bahwa data sulit untuk dipalsukan secara meyakinkan. Tanya saja orang ini,

atau dia,

Banyak data yang divalidasi secara algoritmik

Jika mudah untuk membuat data yang meyakinkan, kita mungkin tidak membutuhkan alat. Namun menghasilkan data bisa jadi rumit karena beberapa alasan.

Data palsu lebih dari sekedar angka acak. Ambil contoh nomor kartu kredit. Kebanyakan nomor kartu kredit didasarkan pada sesuatu yang disebut algoritma Luhn. Untuk menjelaskan ini, kami akan menggunakan contoh kartu Visa:

Bagaimana cara memeriksa apakah nomor kartu kredit valid

Sebelum Anda mulai, penting untuk mengetahui bahwa semua nomor kartu Visa dimulai dengan 4. Selain itu, semuanya memiliki 16 atau 13 digit.

Ambil nomor kartu Visa ini:

Hal pertama yang perlu Anda lakukan untuk melihat apakah Anda dapat memvalidasi nomor tersebut adalah menggandakan digit bergantian yang dimulai dengan digit pertama dalam urutan.

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

Jika penggandaan yang baru saja Anda lakukan menghasilkan angka dengan dua digit, jumlahkan keduanya untuk mendapatkan satu digit angka.

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

Anda kemudian harus kembali ke nomor kartu kredit asli dan mengganti angka yang Anda gandakan dengan nilai baru.

8554885405652537

Ini bisa berupa nilai ganda atau tabel nilai dengan digit yang ditambahkan bersama-sama. Sekarang tambahkan semuanya.

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

Dan kemudian periksa untuk melihat apakah jumlahnya habis habis dibagi 10. Dalam hal ini, bilangan tersebut valid.

Anda memerlukan semacam algoritme komputasi untuk memvalidasi nomor kartu kredit dalam skala besar. Tetapi nomor kartu kredit adalah data yang relatif mudah didapat dengan benar. Kami tidak hanya membutuhkan bagian individu dari data yang dapat diverifikasi, kami membutuhkan seluruh profil.

Profil yang dapat diverifikasi membutuhkan jenis data berbeda yang berhubungan satu sama lain secara logis

Nomor kartu kredit relatif mudah dibuat, karena hanya berhubungan dengan dirinya sendiri. Tetapi nomor identitas pribadi seringkali berhubungan dengan hal-hal lain tentang seseorang. Ambil nomor identitas pribadi Swedia, yang secara praktis disebut personnummer.

Bagi Anda yang tidak tahu, personnummers dirancang untuk membayar pajak, seperti nomor Jaminan Sosial Amerika. Tetapi mereka juga digunakan sebagai cara untuk mengakses layanan seperti perawatan kesehatan dan sekolah serta layanan non-pemerintah seperti peringkat kredit.

Format personnummer sedikit berbeda dengan format kartu kredit. Ini adalah angka 10 digit yang dibagi menjadi bagian enam digit dan bagian empat digit dihubungkan dengan tanda hubung.

Fakta keren: Orang Swedia yang berusia di atas 100 tahun mengganti tanda hubung di personnummer mereka dengan tanda tambah.

Enam digit pertama pada personnummer itu sederhana dan sesuai dengan tanggal lahir orang tersebut menggunakan format YYMMDD. Dari 4 digit bagian kedua, tiga yang pertama adalah nomor seri. Digit nomor seri ketiga adalah angka ganjil untuk pria dan bahkan untuk wanita. Angka terakhir adalah digit checksum.

Jadi jika Anda mengambil personnummer:

601128–9235

Anda tahu itu untuk pria kelahiran 28 November 1960.

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

Untuk menghitung checksum, kalikan angka individu di nomor identitas dengan angka yang sesuai di nomor 212121–212.

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

Sama seperti dengan kartu Visa di atas, jika hasil perkalian dari salah satu nomor ini menghasilkan angka dua digit, cukup tambahkan kedua digit tersebut.

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

Tambahkan semua produk yang tersisa.

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

Untuk mendapatkan digit checksum, kurangi digit terakhir produk yang ditambahkan dari 10 (pengecualiannya adalah jika digit terakhir adalah nol, checksum juga nol).

10–5=5

Jadi, jika Anda ingin membuat profil orang ini, tidak mungkin profil wanita yang lahir pada 10 April 1916. Personnummernya harus seperti ini: 160410 + 1244. Dengan kata lain, Anda tidak bisa begitu saja menemukan nomor acak dan mengharapkannya berfungsi dengan sembarang profil palsu yang Anda buat.

Kami membutuhkan data uji logis

Data perlu berhubungan satu sama lain secara logis, karena personnummer bukanlah satu-satunya bagian data yang dibangun di atas informasi luar. Sebagian besar jenis nomor identifikasi berhubungan dengan informasi lain dalam beberapa hal. Kami tidak dapat menemukan generator data uji yang dapat melakukan itu, jadi kami memutuskan untuk membuatnya sendiri. Sepertinya bukan hanya kami yang mengalami masalah ini.

JFairy

Sebagai kontributor reguler komunitas open source, kami memutuskan bahwa cara terbaik untuk menghasilkan data pengujian yang kami butuhkan adalah dengan membangun perpustakaan kami sendiri. Disebut JFairy, tujuan kami adalah menghasilkan sekumpulan data yang semuanya dapat diverifikasi dan terhubung secara logis.

Dengan cara ini kami dapat mengisi aplikasi kami dengan pengguna. Data pengguna kami tidak bisa omong kosong atau tidak bisa diperhitungkan. Jadi kami membuat perpustakaan berfungsi dan kinerjanya lebih baik dari yang kami harapkan. Bahkan menghasilkan orang sungguhan dari waktu ke waktu. Kami mengetahui hal ini karena kami menggunakan Gravatar untuk menampilkan foto kandidat. Kami terkejut ketika foto asli muncul di akun pengujian kami.

Ini sangat berguna ketika kami mulai berbelanja di sekitar aplikasi kami. Kami ingin menunjukkan akun kepada klien perusahaan dengan 300 kandidat tes yang berbeda di platform. Jika kami tidak membuat JFairy, kami mungkin telah mencoba menggunakan aplikasi tersebut beberapa kali, tetapi hanya ada lima dari kami di tim. Akan tidak praktis bagi kami berlima untuk membuat 300 profil palsu yang terhubung secara logis.

Data yang dihasilkan oleh JFairy terbukti sangat meyakinkan sehingga pelanggan baru bingung di mana kami mendapatkan semua orang ini untuk diuji. Faktanya, mereka bertanya kepada kami apakah kami dapat membantu mereka mencari pengembang baru, karena jelas kami berhubungan dengan sejumlah orang yang memiliki latar belakang teknis, beberapa di antaranya benar-benar memiliki keterampilan yang telah divalidasi.

Kami perlu mengizinkan komunitas open source untuk melihat JFairy

Kami menyadari bahwa ini menjadi sesuatu yang lebih besar dari diri kami sendiri, jadi kami memutuskan untuk mengeluarkan sistem pada open source. Alasan pertama adalah kita semua adalah pengguna setia kode sumber terbuka. Kami tahu bahwa penting untuk memberi kembali kepada komunitas itu untuk mendapatkan imbalan. Tetapi di atas semua itu, open source dapat membawa manfaat nyata kembali ke produk. Dengan meletakkan proyek kami di luar sana sehingga sejumlah pengembang yang berbeda dapat melihatnya, kami bisa mendapatkan beberapa ide baru yang tidak akan pernah kami pertimbangkan.

Kontribusi yang paling menonjol adalah dimasukkannya bahasa baru. Kami hanya membuat JFairy untuk menghasilkan data bagi penutur bahasa Inggris dan penutur Polandia. Bagaimanapun, kita agak dibatasi oleh bahasa yang kita kenal dengan baik. Tapi tentu saja, ini bisa menjadi alat yang berguna untuk orang-orang dari berbagai negara. Melalui kontribusi open source, kami dapat menambahkan dukungan untuk data dalam bahasa Spanyol, Prancis, Jerman, Swedia, dan China.

Kami juga menyadari bahwa saat kami menjangkau sekelompok besar pengguna di pengembang perangkat lunak, Jfairy memiliki aplikasi yang jauh melampaui komunitas yang anggotanya tahu cara membuat kode. Jadi kami memutuskan untuk membangun kesuksesan perpustakaan dan membuat aplikasi yang dapat mendukung penggunaannya untuk lebih banyak aplikasi dan lebih banyak orang.

Peri Data memberi semua orang akses ke data palsu

JFairy terbukti sangat berguna bagi pengembang yang tahu cara membuat kode, tetapi mereka bukan satu-satunya orang di luar sana yang akan menggunakan data yang dihasilkan JFairy. Penguji perangkat lunak harus dapat mengisi sistem mereka untuk melihat apakah mereka berfungsi. Staf penjualan dan pemasar membutuhkan data agar demo mereka terlihat realistis. Untuk membuat JFairy berguna bagi kebanyakan orang, kami harus membuat data palsunya mudah diakses.

Dengan tujuan tersebut, kami membangun DataFairy. DataFairy adalah aplikasi yang didukung oleh JFairy sehingga Anda dapat mengakses data palsu kami tanpa harus belajar kode terlebih dahulu. Data disajikan dalam antarmuka notebook yang rapi. Untuk mendapatkan lebih dari satu profil palsu, Anda dapat membuat profil baru atau mengekspor daftar massal hingga 100 profil ke file CSV. Ini adalah cara gratis dan mudah untuk mengisi perangkat lunak Anda dengan data valid yang terhubung secara logis.

Rencana kami untuk masa depan DataFairy

DataFairy selalu dapat ditingkatkan dan memiliki fitur baru ditambahkan ke dalamnya. Selain upaya kami sendiri, kami ingin tetap berpegang pada tenant komunitas open source. Kami terus mencari bahasa baru yang dapat kami tambahkan ke daftar kami dan kami memiliki proyek GitHub terbuka. Kami juga akan senang jika nantinya pengguna menambahkan data sampel. Ini akan membantu kami membangun komunitas peserta yang akan membantu DataFairy tumbuh dan menjadi lebih berguna bagi lebih banyak orang.

Apakah Anda perlu mengunduh data dalam jumlah besar yang divalidasi secara logis atau hanya ingin bersenang-senang membaca profil yang muncul, lihat DataFairy.