Существует книга или цикл статей по подготовке синтетических тестовых данных, профилированию данных?
Часто вести разработку модулей систем приходится в отсутствии реальных или каких-либо вообще данных. Но протестировать работу реализованного ПО (в моём случае ETL, веб-сервисы, SOA) необходимо.
Работая в разных компаниях, я встречал разные подходы по подготовке синтетических тестовых данных, профилированию.
Самый полный метод - это выполнить профилирование данных: предположить/найти возможные значения, выбросы и экстремумы; определить кардинальность связей; определить интегральные показатели для проверок, такие, как количество строк, средние значения, ожидаемые объёмы данных в байтах на входе и выходе; и т.д.
Затем готовятся синтетические/тестовые данные, которые будут подаваться на вход чёрному ящику - тестируемому модулю системы.
Затем подготавливается ожидаемый на выходе эталон данных и/или набор тест-кейсов проверяющий интегральные показатели (количество строк, объёмы, ...).
Проводится сверка результатов работы чёрного ящика с эталоном.
Проблема в том, что отслеживаемых значений атрибутов и их комбинаторных комбинаций данных на входе - может быть миллионы и миллаирды. И неизвестно, когда остановиться, как определять достаточность.
Какие есть методы по классификации анализируемых показателей? Какие есть решения по автоматизации?
Существует ли полный монументальный труд, книга, цикл статей описывающий, регламентирующий подготовку синтетических данных?
Если мы говорим о подготовке данных для тестирования - то это всё напрямую вытекает из вполне емких принципов тест-дизайна.
Граничные значение, классы эквивалентности, pairwise testing - все это позволяет довольно быстро определить нужные наборы данных для каждого сценария и схлопнуть их до необходимого минимума вариаций.
Дальше уже вопрос выявления сценариев, по которым нужно готовить данные. Тут нужно анализировать систему, составлять тестовую документацию и пр.
В целом, я бы сказал, что пары фундаментальных книг по тест дизайну и тест-анализу поможет понимать, что и на каких данных проверять.
Дальше уже только долгий и кропотливый труд по формированию и синтезу тестовых данных.