Наибольшее количество серьезных ошибок в приложении выявляется, когда тестовая среда или окружение были созданы и настроены правильно. Поэтому, помимо анализа требований к ПО и планирования различных сценариев тестирования, много времени уделяется созданию тестового стенда или тестовой среды.
В этой статье мы расскажем, что такое тестовая среда, что она в себя включает и почему так важно эффективно ее подготовить.
Подпишитесь на наш ТЕЛЕГРАМ КАНАЛ ПО АВТОМАТИЗАЦИИ ТЕСТИРОВАНИЯ
Содержание
- Что такое тестовая среда и тестовый стенд?
- Проблемы, связанные с тестовыми окружениями
- Лучшие практики для создания тестовой среды
- Заключение
Что такое тестовая среда и тестовый стенд?
Тестовую среду можно определить как среду разработки, в которой разработчики могут свободно тестировать свой код без вмешательства со стороны команды тестирования, в полной изоляции.
Однако тестовое окружение нужно не только разработчикам. Существуют специальные платформы, предназначенные для тестирования программного обеспечения, – тестовые стенды.
Любая тестовая среда включает в себя аппаратные, программные и сетевые компоненты для поддержки необходимой конфигурации и эффективного выполнения тестов. В некоторых случаях она может включать также используемые в процессе тестирования тестовые данные. Это позволяет более точно и реалистично проверить работу программы в различных ситуациях и условиях.
Тестовое окружение должно быть настроено так, чтобы соответствовать конкретным целям приложения, продукта или программы, которую мы хотим протестировать.
Проблемы, связанные с тестовыми окружениями
Несмотря на то, что разные команды тестирования могут сталкиваться с разными проблемами, некоторые из них могут быть общими для всех. Например, сложности с настройкой и поддержанием тестового окружения или несовместимость между аппаратными и программными компонентами.
Решение таких проблем является важной частью работы тестировщиков и на него уходит довольно много времени. Это отрицательно влияет на производительность и график тестирования.
Давайте остановимся на самых распространенных проблемах с тестовыми средами.
1. Удаленная тестовая среда
Тестовые среды в основном размещаются в географически удаленных местах. Это одна из наиболее часто встречающихся проблем для команд тестирования. В случае возникновения сбоев, связанных с аппаратным или программным обеспечением, сетью и т.д., команда тестирования не сможет работать, пока сбой не устранят специалисты, ответственные за поддержку тестовой среды.
Например, если тестовой среде требуется обновление прошивки или сборки, тестировщикам приходится обращаться за помощью к командам, которые управляют тестовым окружением. Это может занимать много времени и задерживать графики тестирования. Проблема обостряется, если команды находятся в разных часовых поясах.
2. Совместное использование тестовой среды
Очень часто команды разработки и тестирования используют одни и те же ресурсы, то есть компьютеры, программы, и другие необходимые для работы элементы.
Обычно считается, что окружения для разработки, тестирования и продакшен должны быть разделены, чтобы не возникало конфликтов и проблем.
Однако на практике это идеальное разделение редко осуществляется. Обеспечение отдельных ресурсов для каждой команды требует больших затрат. Поэтому многие компании настаивают на общем использовании одних и тех же ресурсов разработчиками и тестировщиками.
Такая общая тестовая среда может привести к конфликтам, если разработчики и тестировщики пытаются использовать ее одновременно. Из-за конкуренции за ресурсы могут возникнуть сбои и недопонимание.
3. Неэффективное распределение ресурсов
Иногда для тестирования сложных сценариев, требующих совместной работы нескольких частей программы, командам тестирования нужно использовать общие ресурсы. Неэффективное планирование использования ресурсов – одна из основных причин нестабильности окружения и конфликтов между командами.
4. Сложная конфигурация тестовой среды
Иногда конфигурация тестовой среды слишком сложная. Это создает некоторые проблемы, так как команда тестирования должна обладать необходимыми знаниями, чтобы понять требуемые настройки. И порой тестировщикам не хватает базовых знаний для правильной конфигурации тестовой среды.
В таких случаях тестировщики могут сами допустить ошибку при настройке тестового окружения. Это может существенно повлиять на тестовые сценарии и полученные результаты.
5. Тщательная настройка
В других случаях для каждого тест-кейса может потребоваться отдельная настройка. Это может быть связано с использованием разнообразных технологий, которые должны быть связаны вместе, или с несколькими компонентами, которые должны работать вместе при интеграционном тестировании.
В таких случаях надежность результатов зависит от безошибочной работы всех компонентов, потому что они зависят друг от друга.
Лучшие практики для настройки тестовой среды
Мы рассмотрели в общих чертах проблемы, с которыми сталкивается тестировщик до или во время начала выполнения тестов. Большинство из нас сталкивались с одной или несколькими из этих проблем в какой-то момент в процессе реализации проекта. Эти проблемы существовали и, возможно, будут существовать в той или иной степени, поскольку невозможно создать идеальные условия для тестирования.
Но хотя проблемы в процессе тестирования неизбежны, можно постараться свести к минимуму дефекты, которые могут возникнуть из-за проблем с настройкой тестовой среды. Давайте посмотрим, что может помочь в этом деле.
1. Тщательное изучение требований к тестированию
Всегда начинайте с основных и наиболее очевидных вещей. Когда разработчики предоставляют документ с требованиями, тестировщики должны их проанализировать и составить документ с тестовыми сценариями.
При планировании тестирования хорошей практикой является включение в документ с тестовыми сценариями подробной информации о тестовом окружении. Неудивительно, что тестировщик потратит некоторое время на анализ того, какая тестовая среда может быть необходима для наиболее эффективного тестирования.
Важно общаться с командой разработки для более детального анализа требований и для получения базовых знаний о процессе разработки. Это поможет тестировщику сэкономить время в процессе выполнения тестов.
2. Проверка возможности подключения
Еще один важнейший пункт в подготовке к тестированию – убедиться, что ресурсы или активы, которые вы собираетесь использовать для тестирования, доступны. В случае, если система должна быть интегрирована с другими компьютерами, проверьте их связь друг с другом с помощью команд ping или telnet.
Если компьютеры должны взаимодействовать друг с другом и находятся за брандмауэрами (специальными системами безопасности), то важно убедиться, что они могут успешно проходить аутентификацию через эти брандмауэры с использованием базовых параметров безопасности (BSO).
Если вы обнаружите, что некоторые компьютеры недоступны или требуют аутентификации BSO, вам следует обратиться в службу поддержки для решения этих проблем. Благодаря такой подготовке системы смогут нормально взаимодействовать друг с другом и не возникнет проблем с соединением или безопасностью.
Если команде тестирования требуется доступ к каким-либо ресурсам или репозиториям, такая проверка поможет заранее предпринять соответствующие меры.
3. Проверка сети и хранилища данных
Если для проведения тестирования вам необходимо подключение к интернету, то убедитесь, что пропускная способность вашей сети удовлетворяет вашим потребностям.
Если для тестирования есть необходимость в каком-либо хранилище, убедитесь в его наличии и возможности подключения к сети. Чаще всего за это отвечает администратор, но иметь базовые знания в этой области тестировщикам тоже полезно.
4. Проверка оборудования, ПО и лицензий
Часто случается так, что тестировщики начинают работу, не проверив какое аппаратное и программное обеспечение может понадобиться. В результате этого тестировщик уже в процессе тестирования понимает, что определенные функции доступны только на более высоком уровне аппаратного или программного обеспечения.
Поэтому важно заранее провести проверку и подготовку необходимых ресурсов, чтобы избежать проблем на более поздних этапах тестирования.
При обновлении аппаратного/программного обеспечения часто возникают простои. Тут, опять же, важно тщательное планирование. Некоторое программное обеспечение может потребовать лицензии. Ее приобретение также может занять несколько дней.
4. Использование разных версий браузеров
Тестирование, которое вы проводите, должно имитировать действия конечного пользователя. А у пользователей могут быть установлены самые разные браузеры. Это важно учесть при планировании тестирования и подготовке тестовой среды.
Хорошей практикой будет установить различные браузеры в своей локальной тестовой среде, начав с браузера более низкой версии, а затем перейти на последнюю версию.
5. Планирование использования тестовой среды
Одним из основных этапов планирования тестирования является планирование доступа к тестовым ресурсам, так как командам придется использовать их совместно.
Хорошей практикой было бы выработать подход с временным распределением, при котором команды используют ресурсы в разное время. Это поможет командам запускать независимые тесты, которые не будут влиять на работу друг друга.
Разумное планирование не только уменьшит хаос и конфликты среди членов команды, но и обеспечит стабильность тестового окружения в течение длительного времени.
6. Инструменты автоматизации и их конфигурации
Как известно, на каждом этапе тестирования есть несколько повторяющихся тестов, которые необходимо автоматизировать. Команда тестировщиков должна определить, какой вид автоматизации они хотели бы провести, и какие инструменты для этого понадобятся.
Заключение
Эти советы и рекомендации могут стать хорошим руководством для эффективной подготовки тестовой среды. Несомненно, каждая команда сталкивается со своими уникальными проблемами, и приведенные выше советы могут быть адаптированы и настроены в соответствии с их потребностями.
Перевод статьи «How to Effectively Prepare “Test Bed” and Minimize the Test Environment Defects (Part 1)».
Пингбэк: Как правильно составить баг-репорт