Варианты тестового окружения
Начало: Тестирование баз данных. Часть 1., Тестирование базы данных. Часть 2., Управление тестовыми данными
С хранением и описанием тестовых данных более менее определились. Теперь самое сложное, что делать в каждом конкретном сценарии какие данные создавать, а какие нет. Есть ли какие-то общие подходы к решению данного вопроса? Для начала классифицируем данные в базе и рассмотрим несколько примеров. Комбинацию тестовых данных назовем тестовым окружением.
Настройки системы - объекты, которые напрямую не участвуют в сценариях, но от них зависит поведение и результат работы системы. Настройки могут быть связаны с аналитиками (группа Настройки-аналитик), а могут быть связаны с базой данных (группа Настройки-базы). Например, первые это учетная политика организации и она связана с элементом справочника Организации, вторые это константы. Настройки-базы могут серьезно влиять и на внешний вид форм тестируемых объектов. Это особенность важна при UI-тестировании.
Несколько комбинаций Настроек-аналитик почти всегда можно использовать в одной базе. Можно создать нескольких организаций и задать для каждой уникальные комбинации настроек. С Настройками-базы такое сделать невозможно, их приходится хранить в отдельных базах. Одна база одна комбинация Настроек-базы.
Следующий уровень тестового окружения Глобальное - объекты, используемые в большом количестве сценариев. К ним всегда относятся Настройки-аналитик - тот же пример элемент справочника Организация. Другие элементы этого тестового окружения определяются сценарием.
Настройки и Глобальное окружение имеет смысл настроить один раз в начальной базе, а потом использовать их идентификаторы во всех сценариях.
Важное ограничение это не изменять настройки и глобальное окружение ни руками, ни кодом сценариев. Только так можно обеспечить повторяемость результатов выполнения сценариев.
Локальное тестовое окружение сценария - описание объектов, создаваемых сценарием и используемых только в данном сценарии. Как писал в предыдущей заметке локальное тестовое окружение не записи в базе данных, это код который создаёт данные. Код выполняется при выполнении тестового сценария.
Весь этот текст можно представить следующей моделью:
Полученная классификация напрямую влияет на код сценария и скорость выполнения. И как следствие влияет на поддержку и развитие сценариев. При разработке получаем такие общие правила:
- Настройки-аналитик - в коде сценария используются идентификаторы аналитик;
- Глобальное окружение - в коде сценария используются идентификаторы аналитик;
- Локальное окружение - в коде сценария фиксирует описание объекта, реквизиты и их значения и алгоритм его создания.
Продолжение: Примеры тестового окружения