В чем разница между видами тестирования

«В чем разница между видами тестирования» — вопрос из категории Тестирование, который задают на 10% собеседований Frontend Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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.

Регрессионное тестирование

Проверяет, что новые изменения не сломали существующий функционал.

Дымовое тестирование

Быстрая проверка основных функций после сборки.