Тестирование базы данных
March 24, 2021

Варианты тестового окружения

Начало: Тестирование баз данных. Часть 1., Тестирование базы данных. Часть 2., Управление тестовыми данными

С хранением и описанием тестовых данных более менее определились. Теперь самое сложное, что делать в каждом конкретном сценарии какие данные создавать, а какие нет. Есть ли какие-то общие подходы к решению данного вопроса? Для начала классифицируем данные в базе и рассмотрим несколько примеров. Комбинацию тестовых данных назовем тестовым окружением.

Настройки системы - объекты, которые напрямую не участвуют в сценариях, но от них зависит поведение и результат работы системы. Настройки могут быть связаны с аналитиками (группа Настройки-аналитик), а могут быть связаны с базой данных (группа Настройки-базы). Например, первые это учетная политика организации и она связана с элементом справочника Организации, вторые это константы. Настройки-базы могут серьезно влиять и на внешний вид форм тестируемых объектов. Это особенность важна при UI-тестировании.

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

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

Настройки и Глобальное окружение имеет смысл настроить один раз в начальной базе, а потом использовать их идентификаторы во всех сценариях.
Важное ограничение это не изменять настройки и глобальное окружение ни руками, ни кодом сценариев. Только так можно обеспечить повторяемость результатов выполнения сценариев.

Локальное тестовое окружение сценария - описание объектов, создаваемых сценарием и используемых только в данном сценарии. Как писал в предыдущей заметке локальное тестовое окружение не записи в базе данных, это код который создаёт данные. Код выполняется при выполнении тестового сценария.

Весь этот текст можно представить следующей моделью:

Полученная классификация напрямую влияет на код сценария и скорость выполнения. И как следствие влияет на поддержку и развитие сценариев. При разработке получаем такие общие правила:

  1. Настройки-аналитик - в коде сценария используются идентификаторы аналитик;
  2. Глобальное окружение - в коде сценария используются идентификаторы аналитик;
  3. Локальное окружение - в коде сценария фиксирует описание объекта, реквизиты и их значения и алгоритм его создания.

Продолжение: Примеры тестового окружения