Что такое дымовое тестирование?
Тестирование дыма позволяет нам быстро ослаб статус приложения, запустив набор сквозных испытаний, предназначенных для проверки наиболее важных (или наиболее значимых) потоков пользователей. Следует запускать только после свежего развертывания и в идеале через обычные промежутки времени после этого.
Тестирование дыма отличается от полного регрессионное тестирование В основном два аспекта:
- Охват дымового тестирования — широкий и мелкий Отказ Его цель — примерно тестировать как можно больше возможностей в течение короткого времени. С другой стороны, регрессионные тестирование предназначено для того, чтобы быть максимально тщательным, чтобы убедиться, что любые существующие функциональные возможности не были отрицательно затронуты новыми изменениями, введенными новым фиксацией или выпуском.
- Тестирование дыма должно быть быстро По сравнению с регрессионным тестированием, поскольку его основная цель — быстро оценить основные потоки пользователя в приложении.
По этой двум причинам, тестирование дыма хорошо подходит для того, чтобы быть работать непрерывно через регулярные промежутки времени для проверки состояния приложения со временем. На самом деле, бегающие тесты сразу после свежего развертывания будут проверять только приложение, пока в этом конкретном состоянии только после нового перезапуска. Вот почему, запуск набора дымовых испытаний на регулярных интервалах, убедитесь, что приложение ведет себя так, как следует во время разных состояний в разных моментах.
Теперь давайте посмотрим, какие часто задаваемые вопросы о тестировании дыма, прежде чем перейти на более практические вопросы.
FAQ FAQ
Должен ли я запустить свои дымовые испытания на производстве или на постановке?
В идеале на обоих. Испытание дыма полезно для постановки, потому что он позволяет получать уведомления о важных проблемах быстрее. Тщательный набор регрессионного тестирования обычно занимает несколько минут, иногда даже 30 минут или час или даже больше, в зависимости от размера приложения. Это означает, что после нового коммита или освобождения нам, возможно, придется ждать долгое время, прежде чем знать, если наш код сломал что-то основное. С помощью дыма, вместо этого у нас есть почти Немедленная обратная связь на статус нового коммита или освобождения. Обычно на обстановке или тестировании среды дым — это сопровождаемый более подробным регрессионным тестом Отказ
Как долго должен взять набор дымовых испытаний?
Для дыма, чтобы быть эффективным, должно быть быстро Отказ Я бы сказал, что разумный верхний предел составляет 5 минут для небольшого приложения, 10 для среднего приложения и 15 для большого применения. Но, конечно, самый короткий, тем лучше.
Как я могу убедиться, что мой дымовой тест занимает как можно меньше?
На самом деле есть пара трюков, которые вы можете использовать:
- Ограничить использование статического
ждать
Инструкции, такие как ожидание предопределенного времени (например, 10 секунд) для загрузки страницы. Вместо этого используйте интеллектуальные инструкции, такие как Дождитесь появления элемента Отказ Еще лучше, используйте инструмент, который может сделать это для вас под капотом (неявное ожидание). - Запустите тесты параллельно. Убедитесь, что между различными тестами нет никаких отношений между различными тестами, чтобы их можно было запускать параллельно. Обычно это может иметь большое значение в общем времени работы.
- Не забудьте проверить только самые значительные части приложения. Не собирайтесь слишком много в деталях и убедитесь, что тестируйте функции, которые могут указывать, с определенной степенью уверенности, если и другие части приложения тоже сломаны.
Когда я должен запустить свои тесты дыма?
Дымовые испытания должны быть запускаются как минимум aftegruy New Deploy по стабилизации или производству. Даже лучше, вы можете запустить ваши дымовые тесты после каждого коммита, так как они не будут занимать много времени, чтобы работать в любом случае. Наконец, вы также можете использовать ваши дымоходы для проверки состояния вашей производственной или промежуточной среды через регулярные промежутки времени.
Есть ли предпочтительную структуру для бега дымовых испытаний?
Вообще говоря, нет. Любая концевая структура тестирования должна просто сделать работу. Однако, как мы увидим позже, вы также можете пойти без структуры и использовать предварительно упакованное решение облачного тестирования для упрощения и уменьшения поддержания вашего решения для тестирования дыма.
Можно ли курить тестирование заменить регрессионные тестирования?
Нет. Тестирование дыма не сможет охватывать большую часть функциональности приложения, и его цель отличается от, чем у регрессионного тестирования. Для серьезного продукта я рекомендую иметь оба. Тем не менее, если у вас нет ни одного из двух, то, по крайней мере, наличие Smoke Test Suite — это Гигантский скачок вперед Потому что он может потенциально поймать хороший кусок критических проблем, прежде чем они станут проблемой.
Опция 1. Создание решения для тестирования дыма с нуля
Теперь давайте посмотрим, что нужно, чтобы построить решение для тестирования дыма с нуля. Основное требование, которое у нас есть, состоит в том, что тестовый набор дыма должен быть в состоянии запустить после нового развертывания и идеально выполняться непрерывно на регулярном интервале.
Первое требование нашего решения для тестирования дыма может быть просто простым, если у вас уже есть сочлененный процесс сборки или Инфраструктура CI на месте . В этом случае, на самом деле, вы можете просто добавить еще один шаг в сценарии сборки, чтобы запустить ваши дымоходы.
Выберите структуру тестирования
Далее выберите хороший Случайная структура тестирования Отказ Если вы используете JavaScript для своих тестов, у вас есть много хороших вариантов:
Каждая из этих рамх имеет свои плюсы и минусы. Например, кипарис и Тайко поддерживают только браузеры на основе хрома. В то время как селен, с того, что селен является самым сложным для решения. В то же время, кипарис, Тайко и Кукла имеют очень хорошее Тестер опыт Отказ
Выберите тестовый бегун (необязательно)
При желании, если ваша система тестирования уже не интегрируется, вы должны выбрать Тестовый бегун (Убедитесь, что он совместим с этой рамки тестирования, которую вы выбрали). В этом случае также есть много вариантов для выбора:
Получить кодирование
Далее, кодируйте свои тесты вручную или используйте Тестовый рекордер такие как Селен IDE Отказ Обратите внимание, однако, что если вы используете IDE SELENIUM IDE, ваш вариант рамок может быть ограничен.
После того, как вы будете готовы к тестам, убедитесь, что они проверяются в репозитории (вы можете решить, если в репозитере основного приложения или где-то еще) и убедитесь, что они доступны для CI, когда он работает.
Наконец, когда тест терпит неудачу, большинство СНГ сообщит вам с уведомлением (электронное письмо, слабые сообщение, SMS и т. Д.), Так что на этом отсеке нет ничего другого.
Выберите платформу CI (если у вас уже нет)
Вероятно, избыточно сказать, что если у вас уже нет CI уже на месте, вам, вероятно, нужно, чтобы он запустил ваши дымовые испытания. Ваши варианты тоже много в этом случае:
Запуск тестового набора на регулярных интервалах
Теперь, если вы хотели запустить ваши дымовые испытания в регулярные интервалы Это будет совсем другой вид зверя. В этом случае, на самом деле, ваша инфраструктура CI в основном бесполезная, так как вам понадобится всегда на инфраструктуре, чтобы иметь возможность постоянно выполнять ваши тесты. Варианты в этих случаях в основном два:
- Иметь выделенную машину в облаке для проведения тестов. Настройка задания CRON, чтобы начать тестовый набор дыма на желаемый интервал.
- Настройте свои тесты, которые будут работать в среде без сердца, например AWS LAMBDA , Функции Azure , Функции облачных Google Отказ В этом случае функция без сервера может быть установлена для выполнения с указанным интервалом, без необходимости какого-либо cronjob.
Вторые варианты, вероятно, легче поддерживать в долгосрочной перспективе, но требуется некоторые предыдущие знания о неверном программировании и конкретной облачной платформе в использовании. Однако в обеих ситуациях вам придется реализовать способы сохранить тестовые апартаменты в актуальном состоянии на удаленной машине или на платформе без сервеса, плюс вам нужно будет реализовать решение для получения уведомления о неудачных тестах. Например, вы можете отправить электронное письмо или вам всю команду или отправить уведомление о слабым состоянии на вашем предпочтительном канале.
Вариант 2. Используя инструмент веб-тестирования, созданный для этой цели
Как мы видели в предыдущем разделе, реализация решения для тестирования веб-дыма с нуля может быть довольно трудом. Если у вас уже есть инфраструктура CI на месте, то вы можете выбраться из нее немного проще, но все же, если вы хотите непрерывно запустить тестовой набор, то практически невозможно избежать реализации и поддержания дополнительных инструментов. Все эти домашние решения, вероятно, станут Технический долг Как со временем фокус сдвигается к реализации тестов, а не поддержание инфраструктуры, на которой они бегут.
Основываясь на этих предположениях, выбирая инструмент, специально созданный для этой цели (без восстановления одного), часто является наиболее разумным вариантом, который будет погасить себе много раз даже в краткосрочной перспективе. Чтобы дать вам представление о том, что эти инструменты способны, посмотрите на этот список:
- С выделенным инструментом, обычно вам просто нужно создавать тесты и запустить их. Нет необходимости выбирать Frameworks, CI платформы, тестовые бегуны или тестовые рекорды Отказ Все они интегрированы в один отдельный продукт и полностью скрыт для вас.
- Вы можете легко Запустите тестовый люкс по требованию , используя окна.
- Вы можете запланировать тестовый люкс в Запустить регулярные промежутки времени используя встроенный планировщик.
- Вы можете иметь Полный отчет последнего тестового прогона, а также статистика о предыдущих прогонах.
- Все виды Уведомления заботится о вне коробке.
По сути, цель этих инструментов сводится к усилиям тестирования от создания и поддержания инфраструктуры, чтобы просто писать и поддерживать тесты. Единственный недостаток, который я могу подумать, заключается в том, что большинство этих инструментов не очень подходит для удовлетворения очень пользовательских требований, в этом случае вам может понадобиться вернуться и сделать это самостоятельно. Но если честно, это общее правило в разработке программного обеспечения.
Существует несколько инструментов, которые соответствуют описанию, которое мы приведены выше. Каждый инструмент имеет свои плюсы и минусы, некоторые дешевые другие более дорогие, но в целом все они могут значительно улучшить ваш опыт тестирования дыма.
Один из тех инструментов — Frontend Robot Отказ Frontend Robot — это полностью облачный инструмент, который упрощает весь опыт тестирования. Это обеспечивает Умные триггеры Чтобы вызвать выполнение тестового набора по требованию, а возможность запускать тесты на регулярных промежутках с его Запустить планировщик Отказ Но это только царапает поверхность, посмотрите нашу домашнюю страницу Чтобы получить больше информации.
Выводы
Проверка дыма IA Решающая часть конвейера разработки программного обеспечения, однако, часто упускается из виду и неправильно понимается. Как и любой другой тип тестов, настройка и поддержание на заказ встроенное решение часто утомительно и дорого, с результатами того, что большую часть времени являются подактивными. Это именно точки боли, которые стараются решить современные тестирование. Использование выделенных инструментов для реализации вашего решения для тестирования дыма часто является лучшим выбором с точки зрения времени принятия, расходов и общего счастья разработчика/тестера. Единственное исключение было бы, если ваши требования настолько пользовательские, что предварительно упакованное решение не является вариантом, но это обычно довольно редкое возникновение.
PS: Для обзора более тестирования инструментов с хорошим испытательным тестером обратитесь к следующей статье: 5 Веб-тестирование Инструменты с лучшим тестером (TX) Отказ
Как всегда, если у вас есть какие-либо вопросы или отзывы, вы можете отправить мне электронное письмо в mario@frontendrobot.com. .
Оригинал: «https://dev.to/mariocasciaro/implementing-smoke-testing-in-production-and-staging-diy-vs-ad-hoc-tool-1n6b»