Создание тестовых данных в базе данных

Я знаю о некоторых генераторах тестовых данных, но большинство из них, кажется, просто заполняют базы данных стилей имен и адресов [не стесняйтесь поправлять меня].

У нас есть большое интегрированное и нормализованное приложение - например, в счетах есть номера деталей, связанные с таблицами запасов, номера клиентов, связанные с таблицами клиентов, журналы изменений, связанные с информацией аудита, и т. Д., Которые, очевидно, трудно заполнять случайным образом. В настоящее время мы скрываем реальные данные, чтобы получить тестовые данные (но не очень хорошо).

Какие инструменты \ методы вы используете для создания больших объемов данных для тестирования?

Ответов (6)

Джоэл также упомянул RedGate в подкасте №11.

Вы можете создавать планы данных с помощью VSTS Database Edition (с последними инструментами Power 2008).

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

Там, где я работаю, мы используем RedGate Data Generator для генерации тестовых данных.

Поскольку мы работаем в банковской сфере. Когда нам нужно работать с именными данными (номера кредитных карт, личный идентификатор, номера телефонов), мы разработали приложение, которое может маскировать эти поля базы данных, чтобы мы могли работать с ними как с реальными данными.

Я могу сказать, что с Redgate вы можете приблизиться к тому, как ваши реальные данные могут выглядеть на рабочем сервере, поскольку вы можете настраивать каждое поле каждой таблицы в вашем BD.

Продукт Red Gate хорош ... но не идеален.

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

Я думаю, что самодельные инструменты предоставят наиболее «реалистичные» данные.

Я только что завершил проект по созданию более 3500000 заявок на страхование здоровья. Из-за ограничений HIPPA и PHI использование даже очищенных реальных данных является PITA. Для этого я использовал инструмент под названием Datatect ( http://www.datatect.com/ ).

Что мне нравится в этом инструменте:

  1. Использует ODBC, поэтому вы можете создавать данные в любом источнике данных ODBC. Я использовал это для баз данных Oracle, SQL и MS Access, плоских файлов и электронных таблиц Excel.
  2. Расширяется через VBScript. Вы можете написать хуки в различных частях рабочего процесса генерации данных, чтобы расширить возможности инструмента. Я использовал эту функцию для «синхронизации» зависимых столбцов в базе данных и для управления частотным распределением значений для согласования с реальными наблюдаемыми частотами.
  3. Ссылочно осведомлен. При заполнении столбцов внешнего ключа извлекает действительные ключи из родительской таблицы.

Я использовал собственный генератор данных, который генерирует случайные данные, соответствующие регулярным выражениям. Основная идея - дважды использовать правила проверки. Сначала вы используете их для генерации действительных случайных данных, а затем используете их для проверки новых входных данных в производственной среде. Я переписал эту утилиту, так как она кажется хорошим учебным проектом. Он доступен в googlecode .