- Что такое система тестирования
- Модульное тестирование
- Интеграционное тестирование
- Системное тестирование
Система тестирования на проекте — это способ организации тестов в процессе разработки. Она включает в себя порядок выполнения тестов на каждом уровне, их место в общем процессе разработки, а еще степень автоматизации и относительное количество. Обычно система тестирования соответствует требованиям проекта.
В этом уроке мы познакомимся с самой системой и ее уровнями. Этот урок поможет понять пирамиду тестирования, которую мы будем изучать далее в курсе.
Что такое система тестирования
Система тестирования — это способ организации тестов на проекте. Она включает в себя определенный порядок выполнения тестов и их место в процессе разработки. Количество тестов на каждом уровне зависит от конкретного проекта и его требований.
Как правило, система состоит из трех уровней:
- Модульное тестирование
- Интеграционное тестирование
- Системное тестирование
Модульное тестирование
Модульное тестирование ищет дефекты в отдельных модулях приложения — объектах, классах, функциях, программных модулях и других компонентах, которые могут быть протестированы независимо друг от друга. Другими словами, мы проверяем конкретные фрагменты кода.
Модульное тестирование проводится с помощью юнит-тестов. Для примера представим, что нам нужно протестировать велосипед. На этапе модульного тестирования мы оценим, как работают отдельные запчасти — например, колесо.
Юнит-тесты колеса могли бы проверить:
- Не деформирована ли сама форма колеса
- Нет ли повреждений на ободке, спицах и камере
- Все ли в порядке со звездочками
- Крутится ли колесо в целом
Таким же образом проверяются другие запчасти велосипеда — например, цепь или руль.
Возьмем менее бытовой пример и представим, что нам нужно протестировать корзину интернет-магазина. Работу этой корзины обеспечивает код из разных модулей — в том числе в нем есть функция, которая подсчитывает общую стоимость заказа.
При модульном тестировании этой функции юнит-тесты проверяют:
- Работает ли функция суммирования
- Нет ли в функции синтаксических или логических ошибок
- Правильным ли получается результат суммирования
По такому же принципу мы проверим другие модули — например, API, которое передает параметры для суммирования.
Интеграционное тестирование
На этапе интеграционного тестирования мы проверяем взаимодействие между отдельными модулями — объектами, классами, функциями, программными модулями и так далее. Другими словами, мы проверяем, как два фрагмента кода работают вместе.
Вернемся к примеру с велосипедом. На этапе модульного тестирования мы изучили колесо и цепь по отдельности, а теперь нужно проверить взаимодействие и узнать, точно ли колесо приводится в движение с помощью цепи. Здесь мы проверяем интеграцию цепи и звездочки колеса — дергаем за цепь и смотрим, будет ли крутиться колесо.
Перейдем к примеру с корзиной. На первом этапе мы проверили функцию суммирования и API по отдельности, а сейчас протестируем их вместе:
- Правильно ли API отдает параметры в функцию
- Верно ли API передает результат функции дальше
В контексте системы тестирования термин «интеграционное тестирование» означает проверку взаимодействий модулей, но в других источниках вы можете встретить другое определение. Иногда этим термином обозначают проверку интеграции между двумя подсистемами, то есть какими-то большими частями программы. Это тоже правильное определение, просто оно используется в контексте других аспектов тестирования.
Системное тестирование
Следующий уровень — это системное тестирование. Оно выполняется для всей системы и проверяет функциональные и нефункциональные требования.
Оба рассмотренных выше примера закончатся системным тестированием:
- В примере с велосипедом мы сядем на него и попробуем поехать. Если получится, значит велосипед работает как система в целом — функциональный системный тест пройден
- В примере с корзиной мы зайдем на сайт, добавим несколько товаров в корзину и проверим, как отображается сумма заказа. Если сумма верна и видна в интерфейсе, то — функциональный системный тест пройден
Остались вопросы? Задайте их в разделе «Обсуждение»
Вам ответят команда поддержки Хекслета или другие студенты
Для полного доступа к курсу нужен базовый план
Базовый план откроет полный доступ ко всем курсам, упражнениям и урокам Хекслета, проектам и пожизненный доступ к теории пройденных уроков. Подписку можно отменить в любой момент.