Обзор автоматизированного тестирования
Тестирование — это неотъемлемая часть современной разработки, которая обеспечивает надежность, предсказуемость и качество кода. В этом руководстве мы рассмотрим три основных уровня тестирования, используемых нашим модулем. Мы используем PHPUnit для модульного и интеграционного тестирования и Selenium для функционального (end-to-end) тестирования.
Пирамида тестирования
Пирамида тестирования — это концепция, которая иллюстрирует идеальное соотношение усилий между разными типами тестов.

Чем выше уровень, тем тесты медленнее, дороже в разработке и поддержке, но ближе к поведению системы с точки зрения пользователя.
Юнит-тесты
Юнит-тесты проверяют работу самых маленьких и изолированных частей приложения — отдельных функций, методов или классов. Их главная цель — проверить, что каждая "единица" кода работает корректно сама по себе.
Интеграционные тесты
Интеграционные тесты проверяют взаимодействие между несколькими компонентами системы. В контексте веб-приложения это часто означает тестирование с реальной базой данных, внешними API (через моки) или файловой системой.
Функциональные тесты
Функциональные тесты имитируют поведение реального пользователя в браузере. Они проверяют весь поток приложения от начала до конца, включая фронтенд и бэкенд.