Что такое пирамида тестирования

Ответ

Пирамида тестирования — это модель, которая помогает организовать тесты по уровням в зависимости от их объема, скорости выполнения и стоимости. Она состоит из трех основных уровней:

  1. Unit-тесты (основа) — тестируют отдельные функции/компоненты. Быстрые, дешевые, их должно быть больше всего.
// Пример unit-теста (Jest)
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3);
});
  1. Интеграционные тесты (середина) — проверяют взаимодействие модулей. Медленнее, их меньше.

  2. E2E-тесты (верхушка) — тестируют весь поток приложения. Самые медленные, дорогие, их должно быть меньше всего.

Соотношение обычно: 70% unit, 20% интеграционные, 10% E2E. Чем выше уровень, тем тесты ближе к пользовательскому сценарию, но сложнее в поддержке.

Ответ 18+ 🔞

А, пирамида тестирования, ну классика жанра, блядь! Слушай, представь себе реальную пирамиду, только вместо камней — тесты, а вместо рабов — разработчики, которые их пишут, сука.

Вот смотри, внизу, основание, там, где всё держится — это юнит-тесты. Их, блядь, должно быть овердохуища, как песка в пустыне. Быстрые, дешёвые, отъебись за минуту. Тестируют одну мелкую функцию, один модуль. Чистая математика, ёпта!

// Вот смотри, чистая проба, без грязи
test('adds 1 + 2 to equal 3', () => {
  expect(sum(1, 2)).toBe(3); // Нехуя тут не проверишь, всё ясно как божий день
});

Дальше, середина пирамиды — интеграционные тесты. Тут уже начинается веселье, блядь. Ты берёшь два этих, с позволения сказать, юнита, которые внизу друг про друга нихуя не знали, и заставляешь их общаться. "Ну-ка, пацаны, познакомьтесь, блядь, работайте вместе!" И смотришь, не начнут ли они друг другу мозги ебать. Медленнее уже, конечно, головняка больше.

А на самом верху, на острие, где ветер свистит — E2E тесты. Это, сука, полный цирк с конями! Ты запускаешь ВСЁ приложение, как будто его юзер-распиздяй использует: тыкает, скроллит, логинится. Тесты эти — медленные, как черепаха в сиропе, дорогие, капризные. Один такой тест сломается — и ты полдня будешь хуярить, искать, где же эта хитрая жопа спрятала баг.

И главное правило, чтобы не охуеть от поддержки: соотношение, блядь, соблюдай! Примерно так: 70% — этих быстрых юнитов внизу, 20% — интеграционки посредине, и всего 10%, блядь, этих монструозных E2E-сценариев наверху.

Чем выше лезешь по пирамиде — тем ближе к тому, как реальный пользователь всё видит, но и тем больше там подводных ебальников, сука. Сделаешь наоборот, навернёшь пирамиду — она тебе на голову и рухнет, и будешь ты потом сидеть, ебать костыли, пока всё чинишь. Короче, думай головой, а не жопой!