Что такое модульное тестирование (unit-тесты)?
Модульное тестирование — проверка отдельной небольшой части кода — функции или класса — в изоляции от остальной системы. Такой тест не обращается к базе данных и внешним сервисам: вместо них подставляют заглушки.
Unit-тесты — самый быстрый и дешёвый уровень проверки. Они выполняются за миллисекунды, запускаются сотнями при каждой сборке и точно указывают место поломки: упавший тест сразу называет конкретную функцию.
Пишет их обычно сам разработчик. Помимо защиты от ошибок, они дают свободу рефакторинга: код можно переписывать, зная, что нарушение поведения будет замечено сразу.
Связанные термины
Интеграционное тестирование проверяет, как несколько компонентов работают вместе: приложение и база данных, сервис и внешнее API, два микросервиса между собой. Отдельно каждая часть может быть исправна, а на стыке всё равно возникнет ошибка.
E2E TestingE2E (end-to-end) тестирование — проверка полного пользовательского сценария на собранной системе: тест открывает браузер, регистрируется, добавляет товар в корзину, оплачивает и убеждается, что заказ появился. Все компоненты при этом работают по-настоящему.
Test AutomationАвтоматизация тестирования — написание программ, которые сами выполняют проверки и сравнивают результат с ожидаемым. Такие тесты запускают при каждом изменении кода, чтобы быстро замечать поломки в уже работающей функциональности.
CI/CDCI/CD — автоматический конвейер, через который проходит каждое изменение кода: сборка, запуск тестов и доставка готовой версии на серверы. Разработчик отправляет код в репозиторий, а всё остальное происходит без ручных действий.
Software TestingТестирование ПО — проверка того, что программа работает так, как задумано: соответствует требованиям, корректно ведёт себя при неожиданных данных и не ломается там, где раньше работала. Цель — найти дефекты до того, как их найдёт пользователь.