Ответ
Unit-тестирование
Проверяет отдельные модули/функции изолированно. Быстрое выполнение, простое написание. Пример:
function sum(a, b) {
return a + b;
}
test('sum adds numbers', () => {
expect(sum(1, 2)).toBe(3);
});
Интеграционное тестирование
Проверяет взаимодействие нескольких модулей/сервисов. Более сложное, чем unit, но проще e2e.
E2E (End-to-End) тестирование
Имитирует поведение пользователя в реальном приложении. Проверяет весь поток работы. Медленное, но наиболее приближенное к реальности. Пример - Cypress.
Регрессионное тестирование
Проверяет, что новые изменения не сломали существующий функционал.
Дымовое тестирование
Быстрая проверка основных функций после сборки.