Создание тестовых данных в базе данных
Я знаю о некоторых генераторах тестовых данных, но большинство, похоже, просто заполняют базы данных имен и адресов (не стесняйтесь исправлять меня).
У нас есть большое интегрированное и нормализованное приложение - например, счета-фактуры имеют номера деталей, связанные с таблицами столов, номерами клиентов, связанными с таблицами клиентов, журналами изменений, связанными с аудиторской информацией и т.д., которые, очевидно, трудно заполнить случайно. В настоящее время мы затуманиваем данные реальной жизни, чтобы получить тестовые данные (но не очень хорошо).
Какие инструменты\методы используются для создания больших объемов данных для тестирования?
Ответы
Ответ 1
Где я работаю, мы используем RedGate Data Generator для генерации тестовых данных.
Так как мы работаем в банковской сфере. Когда нам приходится работать с номинативными данными (номера кредитных карт, персональный идентификатор, номера телефонов), мы разработали приложение, которое может маскировать эти поля базы данных, чтобы мы могли работать с ними как реальные данные.
Я могу сказать, что с Redgate вы можете приблизиться к тому, что ваши реальные данные могут выглядеть на производственном сервере, поскольку вы можете настраивать каждое поле каждой таблицы в своем BD.
Ответ 2
Вы можете создавать планы данных с помощью VSTS Database Edition (с последними инструментами Power Power 2008).
Он включает в себя мастер создания данных, который позволяет автоматизировать создание данных, указывая на существующую базу данных, чтобы получить что-то реалистичное, но содержит совершенно разные данные.
Ответ 3
Я развернул свой собственный генератор данных, который генерирует случайные данные, соответствующие регулярным выражениям. Основная идея состоит в том, чтобы дважды использовать правила проверки. Сначала вы используете их для генерации достоверных случайных данных, а затем используете их для проверки нового ввода в производство.
Я сказал переписать утилиту, поскольку это похоже на хороший учебный проект. Он доступен в googlecode.
Ответ 4
Я только что завершил проект, создающий 3,500,000+ страховых полисов. Из-за ограничений HIPPA и PHI использование чистых реальных данных - это PITA. Для этого я использовал инструмент Datatect (http://www.datatect.com/).
Некоторые из вещей, которые мне нравятся в этом инструменте:
- Использует ODBC, чтобы вы могли генерировать данные в любой источник данных ODBC. Я использовал это для баз данных Oracle, SQL и MS Access, плоских файлов и таблиц Excel.
- Расширяемый через VBScript. Вы можете писать крючки в различных частях рабочего процесса генерации данных, чтобы расширить возможности инструмента. Я использовал эту функцию для "синхронизации" зависимых столбцов в базе данных и для управления частотным распределением значений для согласования с реально наблюдаемыми частотами.
- Сознательно. При заполнении столбцов внешнего ключа вытягивает действительные ключи из родительской таблицы.
Ответ 5
Продукт Red Gate хорош... но не идеален.
Я обнаружил, что лучше сделал, когда написал свои собственные инструменты для генерации данных. Я использую его, когда хочу генерировать "Клиенты"... но это не здорово, если вы хотите имитировать случайность, с которой клиенты могут участвовать, например, при создании заказов... некоторые с одним элементом с несколькими элементами.
Инструменты Homegrown обеспечат самые "реалистичные" данные, которые я думаю.
Ответ 6
Джоэл также упомянул RedGate в подкасте # 11