Любое программное обеспечение для тимбилдинга, предназначенное для бразильского рынка, рано или поздно столкнется с одним и тем же полем: CPF (бразильский идентификационный номер налогоплательщика). Он встречается в платежных формах, системах управления персоналом, на экранах KYC (Know Your Customer — «Знай своего клиента»), на государственных порталах — везде, где необходимо идентифицировать человека.
Перед выпуском эту область необходимо протестировать. И именно здесь большинство команд сталкиваются с небольшой, но реальной проблемой.
Почему бы не использовать настоящий CPF (бразильский идентификационный номер налогоплательщика)?
Поскольку это бразильский идентификационный номер налогоплательщика (CPF), и в соответствии с бразильским Общим законом о защите персональных данных (LGPD), CPF считается персональными данными, независимо от того, находится ли он в производственной среде или в тестовой базе данных.
Недавние исследования в области соблюдения требований к обработке данных показывают, что значительная часть организаций по-прежнему хранит регулируемые данные в непроизводственных средах, и что существенный процент из них сталкивался с нарушениями или проваливал аудиты в этих средах, как правило, потому что в тестовых средах контроль доступа слабее, чем в производственных.
Ввод реального номера CPF (бразильского налогового идентификационного номера) коллеги в базу данных разработчиков «просто для проверки формы» незаметно создает аналогичную уязвимость.
Почему бы не изобрести его?
Поскольку CPF (бразильский идентификационный номер налогоплательщика) не является случайной последовательностью, он состоит из 11 цифр: первые 9 образуют уникальный идентификатор (9-я цифра указывает налоговый регион, в котором он был выдан), а последние 2 — это контрольные цифры, вычисленные из первых 9 с использованием алгоритма «по модулю 11», той же формулы, которую использует Федеральная налоговая служба Бразилии для проверки подлинности номеров.
Введенное случайным образом число почти никогда не удовлетворяет этой формуле, поэтому оно сразу же не проходит проверку, что сводит на нет смысл тестирования чего-либо, кроме проверки формата.
Итак, что же на самом деле делает генератор CPF?
Она выполняет за вас вычисление по модулю 11. Предоставьте ей 9 цифр основания (случайных или выбранных), и она вычислит 2 правильные контрольные цифры, получив число, структурно и математически неотличимое от действительного числа, не принадлежащее никакому реальному человеку.
Где это на самом деле используется?
Не во всех ситуациях инструмент требует одинаковых действий, поэтому вот как он работает на практике:
Процесс оформления заказа до запуска: Команда электронной коммерции, добавляющая CPF (бразильский налоговый идентификатор) в качестве обязательного поля при оформлении заказа, должна подтвердить, что как интерфейс пользователя, так и бэкэнд-валидатор отклоняют недействительные данные и принимают действительные, не используя для этого повторно реальный номер телефона клиента.
Инициализация базы данных для разработки: бэкенд-разработчику, создающему 500 фиктивных записей пользователей для тестовой среды, необходимо, чтобы эти записи выглядели достаточно реалистично, чтобы функции поиска, фильтрации и создания отчетов работали так же, как и в производственной среде; строки-заполнители, такие как "12345678900", не пройдут проверку на уровне валидации.
Нагрузочное тестирование точки регистрации: инженеру по контролю качества, имитирующему 10 000 одновременных регистраций, требуется 10 000 уникальных и действительных номеров CPF (бразильские индивидуальные регистрационные номера налогоплательщиков), а не один повторно используемый номер. Повторное использование номера запускает логику дублирования учетных записей и незаметно делает весь тест недействительным.
Проверка региональных правил: финтех-компании, применяющей различные этапы KYC (Know Your Customer — «Знай своего клиента») в зависимости от штата, необходимы номера CPF (бразильские идентификационные номера налогоплательщиков), привязанные к конкретным регионам (9-я цифра), чтобы подтвердить, действительно ли срабатывает каждая ветвь этой логики.
Академический проект: студент факультета компьютерных наук, создающий собственный валидатор CPF (бразильского идентификационного номера налогоплательщика), нуждается в известных действительных и недействительных номерах для проведения тестов; генерация пакета данных быстрее, чем каждый раз вручную вычислять контрольные цифры.
Интеграция с платежным шлюзом: разработчику, настраивающему бразильский платежный процессор в тестовом режиме, необходим код CPF для прохождения внутренней проверки шлюза перед тестированием самой логики транзакций.
Эти цифры «реальны»?
Нет, и стоит уточнить. «Действительный» означает, что контрольная цифра верна, то есть номер проходит проверку в любой системе, использующей официальный алгоритм. Это не означает, что номер зарегистрирован в Налоговой службе или связан с каким-либо лицом.
Использование сгенерированного CPF (бразильского идентификационного номера налогоплательщика) для реальной регистрации, запроса или транзакции не работает и, в зависимости от намерений, может считаться мошенничеством согласно бразильскому законодательству. Каждый легитимный генератор четко указывает на это различие, и именно это различие отличает тестовый инструмент от проблемы.
Выбор инструмента
Существует множество бесплатных генераторов CPF, и большинство из них, по сути, делают одно и то же. Среди них два неизменно выделяются тем, как они обрабатывают описанные выше сценарии.
CPF-generator.com
Генератор CPF Generator.com позволяет генерировать номера CPF по отдельности или партиями (до 10 за раз). Инструмент предлагает различные форматы CPF, позволяя переключаться между форматом с пунктуацией (000.000.000-00) и форматом только с цифрами. Этот онлайн-генератор позволяет выбрать конкретный штат, используя региональную цифру, что очень полезно для сценариев тестирования, специфичных для региона, упомянутых ранее. Кроме того, он имеет расширение для браузера, что делает инструмент доступным одним щелчком мыши, вместо необходимости доступа через сохраненные закладки, и предоставляет пояснительный контент об алгоритме для команд, которые хотят понять логику процесса, а не просто использовать сгенерированный результат.
Некоторые привычки стоит сохранить.
- Храните сгенерированные CPF-файлы в непроизводственных средах; не допускайте случайного переноса их в производственную среду с помощью скриптов запуска.
- Чётко обозначьте тестовые данные, чтобы никто впоследствии не спутал их с реальной записью о клиенте.
- Вместо повторного использования одних и тех же чисел в нескольких проектах следует создавать новые пакеты данных, особенно если тестовые данные передаются за пределы команды.
- Рассматривайте «валидность» как сугубо алгоритмический параметр; он ничего не говорит об идентичности, поэтому эти числа никогда не заменят реальную проверку.
Цель всего этого —...
Всё это, по сути, не относится к самому генератору. Речь идёт об исключении повторяющегося, малозначимого решения в процессе разработки: откуда берутся тестовые данные и влечет ли их использование риски? Генератор CPF отвечает на этот вопрос чётко и с правильной структурой, без необходимости вмешательства человека и без проблем с соответствием требованиям, которые необходимо решать позже.
По мере того, как бразильский Закон о защите персональных данных (GLPD) становится все более распространенным, это перестает быть определяющим фактором и превращается в стандартное требование при создании тестовых сред. Свяжитесь с нами.