Как наш генератор тестовых данных делает поддельные данные реальными

1656571577 kak nash generator testovyh dannyh delaet poddelnye dannye realnymi

Том Винтер

1*b_U1vc4pLeXRqExfxlwH8g
Фото Базза Андерсена на Unsplash

Недавно мы выпустили DataFairy, бесплатный инструмент, генерирующий тестовые данные. Но сначала позвольте мне рассказать вам историю, как это произошло.

Это история о том, как мы превратили веселый посторонний проект с открытым кодом в нечто, что оказалось действительно полезным.

Речь не идет о фейковых новостях или обмане масс. Но факт остается фактом, что для разработчиков, тестировщиков программного обеспечения действительно всех, кто когда-либо показывал демо-версию, фальшивые данные важны, и их удивительно трудно исправить с головы.

Наша история с поддельными данными начинается с того момента, когда мы впервые разработали наш инструмент SaaS, Devskiller. Как и все приложения, нам нужны были пользователи. В данный момент мы даже не искали платных пользователей. Нам просто требовались профили кандидатов для нашей заявки. Нам нужны были фиктивные данные, которые выглядели бы реальными.

Нам нужен был генератор тестовых данных

Нам нужны были поддельные данные по нескольким причинам:

1. Нам нужно было проверить, работает ли наша система

Это означало, что нам нужно было создать несколько разных фиктивных профилей, чтобы проверить, правильно ли система их сохраняет и отображает.

2. Нам нужно было продать наш продукт

Нам нужно было сделать демо для наших первых потенциальных клиентов. Мы хотели показать нашим клиентам, как будет выглядеть система после 6 месяцев приглашения и тестирования сотен кандидатов.

Первым нашим мнением было искать доступный генератор тестовых данных. Но проблема в том, что данные трудно убедительно подделать. Просто спроси этого парня,

или его,

Многие данные проверяются алгоритмически

Если бы легко получать убедительные данные, нам, вероятно, не понадобился бы инструмент. Но генерировать данные может быть сложно по нескольким причинам.

Поддельные данные – это больше, чем просто случайные числа. Возьмем для примера номер кредитной карты. Большинство номеров кредитных карт основано на так называемом алгоритме Луна. Чтобы объяснить это, мы собираемся использовать пример карты Visa:

0*K5n41Cr9qmjfLHN6
Фото Дома Джея из Pexels

Как проверить, действительный ли номер кредитной карты

Прежде чем начать, важно знать, что все номера карт Visa начинаются с 4. Кроме того, все они имеют 16 или 13 цифр.

Возьмите этот номер карты Visa:

0*KcSus6ZmvPhsKWnS
Источник: React Credit Cards

Первое, что вам нужно сделать, чтобы проверить, можете ли вы подтвердить число, это удвоить чередующиеся цифры, начиная с первой цифры в последовательности.

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

Если удвоение, которое вы только что сделали, приведет к числу с двумя цифрами, добавьте их вместе, чтобы получить одноцифровое число.

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

Затем необходимо вернуться к исходному номеру кредитной карты и заменить цифры, удвоившие новое значение.

8554885405652537

Это может быть двойное значение или таблица значений с добавленными цифрами. Теперь добавьте все это.

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

А затем проверьте, равномерно ли сумма делится на 10. В этом случае это так, следовательно, число верно.

Вам нужен какой-либо вычислительный алгоритм для проверки номеров кредитных карт в масштабе. Но номера кредитных карт – это относительно легко получить правильные данные. Нам требовались не только отдельные данные, которые можно проверить, нам нужны были целые профили.

Профилям, подлежащим проверке, требуются разные типы данных, которые логически связаны друг с другом

Номера кредитных карт относительно легко создать, поскольку они касаются только самих себя. Но персональные идентификационные номера часто относятся к другим вещам о человеке. Возьмем шведский идентификационный номер, практически называемый personnummer.

0*Kkq3ODgzKa7BlQp0
Фото Джонатана Бринкхорста на Unsplash: Швеция – практическая страна

Для тех из вас, кто не знает, personnummers предназначены для уплаты налогов, как американский номер социального страхования. Но они также используются как способ получить доступ к таким услугам, как здравоохранение и школ, а также к неправительственным услугам, таким как кредитные рейтинги.

Формат personnummer несколько отличается от формата кредитной карты. Это 10-значное число, разделенное на 6-значную и четырехзначную часть, соединенную дефисом.

Прикольный факт: шведы в возрасте старше 100 лет заменяют дефис в своем персональном номере знаком плюс.

Первые шесть цифр у personnummer просты и соответствуют дню рождения лица в формате YYMMDD. Во втором разделе с 4 цифрами первые три являются серийным номером. Третья цифра серийного номера нечетная для мужчин и четная для женщин. Последнее число является цифрой контрольной суммы.

Итак, если взять номер человека:

601128–9235

Вы знаете, что это для мужчины, родившегося 28 ноября 1960 года.

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

Чтобы вычислить контрольную сумму, умножьте отдельные цифры идентификационного номера на соответствующие цифры 212121–212.

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

Так же, как и с картой Visa, приведенной выше, если произведение любого из этих чисел дает двузначное число, просто составьте эти две цифры вместе.

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

Добавьте все оставшиеся продукты.

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

Чтобы получить цифру контрольной суммы, вычтите последнюю цифру добавленных продуктов от 10 (исключение: если последняя цифра равна нулю, контрольная сумма также равна нулю).

10–5=5

Итак, если вы собираетесь создать профиль этого человека, это не может быть женщина, рожденная 10 апреля 1916 года. Ее персональный номер должен быть примерно таким: 160410+1244. Другими словами, вы не можете просто придумать случайное число и ожидать, что оно будет работать с каким-либо фальшивым профилем, который вы создали.

Нам нужны были логические тестовые данные

Данные должны быть связаны друг с другом логичным образом, поскольку personnummer – это не единственная часть данных, построенная на внешней информации. Большинство типов идентификационных номеров определенным образом связаны с другой информацией. Мы просто не смогли найти генератор тестовых данных, который бы это сделал, потому решили создать собственный. Похоже, не только мы испытывали эту проблему.

JFairy

Как постоянные корреспонденты сообщества с открытым кодом, мы решили, что лучший способ генерировать необходимые тестовые данные – это создать собственную библиотеку. Под названием JFairy наша цель заключалась в том, чтобы она генерировала наборы данных, которые можно было проверить и логически увязать.

Таким образом, мы можем заполнить наше приложение пользователями. Наши пользовательские данные не могут быть бессмысленными, или их нельзя учесть. Поэтому мы запустили библиотеку, и она работала лучше, чем мы могли ожидать. Это даже иногда порождает реальных людей. Мы узнали это, поскольку использовали Gravatar, чтобы показать фотографии кандидатов. Мы были удивлены, когда на нашем тестовом аккаунте появилось настоящее фото.

0*6llBF0wPjlBrVGm8
Источник: Тенор

Это было очень полезно, когда мы начали делать покупки в нашем приложении. Мы хотели показать корпоративным клиентам учетную запись с 300 разными тестовыми кандидатами на платформе. Если бы мы не создали JFairy, мы все попытались бы воспользоваться программой несколько раз, но в команде было всего пять. Для нас пятерых было бы непрактично придумать 300 логически связанных фальшивых профилей.

Данные, сгенерированные JFairy, оказались настолько убедительны, что новые клиенты были озадачены, куда мы взяли всех этих людей для проверки. На самом деле они спросили нас, можем ли мы помочь им найти новых разработчиков, поскольку, очевидно, мы общались с рядом людей, имеющих технический опыт, некоторые из которых действительно имели подтвержденные навыки.

Мы поняли, что это становится чем-то больше нас, поэтому решили выпустить систему с открытым кодом. Первая причина состоит в том, что все мы упорные пользователи открытого исходного кода. Мы знаем, что важно отдавать этому сообществу, чтобы получить вещи вместо этого. Но кроме того, открытый код может вернуть продукту реальные преимущества. Выкладывая наш проект так, чтобы на него могли взглянуть разные разработчики, мы сможем получить новые идеи, которые мы бы никогда не рассмотрели.

Наиболее заметным вкладом было включение новых языков. Мы создали JFairy только для создания данных для англоязычных и польскоязычных. Мы ведь довольно ограничены языками, которые хорошо знаем. Но, конечно, это может быть полезным инструментом для людей из разных стран. Благодаря вкладу с открытым кодом мы смогли добавить поддержку данных на испанском, французском, немецком, шведском и китайском языках.

Мы также поняли, что хотя мы охватываем большую группу пользователей в разработчиках программного обеспечения, Jfairy имел программы далеко за пределами сообщества, члены которого знают, как кодировать. Поэтому мы решили развить успех библиотеки и создать приложение, которое могло бы поддерживать его использование для большего количества программ и для большего количества людей.

Data Fairy предоставляет каждому доступ к поддельным данным

JFairy оказался чрезвычайно полезным для разработчиков, умеющих кодировать, но они были не единственными людьми, которые использовали данные, сгенерированные JFairy. Тестеры программного обеспечения должны иметь возможность заполнять свои системы, чтобы проверить, работают ли они. Продавцам и маркетологам нужны данные, чтобы их демонстрации выглядели реалистичными. Чтобы сделать JFairy полезным для большинства людей мы должны были сделать доступ к его поддельным данным легким.

0*rPmzovhZ6hMsNbfS

С этой целью мы создали DataFairy. DataFairy – это приложение на базе JFairy, поэтому вы можете получить доступ к нашим поддельным данным, не учившись сначала кодировать. Данные представлены в аккуратном интерфейсе ноутбука. Для получения более одного поддельного профиля можно создать новый профиль или экспортировать массовый список до 100 профилей в файл CSV. Это бесплатный и простой способ наполнить программное обеспечение логически связанными действительными данными.

0*vPgSlW63nRjOUYYF

Наши планы на будущее DataFairy

DataFairy всегда можно улучшить и добавить новые функции. В дополнение к нашим собственным усилиям, мы хотим присоединиться к арендаторам сообщества с открытым кодом. Мы продолжаем искать новые языки, которые мы можем добавить в наш список, и у нас есть открытый проект GitHub. Мы также хотели бы, чтобы пользователи добавили образцы данных. Это поможет нам создать сообщество участников, которые помогут расти DataFairy и стать полезными для большего количества людей.

Если вам нужно загрузить большие партии логически подтвержденных данных или просто хотите развлечься, читая появляющиеся профили, просмотрите DataFairy.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *