Зарегистрируйтесь для доступа к 15+ бесплатным курсам по программированию с тренажером

Система тестирования Этап тестирования

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

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

Что такое система тестирования

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

Как правило, система состоит из трех уровней:

  • Модульное тестирование
  • Интеграционное тестирование
  • Системное тестирование

Модульное тестирование

Модульное тестирование ищет дефекты в отдельных модулях приложения — объектах, классах, функциях, программных модулях и других компонентах, которые могут быть протестированы независимо друг от друга. Другими словами, мы проверяем конкретные фрагменты кода.

Модульное тестирование проводится с помощью юнит-тестов. Для примера представим, что нам нужно протестировать велосипед. На этапе модульного тестирования мы оценим, как работают отдельные запчасти — например, колесо.

Юнит-тесты колеса могли бы проверить:

  • Не деформирована ли сама форма колеса
  • Нет ли повреждений на ободке, спицах и камере
  • Все ли в порядке со звездочками
  • Крутится ли колесо в целом

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

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

При модульном тестировании этой функции юнит-тесты проверяют:

  • Работает ли функция суммирования
  • Нет ли в функции синтаксических или логических ошибок
  • Правильным ли получается результат суммирования

По такому же принципу мы проверим другие модули — например, API, которое передает параметры для суммирования.

Интеграционное тестирование

На этапе интеграционного тестирования мы проверяем взаимодействие между отдельными модулями — объектами, классами, функциями, программными модулями и так далее. Другими словами, мы проверяем, как два фрагмента кода работают вместе.

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

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

  • Правильно ли API отдает параметры в функцию
  • Верно ли API передает результат функции дальше

В контексте системы тестирования термин «интеграционное тестирование» означает проверку взаимодействий модулей, но в других источниках вы можете встретить другое определение. Иногда этим термином обозначают проверку интеграции между двумя подсистемами, то есть какими-то большими частями программы. Это тоже правильное определение, просто оно используется в контексте других аспектов тестирования.

Системное тестирование

Следующий уровень — это системное тестирование. Оно выполняется для всей системы и проверяет функциональные и нефункциональные требования.

Оба рассмотренных выше примера закончатся системным тестированием:

  • В примере с велосипедом мы сядем на него и попробуем поехать. Если получится, значит велосипед работает как система в целом — функциональный системный тест пройден
  • В примере с корзиной мы зайдем на сайт, добавим несколько товаров в корзину и проверим, как отображается сумма заказа. Если сумма верна и видна в интерфейсе, то — функциональный системный тест пройден

Аватары экспертов Хекслета

Остались вопросы? Задайте их в разделе «Обсуждение»

Вам ответят команда поддержки Хекслета или другие студенты

Для полного доступа к курсу нужен базовый план

Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.

Получить доступ
1000
упражнений
2000+
часов теории
3200
тестов

Открыть доступ

Курсы программирования для новичков и опытных разработчиков. Начните обучение бесплатно

  • 130 курсов, 2000+ часов теории
  • 1000 практических заданий в браузере
  • 360 000 студентов
Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»

Наши выпускники работают в компаниях:

Логотип компании Альфа Банк
Логотип компании Aviasales
Логотип компании Yandex
Логотип компании Tinkoff
Рекомендуемые программы
профессия
Выполняйте ручное тестирование веб-приложений, находите ошибки в продукте. Узнайте все о тест-дизайне.
4 месяца
с нуля
Старт 14 ноября

Используйте Хекслет по-максимуму!

  • Задавайте вопросы по уроку
  • Проверяйте знания в квизах
  • Проходите практику прямо в браузере
  • Отслеживайте свой прогресс

Зарегистрируйтесь или войдите в свой аккаунт

Отправляя форму, вы принимаете «Соглашение об обработке персональных данных» и условия «Оферты», а также соглашаетесь с «Условиями использования»