В индустрии разработки корпоративного программного обеспечения тестирование в производственной среде становится все более и более распространенным.
Самое главное преимущество — знать, что ваши функции до того, как ваши пользователи получат к ним доступ.
С помощью флагов функций вы можете безопасно выпускать свой код в рабочую среду, тестировать функциональность, проверять дизайн и производительность, исправлять любые несоответствия или дефекты, а затем включать флаг функций и разрешать пользователям доступ, чтобы убедиться, что все идет в правильном направлении.
Раньше тестирование в производстве вызывало непререкаемый упрек. Но мы не можем отрицать тот факт, что некоторые из них были или, возможно, большинство были, несомненно, заслуженными.
Однако все меняется, и индустрия программного обеспечения, возможно, является самой динамичной «вещью» из когда-либо существовавших.
Во многих случаях тестирование в производственной среде сейчас не просто приемлемо, но и активно поощряется.
Как сказано выше, тестирование в производственной среде имело ужасную репутацию, и ее было немного трудно преодолеть. Многие до сих пор сомневаются в правильности сложившейся ситуации, чего и следовало ожидать.
Но следует ли проводить тестирование в производственной среде? Каковы задачи и как их выполнить?
В этой статье мы начнем с определения производственного тестирования (сместив тестирование вправо) и объясним, почему большинство людей считают его пустой тратой времени. После этого мы также поможем вам понять, почему тестирование в производственной среде важно для вашего бизнеса.
Прежде чем начать, мы хотели бы, чтобы вы знали, что тестирование в производственной среде не заменяет контроль качества ( QA) или способ пропустить модульное тестирование и интеграционное тестирование.
Вместо этого это расширение контрольных точек тестирования и обеспечения качества до максимально реалистичной настройки продукта в реальных сценариях.
Существует два способа тестирования в производственной среде.
В первом случае тест проводится для подтверждения или отклонения выдвинутой гипотезы: «Если мы внесем это улучшение, клиенты будут совершать конверсию как минимум на 10 % чаще“
Второй шаг – убедиться, что корректировка не повлечет за собой негативных последствий для клиентов или окружающей среды: “Если мы внедрим это изменение, это не повлияет на процесс оформления заказа“.
Эти два способа более распространены среди инженеров производственного подразделения и QA, которые хотят углубиться в стратегию обеспечения качества.
Давайте начнем с основной информации о том, что тестируется в производственной среде.
Что такое тестирование в производственной среде?
Давайте начнем с того, что развеем распространенное заблуждение. Тестирование в рабочей среде не означает предоставление непроверенных функций в надежде, что все будет работать нормально, когда клиент попытается их использовать.
Говоря более наглядно, надлежащий план обеспечения качества должен по-прежнему гарантировать, что тестирование будет проводиться как можно раньше в процессе, используя все преимущества модульного тестирования и других методологий автоматизированного тестирования.
Иными словами, в- производственное тестирование должно дополнять, а не заменять компетентные предварительные испытания.
Всегда будьте ясны:тестирование в производственной среде не означает выпуска непроверенного кода в надежде, что он будет работать, или ожидания обнаружения проблем после его использования конечными пользователями. Мы не можем отрицать тот факт, что ошибки часто попадают в производство. Команда DevOps может использовать тестирование в рабочей среде, чтобы подготовиться к возможным ошибкам.
Если команда готова решать такие проблемы, они могут быть устранены значительно быстрее с помощью постоянного мониторинга.
Это то, чего пытается достичь производственное тестирование.
Анализ взаимодействия с пользователем также могут извлечь выгоду из тестирования продукта. На этом этапе A/B-тестирование — жизненно важный инструмент для отслеживания того, как новая или недавно обновленная функция воспринимается целевыми пользователями.
Кроме того, TIP (тестирование в производственной среде) — это практика разработки программного обеспечения, которая включает тестирование новых изменений кода в реальном пользовательском трафике, а не в промежуточной среде. Это одна из стратегий тестирования непрерывной доставки. Версия программного обеспечения, выпущенная для реальных пользователей, называется производственным программным обеспечением. С другой стороны, разрабатывается программное обеспечение для разработки, промежуточного или предварительного производства, но оно не используется конечными пользователями. Зачем тестировать в производственной среде?
Компании традиционно пытались гарантировать, что программное обеспечение, которое они создают, было должным образом протестировано на наличие недостатков в настройках разработки, подготовки и подготовки к производству, прежде чем оно будет выпущено для пользователей в производственной среде. Предотвращение обнаружения ошибок потребителями за счет раннего обнаружения ошибок повышает доверие клиентов и общую удовлетворенность брендом и его товарами.
Внедрение метода для тестирования в производственной среде требует хорошо разработанного плана развертывания, а также первоначального обязательства использовать флаг. решение для управления, если оно еще не установлено.
Основные преимущества и недостатки рассмотрения возможности тестирования в рабочей среде будут обсуждаться в этой статье. После этого я расскажу вам об основных процессах производственного тестирования.
#1. Повышает точность тестирования развертываний
Нет лучшего способа протестировать новую функциональность, чем сделать это в той же среде, где она будет использоваться. Это особенно верно при тестировании в контекстах более низкого уровня, которые, скорее всего, будут иметь неточные данные или расхождения в конфигурации. При перемещении между средами это может привести к нерегулярному развертыванию в рабочей среде.
При тестировании в рабочей среде вы можете быть уверены, что ваши пользователи получат те же функциональные возможности, которые были протестированы.
№ 2. Улучшения в тестировании производительности
Тестирование в рабочей среде позволяет разработчикам увидеть, как приложение ведет себя в реальных ситуациях, когда сценарии тестирования заранее не определены. Разработчики могут быстро найти уязвимости, которые было бы трудно обнаружить при других настройках.
Не пропустите: тестирование производительности и лучшая производительность Инструменты тестирования
#3. Мгновенная обратная связь по бета-программам
Внедрение производственного тестирования в программы бета-тестирования продуктов вашего решения позволяет разработчикам получать ранние отзывы о недавно выпущенных функциях. Бета-программы также предоставляют пользователям немедленную обратную связь по проблемам взаимодействия с пользователем.
#4. Непредсказуемые сценарии для запуска
Это правда, вам не разрешат протестировать каждое отдельное взаимодействие с пользователем до выпуска конечного продукта, как бы вы ни старались.< /сильный>Проводя тестирование в производственной среде, разработчики могут отслеживать производительность приложений в практических сценариях. Единственная область, в которой разработчики могут отслеживать и устранять ошибки, возникающие во время неожиданных взаимодействий в приложении, — это рабочая среда.
#5. Объективная оценка эффективности взаимодействия с пользователем
Основываясь на анализе вашей целевой аудитории, вы можете предсказать, как ваши пользователи отреагируют на новую функцию или изменение дизайна на определенном уровне.
Однако , пока продукт не появится в сети и с ним не взаимодействуют реальные люди, вы никогда не можете быть уверены, что ваш прогноз верен.
С каждым обновлением производственное тестирование предоставляет разработчикам объективную информацию о качестве взаимодействия с пользователем.
В эпоху облачного развертывания, распределенных приложений и микросервисов, а также подходов Agile и DevOps больше не существует фазы жизненного цикла, посвященной традиционному функциональному тестированию. .
Большая часть тестирования автоматизирована, от модульных тестов до дымовых тестов и системных тестов, но функциональное и исследовательское тестирование становится все более редким, и нет части жизненного цикла, посвященной исключительно тестированию.
В современной разработке продукта услуги и методы программного обеспечения, быстрое продвижение является лозунгом; мы запускаем без полного практического тестирования, но имеем возможность быстро вернуться к предыдущей «хорошей» версии. Мы не учитываем некоторые компоненты качества приложения.
Каковы проблемы тестирования производительности и как их решить?
Не менее важно понимать сложности тестирования производительности, верно? Помня об этом, мы перечислили основные проблемы вместе с решениями!
#1. Угрозы безопасности
Когда дело доходит до тестирования продукта, одной из самых сложных проблем является безопасность.
Мы больше не работаем только с фиктивными данными; мы работаем с подлинными данными.
Эта реальность повышает важность правильной обработки данных, требуя осторожности при тестировании с использованием существующих данных о клиентах.
Уровень защиты данных варьируется в зависимости от вашего приложения.
Некоторое программное обеспечение требует соблюдения HIPAA и налагает серьезные штрафы за несоблюдение.
Другое, особенно в финансовом секторе, имеет много информации, позволяющей установить личность (PII). Утечка данных может привести к огромным судебным искам и еще более серьезным последствиям.
№ 2. Неправильный анализ результатов тестирования производительности
Процедура тестирования должна выполняться опытным тестировщиком производительности, который сможет оценить ситуацию и сможет постоянно пересматривать и добавлять тесты для обеспечения согласованности. Архитектура приложения должна быть хорошо известна тестировщику производительности.
Кроме того, тестировщик производительности должен иметь знания об операционных системах, веб-архитектуре, модели OSI, сетевых идеях, структурах данных, концепциях производительности на стороне клиента и концепциях производительности на стороне сервера. Эти эксперты по производительности смогут своевременно изучить результаты тестирования.
#3. Тестирование в производственных условиях сложно
Для обнаружения отклонений в производственной среде крайне важно постоянно следить за тенденциями. Тестирование производительности желательно планировать в рабочей среде, а не в реальном контексте.
Если бизнес-потребности требуют выполнения в реальной производственной среде, такие операции следует выполнять только в нерабочее время, оставляя достаточно времени для любых необходимых корректирующих действий в случае сбоя программы в производственной среде.
#4. Недопустимые возможности развертывания
Тестирование в производственной среде требует наличия устоявшейся методологии развертывания. Для начала вам потребуется возможность быстрого развертывания, что означает отказ от чрезмерно ручного развертывания, которое сопряжено с риском из-за несогласованности. После этого, как было сказано ранее, вам нужно будет выполнять развертывание чаще, чтобы обеспечить безопасное введение флагов функций в ваше приложение. Вы должны иметь возможность динамически использовать флаги функций, а не только включать и выключать их, но также изменять их функциональность в зависимости от пользователя.
Как проводить тестирование в рабочей среде?
Мы упомянули два успешных способа тестирования в производственной среде. Вы можете найти их ниже.
A/B-тестирование. Использование A/B-тестирования в производственной среде — это один из методов тестирования. Это просто означает, что доступны две версии веб-сайта, приложения или функции, чтобы увидеть, какие из них предпочитают пользователи. A/B-тестирование можно успешно проводить только с реальными пользователями, поэтому его нельзя проводить вне производственной среды. При правильном выполнении он обеспечивает столь необходимую обратную связь для разработчиков, тестировщиков и других заинтересованных сторон.
Непрерывный мониторинг: Команды могут обнаруживать проблемы с программным обеспечением, которые могут возникнуть только в рабочей среде, путем постоянного мониторинга рабочей среды после распространения программного обеспечения. В производственной среде, например, поиск медленно загружаемых страниц в веб-приложении приобретает совершенно новый смысл. Это связано с тем, что страница с меньшим набором данных и меньшим трафиком может быстро загружаться в тестовом режиме.
Лучшие способы реализации тестирования в рабочей среде
Чтобы сгенерировать нагрузку для тестовых случаев, обязательно используйте фактические данные о трафике, которые вы собирали в производственной среде (такие как пользовательские процессы, поведение пользователей и ресурсы). Таким образом, вы можете быть уверены, что смоделированное поведение реалистично при выполнении тестов в производственной среде.
Следует использовать настоящие браузеры и устройства. Это может показаться самоочевидным, но об этом стоит сказать. Рабочая среда должна состоять из реального устройства, браузера и операционной системы. Невозможно судить о производительности программного обеспечения, не применяя его в реальных условиях. Поскольку ни один эмулятор или симулятор не может точно имитировать реальные пользовательские условия, их не следует использовать здесь.
Подписка на новые выпуски функций — отличный способ увидеть, как ваше программное обеспечение работает с реальными пользователями. Это позволит вам отслеживать и собирать данные от пользователей в режиме реального времени, а также вносить изменения в свой подход к тестированию по мере необходимости, не беспокоясь о негативном влиянии на их опыт.
Флаги функций позволяют тестировать новые функции в процессе производства, которые при необходимости могут быть отозваны с помощью «выключателя». Поскольку полностью воспроизвести производственную среду на промежуточной стадии сложно, флажки функций позволяют тестировать новые компоненты в реальных условиях, сводя к минимуму риски.
Объем трафика, который веб-сайт может выдержать, прежде чем он выйдет из строя, определяется стресс-тестированием. Обычно требуется тестирование, выходящее за рамки стандарта, чтобы увидеть, насколько хорошо веб-сайт выдержит нагрузку. Он также хочет посмотреть, будет ли веб-сайт использовать хорошие механизмы обработки ошибок в этих сложных ситуациях. Также анализируется, как программа работает при неожиданном увеличении или уменьшении нагрузки.
Заключительные слова
Поощряйте свою команду включать в свой подход тестирование в рабочей среде. Это отличный способ получить практический опыт работы с реальными сценариями и найти недостатки, которые вы не обнаружили бы в тестовой среде. Помните, что только то, что вы проверили производительность приложения в лаборатории, не гарантирует, что вы получите такие же результаты в рабочей среде.
Биография автора: Алисия работает с командой редакторов. A3logics, ведущей компании, предлагающей консалтинговые услуги в области облачных вычислений. Изучение новейших технологий, чтение о них и написание своих мнений всегда были ее страстью. Она ищет новые возможности, чтобы выразить свое мнение, исследовать технологические достижения и документировать детали. Вы всегда можете увидеть, как она наслаждается книгами или статьями на разные темы или записывает свои идеи в блокноте.
TAG: qa