Рубрики
Uncategorized

Что такое дым, здравомыслие, регрессионные тестирования? Как CI / CD с ними.

Оригинально опубликовано по адресу: https: //kodziak.com/blog/what-is-smoke-sanity-regression-testing-how-to-ci-cd -… с меткой тестирования, Devops, Codequality, Testautomation.

Оригинально опубликовано: https://kodziak.com/blog/what-is-smoke-sanity-regression-testing-how-to-ci-cd-with-them/

С ростом тестовой архитектуры мы сталкиваемся с различными проблемами. Время выполнения, вспучение, дублирующие тестовые случаи и т. Д. Тесты становятся трудно управлять, и мы можем начать чувствовать, что писать и поддерживать их бессмысленным.

Хотя скрывается на Reddit, я столкнулся с дискуссией о типах испытаний. Затем он ударил меня — почему мы не можем классифицировать их и вместо одного долгих прогон, выполняют их группу группой? Мы не потеряем никакого покрытия, и мы сократим время на рынок. 🥳.

Типы сквозных испытаний

Придерживаясь E2E Tests только, после прочтения обсуждения Reddit и думать о теме, я решил классифицировать их:

  • Тестирование дыма,
  • Злозность тестирования,
  • регрессионное тестирование.

Вы, вероятно, уже хорошо знаете последнюю группу (если нет → Нажмите здесь ).

Теперь давайте копать в каждый из типов, упомянутых ранее.

Тестирование дыма

Основные характеристики этих испытаний являются:

  • Они выполняются для покрытия критических функций приложения (приоритетные сценарии),
  • Цель состоит в том, чтобы проверить «стабильность» приложения для продолжения дальнейшего тестирования,
  • Это подмножество регрессионных тестов,
  • Они как общее осмотр здоровья,
  • Неспособность этих тестов приводит к мгновенному отклонению.

Проще говоря, тестирование дыма должно охватывать самые критические части, те, которые позволяют нам подтвердить, что приложения работают и обеспечивают бизнес-значение.

Например, этот сценарий может быть в этой категории:

  • [ Netflix.com] Пользователь может войти в систему, выберите сериал/фильм и начните просмотреть.

Злозность тестирования

Следующая группа — это здравоохранение, основные аспекты которых являются:

  • Они выполняются, чтобы проверить более подробные функции приложения (приоритетные сценарии),
  • Цель состоит в том, чтобы проверить «рациональность» приложения для продолжения дальнейшего тестирования,
  • Это подмножество регрессионных тестов,
  • Они как подробный контроль здоровья,

Проще говоря, тесты в здравии должны охватывать более специализированные действия пользователей.

Вот пример сценария, который попадает в эту категорию:

  • [Netflix.com] Пользователь может искать фильмы, используя панель поиска.

Как вы можете себе представить, тесты в здравии могут иметь некоторые тестовые случаи, общие с помощью дымовых испытаний, но и существуют определенные различия между этими категориями.

Регрессионное тестирование

Последнее, но не менее важные регрессионные тесты:

  • Они выполняются для проверки подробных функций приложения (Priority1 + Priority2 + Priority3 Сценарии)
  • Цель состоит в том, чтобы проверить каждую существующую особенность приложения,
  • Тестовые случаи регрессии должны быть хорошо документированы,
  • Они как всесторонний контроль здоровья,

Проще говоря, регрессионные испытания должны охватывать все аспекты применения — важные и менее важные. Выполнение регрессионных тестов должно дать нам обзор, что все работает должным образом.

Например, сценарий, который может быть в этой категории:

  • [ Netflix.com] Пользователь может открыть «Дополнительную информацию» о телесериале/фильме и выбрать жанр.

Количество испытаний по типу

Регрессивные тесты> Знабительные тесты> Тесты дыма.

И вот визуальное представление о том, как наборы пересекаются.

Организуйте процесс развертывания на основе типов тестов

Я работал с одной тестовой базой данных и процесс развертывания некоторое время, и я подумал, что это не идеально, а не плохо, но, как оно растет, ему нужны некоторые изменения.

В зависимости от типа тестов, мы можем выбрать наиболее важные, и те, которые менее важны. Как мы все знаем, самые важные — это те, которые доставляют бизнес-значение, поэтому мы должны проверить, будут ли эти функциональные возможности, как и ожидалось с каждым развертыванием. Основываясь на этих критериях, мы можем разработать наш процесс развертывания.

Работа с приложением, основанным на Ci/CD, несет потенциальные проблемы, такие как проектирование процесса развертывания с тестированием автоматизации. Поскольку мы не хотим, чтобы это было долго, мы можем классифицировать тесты и управлять каждой группой в другое время.

Как вы можете видеть, только с каждым приложениями выполняются тесты дыма. Таким образом, мы всегда будем знать, что самые важные функциональные возможности работают.

Заключение

По мере роста числа ваших тестов они становятся сложнее для обслуживания. Запуск всех из них после каждого развертывания потребляет слишком много времени. Если вы организуете их на категории, вы сократите время на рынок без потери необходимого охвата.

Как вы классифицируете свои тесты, зависит от вас. Они не обязательно должны быть разделены на курить, здравоохранение и регрессионные категории. Вы можете сделать это по-разному, например, по уровню критичности.

Автоматическое тестирование в процессе развертывания — это стандартная практика в современном разработке программного обеспечения, используемая лучшими командами и компаниями. Поэтому CI/CD следует зависеть от результатов наших тестов, которые гарантируют, что критические функциональные возможности всегда работают.

Хорошего дня! 🥳.

Оригинал: «https://dev.to/kodziak/what-is-smoke-sanity-regression-testing-how-to-ci-cd-with-them-5djd»