В этой статье мы рассмотрим, как настраивать и поддерживать тестовую среду, а также расскажем о важных методах управления тестовыми данными.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Содержание:
- Процесс настройки тестовой среды
- Обслуживание тестовой среды
- Основные указания для обеспечения эффективного обслуживания тестовой среды
- Подготовка тестовых данных
- Стратегии управления тестовыми данными
- Заключение
Процесс настройки тестовой среды
Главный фактор для тестовой среды – приближение к среде пользователя. Обычно от пользователей не требуется выполнять какие-либо настройки или установки самостоятельно, поскольку им предоставляется уже готовый продукт или система.
Если для тестирования необходимо выполнить подобные конфигурации (которые будут настроены для конечных пользователей), то необходимо определить администраторов, которые будут настраивать тестовую среду. Обычно те, кто настраивает среду разработки, должны настраивать и тестовую среду.
Например, если вам нужно протестировать приложение на системе с различными операционными системами и т.д., лучший способ решить эту задачу – использовать виртуализацию или облачные среды.
Создайте основную систему, на которой будут правильно установлены и настроены все конфигурации. Затем создайте образ этой системы и несколько экземпляров из этого образа, чтобы каждый тестировщик имел свою выделенную систему с приложением.
Ниже приведено наглядное изображение того, что включает в себя процесс создания тестовой среды:
Обслуживание тестовой среды
Часто тестировщики теряют время из-за проблем с тестовым окружением или его настройкой.
С ростом разнообразия операционных систем и аппаратного/программного обеспечения, тестовая среда должна быть гибкой, чтобы соответствовать изменяющимся требованиям. Хороший процесс управления тестированием позволяет командам QA гарантировать высокое качество продукта.
Основные указания для эффективного обслуживания тестовой среды
Для эффективного обслуживания тестовой среды необходимо учесть следующие моменты:
1. Эффективное совместное использование среды:
Одной из основных проблем подготовки тестовой среды является то, что различные команды QA должны использовать одну и ту же тестовую среду для проведения тестирования. Для решения этой проблемы необходимо разработать механизм совместного использования тестовой среды, который удовлетворял бы потребностям всех тестировщиков.
Этого можно достичь, создав репозиторий, где будут храниться все данные о том:
- кто использует среду,
- когда среда свободна для использования,
- как распределяется время использования среды.
Другое решение проблемы – анализ потребностей команды в ресурсах и определение тех, которые используются редко. Следует рассмотреть возможность замены этих ресурсов новыми или добавления других ресурсов или систем, если это необходимо.
2. Проверка надежности:
Некоторые требования к тестированию требуют комплексной настройки, которая может занять очень много времени. Это особенно актуально при сквозном тестировании. Одна и та же тестовая среда будет необходима для использования сразу нескольким командам.
В таких случаях важно иметь хорошее представление о всей среде в целом, собирать информацию о том, какая команда какие тесты выполняет. Это позволит эффективно распределить необходимые ресурсы между соответствующими командами.
3. Отслеживание любых сбоев:
Как у каждой команды есть своя тестовая среда, так и у организации есть несколько тестовых сред для проведения тестирования.
При обновлении программного или аппаратного обеспечения в тестовой среде возникают временные простои, когда она становится недоступной. То же самое происходит и с глобальными тестовыми средами, которые также нуждаются в обновлениях. Это может повлечь за собой отключение питания или сети.
Таким образом, люди, отвечающие за поддержку тестовых сред, должны следить за возможными простоями и заранее предупреждать команду тестирования, чтобы они могли спланировать свою работу соответствующим образом и не терять время из-за недоступности среды.
4. Виртуализация, где это возможно:
В случаях, когда необходимо выполнять тестирование в совместно используемой среде, создание виртуализированной среды является наиболее подходящим решением.
При использовании такой среды все, что нужно сделать тестировщикам, – это создать экземпляр тестовой среды, который будет содержать все необходимые ресурсы для тестирования, такие как операционная система, база данных, необходимое программное обеспечение, средства автоматизации и т.д.
После завершения тестирования эти экземпляры могут быть удалены. Облачные среды особенно полезны для функционального и автоматизированного тестирования.
5. Регрессионное тестирование:
По мере реализации новых функций в приложении необходимо проводить регрессионное тестирование. В регрессионном тестировании проверяется, что изменения, внесенные в новую версию продукта, не привели к возникновению ошибок в уже существующем функционале. Для этого используется специально настроенная среда, которая включает предыдущие версии продукта и данные, необходимые для проведения тестов.
Использование фреймворков автоматизации для регрессионных тестов помогает повысить эффективность тестовой среды. Автоматизация предполагает, что среда стабильна, а возникающие дефекты точно не связаны с тестовой средой.
6. Общие указания:
Когда возникают проблемы с аппаратным или программным обеспечением тестовой среды, их нужно передать специалистам, если люди в команде, отвечающие за тестовую среду, не могут решить эти проблемы самостоятельно.
Например, если во время тестирования возникает ошибка, связанная с ограничениями в прошивке или программном обеспечении, такая проблема, как правило, не может быть устранена только теми, кто отвечает за обслуживание среды в команде.
Подготовка тестовых данных
Теперь давайте рассмотрим последнюю часть создания тестовой среды, которая включает в себя настройку тестовых данных. Надежность тестовой среды и ее эффективность могут быть измерены с помощью тестовых данных. По определению, тестовые данные – это любой вид входных данных, предоставляемых тестируемому программному коду.
Несмотря на то, что мы тратим много времени на разработку тест-кейсов, тестовые данные также очень важны. Они обеспечивают полное тестовое покрытие для всех видов сценариев, тем самым повышая качество продукта. Для каждого вида тестирования, например, happy path, negative testing, может потребоваться определенный набор тестовых данных.
Тестовые данные обычно создаются до начала выполнения тестов, поскольку каждая тестовая среда имеет свои особенности, и подготовка данных сама по себе может быть длительным процессом.
Функциональное тестирование:
Рассмотрим пример, когда вам необходимо провести функциональное тестирование. Цель этого тестирования – проверить, соответствует ли функционал приложения заданным требованиям.
В таких случаях подготовка тест-кейсов, как правило, должна охватывать следующие виды данных:
- Positive Path data: Это данные, которые обычно соответствуют сценариям позитивного тестирования.
- Negative Path data: Это данные, которые обычно считаются “недействительными” с точки зрения правильной работы кода.
- Null Data: Это ситуация, когда приложение или код не получают никаких данных.
- Erroneous Data: Определение работоспособности кода, когда данные имеют недопустимый формат.
- Boundary Conditions Data: Тестовые данные, которые выходят за пределы допустимых значений.
Тестовые данные играют ключевую роль в определении того, где продукт или функция могут сломаться.
Управление тестовыми данными
Поскольку тестовые данные играют важную роль в обеспечении качества продукта, можно сказать, что их управление и оптимизация очень важны.
Необходимость управления тестовыми данными:
1. Множество организаций сталкиваются с быстро меняющимися бизнес-целями, направленными на удовлетворение потребностей конечных пользователей. Очевидно, что подходящие тестовые данные играют ключевую роль в определении качества тестирования.
Как уже говорилось ранее, довольно много времени уходит на планирование тестовых данных и связанных с ними задач. Часто тестирование функциональности системы может быть сильно затруднено из-за отсутствия соответствующих тестовых данных. Это серьезная проблема, которая мешает достигнуть полного охвата тестирования.
2. Иногда требуется постоянно обновлять тестовые данные для определенных требований тестирования. Это вызывает задержки во времени и увеличивает стоимость разработки продукта.
В некоторых случаях, когда продукт разрабатывается различными командами в большой организации, создание и обновление тестовых данных требует тщательной согласованности между этими командами.
3. Так как команда QA должна создавать различные тестовые данные, необходимо учитывать, что эти данные должны где-то храниться.
Хотя наличие репозитория является хорошей практикой, важно избегать сохранения лишних и ненужных данных, чтобы наиболее эффективно использовать ресурсы хранилища.
Многие организации сталкиваются с проблемами в управлении тестовыми данными, поэтому необходимо разработать некоторые стратегии управления, чтобы минимизировать эти проблемы.
Ниже приведены некоторые методы управления тестовыми данными, которые могут быть полезны для многих компаний. Какие из них применять, каждая компания решает самостоятельно.
Стратегии управления тестовыми данными
1. Анализ данных
Как правило, тестовые данные создаются на основе тест-кейсов, которые должны быть выполнены.
2. Создание данных, отражающих производственную среду
Второй шаг – понимание требований данных для сценария конечного пользователя. Сравните эти требования с уже имеющимися данными в тестовой среде. Возможно, потребуется создание или изменение новых данных на основе этого сравнения.
3. Определение очистки тестовых данных
В зависимости от текущих требований тестирования (которые могут меняться со временем), может возникнуть необходимость изменить тестовые данные, как указано в предыдущем шаге. Однако, если эти тестовые данные больше не нужны, необходимо определить процесс их удаления или очистки.
4. Определение конфиденциальных данных и их защитита
Во многих случаях для правильного тестирования приложений может потребоваться большое количество конфиденциальных данных.
Например, при использовании облачной тестовой среды возникают вопросы конфиденциальности пользователей. В таком случае важно обеспечить защиту этих данных, особенно если необходимо создать среду, подобную среде конечного пользователя.
5. Автоматизация
Как мы автоматизируем выполнение повторяющихся тестов или тестов с разными данными, так же можно автоматизировать и создание тестовых данных. Можно сравнить результаты, полученные при использовании разных наборов данных в тестах, и автоматизировать этот процесс сравнения.
6. Эффективное обновление данных
Это, безусловно, самая важная методология, которая составляет основу управления данными. Все пункты, упомянутые выше, особенно те, что касаются настройки данных, очистки данных, прямо или косвенно связаны с этим.
Создание центрального репозитория для хранения всех видов данных, необходимых для различных видов тестирования, является важным шагом в управлении данными. В последующих циклах тестирования проверяется наличие необходимых данных в репозитории.
Если данные отсутствуют, они добавляются в тестовую среду и затем сохраняются в репозитории для будущего использования. Это позволяет сократить усилия по созданию тестовых данных и эффективно использовать уже существующие данные.
Множество версий репозитория может быть сохранено или изменено по мере необходимости. Это помогает в регрессионном тестировании и обнаружении потенциальных ошибок, связанных с изменениями данных.
Заключение
Тестовая среда – важная задача для каждой команды QA.
Для более эффективного обслуживания тестовых сред многие организации формируют специализированные команды по обслуживанию тестовой среды.
Оптимизация управления тестовыми данными приводит к улучшению тестирования. Это позволяет организациям снизить затраты, сохраняя при этом надежность продукта.
Перевод статьи «Test Data Management Concept, Process and Strategy».