Пирамида тестирования: раскладываем по уровням

QA-инженер должен знать основные инструменты, которые помогают организовать работу по тестированию ПО. Сегодня мы поговорим про Пирамиду тестирования и ее уровни.

Тестировщик » QA-блог » Обучение QA » Пирамида тестирования: раскладываем по уровням
на изображение пирамида тестирования

Уровни тестирования

Уровни тестирования в пирамиде – это визуализация видов тестирования по модульности. Ее предложил Майк Кон в своей книге «Scrum: гибкая разработка ПО» (Succeeding With Agile. Software Development Using Scrum). С учетом тенденций в 2023 году применение уровней тестирования все так же актуально в QA. 

Во время интервью на вакансию тестировщика могут спросить не только про Канбан-доски, дополнительные функции LinkedIn или шарики пинг-понга в автобусе, но и про уровни тестирования. При этом надо понимать, что существуют разные версии Пирамиды (может отличаться терминология). В этой статье рассмотрен ее классический вариант.

Из каких уровней состоит Пирамида тестирования)

Обычно Пирамиду тестирования представляют в виде 4 уровней. Если считать снизу вверх, то они следующие:

  1. Модульное тестирование (юнит-тестирование);
  2. Интеграционное тестирование;
  3. Системное тестирования;
  4. Приемочное тестирование (ПТ).

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

Такая структура обусловлена тем, что модульные тесты разрабатываются и запускаются в работу быстрее. В то же время, тесты верхнего уровня больше зависят от внешних факторов (сервера, интерфейс, окружение, сценарии пользователя и т.п.), поэтому сложнее и дороже. Давайте рассмотрим их подробнее.

Уровень модульного тестирования (Unit testing)

На этом уровне тестируется один модуль программы (компонент, функция, метод и т.п.). Поэтому здесь тесты имеют узкую область применения и мало зависят от других модулей (на то они и модульные).

На практике в большинстве случаев такие тесты создает и использует разработчик, поэтому при нахождении ошибки не делают баг-репортов. Естественно, чем раньше будет начато тестирование – тем лучше. 

Особенности модульного уровня:

  • Здесь тестирования больше, чем на других уровнях (особенно в итеративной модели).
  • Такие тесты стараются автоматизировать;
  • Они выполняются быстрее и требуют меньше ресурсов.

Уровень интеграционного тестирования

На этом уровне тестируется взаимодействие модулей ПО. Сюда относится, например, API test и проверка сервисов (логи на сервере, записи в базе данных и т.п.).

Обычно на этом уровне QA-специалисты начинают применять свои базовые умения. Это может быть и функциональное тестирование, и нефункциональное (например, нагрузочное).

Особенности интеграционного уровня:

  • Запускаются все функционирующие модули;
  • Подключаются требуемые внешние сервисы;
  • По возможности тесты автоматизируются;
  • Наиболее востребовано в инкрементной модели разработки.

Уровень системного тестирования

Здесь тестируется уже вся программа целиком. Проверяется взаимодействие ПО с системой по функциональным и нефункциональным требованиям. Важно максимально эффективно описать все найденные баги.

Особенности системного уровня:

  • Следует тестировать на том окружении (устройство, операционная система, браузер и т.п.), которое скорее всего будет у пользователей;
  • Тест-кейсы должны предвидеть сценарии использования ПО;
  • Основные выявляемые баги – нехватка ресурсов, несовместимость с окружением, некорректные наборы данных, неудобство использования и т.п.

Уровень приемочного тестирования

На этом уровне ПО проверяется на соответствие заявленным требованиям. Приемка может быть как внешней (проводит заказчик), так и внутренней (проводят свои специалисты). Проводить ее имеет смысл, когда ПО достигло нужного уровня качества и есть план приемки.

Особенности приемочного уровня:

  • В плане приемки указывается комплект приемочных тестов на соблюдение требований к ПО;
  • Здесь часто используют тесты E2E (end-to-end, сквозные) – т.е. сценарии от начала и до конца использования ПО с точки зрения пользователя;
  • На этом уровне тесты сложнее автоматизировать, поэтому они дорогие;
  • Поэтому их используют меньше, чем на предыдущих уровнях.

Резюме

Пирамида тестирования разделяется на уровни по модульному принципу. У каждого есть свои особенности. Обычно больше всего тестов проводится на модульном уровне, затем идут интеграционный, системный и приемочный.

на изображение автор Михаил Кулешов

Автор Михаил Кулешов

Михаил, профессиональный партнерский маркетолог, является основателем компании South Media OÜ, которая была создана в 2018 году и базируется в Таллинне. С 2016 года Михаил уехал из Финляндии и жил как настоящий «цифровой кочевник» в IT-индустрии, путешествуя по миру только с ноутбуком. Михаил работает и пишет статьи, связанные с IT-индустрией.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *