Масштабирование автотестов
Распространенная ситуация когда есть базовая конфигурация и ею пользуются значительное количество клиентов. Конфигурация дорабатывается под пожелания клиентов. Базы клиентов регулярно обновляются. Требуется гарантировать, что после обновления вся функциональность в базах клиентов оставалась актуальна.
При этом базовая конфигурация покрыта автоматизированными тестами. Возникает естественное желание использовать готовые автотесты для проверки обновленных баз клиентов.
В идеале это должно выглядеть так: в обновленную базу клиента загружается глобальное тестовое окружение и запускаются автотесты базовой конфигурации. Но существенное различие данных в базах не позволит так сделать. Основой тестовой базы базовой конфигурации является специально подготовленная начальная база, которая содержит настройки системы, а автотесты глубоко с ними связаны. База клиентов наполнялась уникальными данными. Значит нужна полная синхронизация настроек тестовой и клиентской базой, т. о. задача становится очень похожей на задачу из заметки Актуализация начальной базы.
Прежде чем начать решать задачу нужно понять, а есть ли смысл все это делать. Ведь у каждого клиента свои уникальные особенности - настройки, ролевая модель и т.п. Но при все этой уникальности мы должны гарантировать работоспособность функций базовой конфигурации. Значит задача разделяется на две части: тестирование базовой функциональности и тестирование уникальных функций.
Для тестирования базовых функций мы должны полностью синхронизировать настройки клиентской базы с тестовой базой базовой конфигурации. Как правило настройки разделяются ключевыми аналитиками например организация, подразделение, ЦФО и т.п. Если мы возьмем конфигурацию 1С:Бухгалтерия предприятия, то нужно создать новую организацию и настроить ее нужным образом.
Ситуация осложняется тем, что клиентская конфигурация может быть значительно изменена и поэтому не получиться использоваться инструменты универсального обмена данными между одинаковыми конфигурациями. Существует множество готовых инструментов переноса данных между базами. Также можно использовать инструменты тестового фрэймворка или генерировать данные и настройки отдельным сценарием.
Получаем следующую последовательность действий для обновленной базы:
- создаем элементы ключевой аналитики - организацию, подразделение, ЦФО
- загружаем настройки и глобальное окружение
- прогоняем тесты базовой функциональности
После такого как убедились, что базовая функциональность работает, можно тестировать уникальные функции.
Без рассмотрения остался вопрос тестирования функций базовой конфигурации с настройками клиента.