Что вам больше нравится тестировать: фронтенд или бэкенд?

Ответ

Это разные области с разными фокусами и задачами.

Тестирование фронтенда сосредоточено на пользовательском интерфейсе и опыте:

  • Что проверяется: Визуальное отображение, адаптивность, кроссбраузерность, работа клиентских скриптов.
  • Пример (UI-тест):
    // Проверка видимости и состояния кнопки
    expect(screen.getByRole('button', { name: /submit/i })).toBeVisible();
    expect(button).not.toBeDisabled();

Тестирование бэкенда фокусируется на логике, данных и интеграциях:

  • Что проверяется: API (эндпоинты, статусы, схемы ответов), бизнес-логика, работа с БД, производительность.
  • Пример (API-тест):
    # Проверка корректности ответа API
    response = requests.get('/api/v1/users/123')
    assert response.status_code == 200
    assert response.json()['id'] == 123

Почему бэкенд? Мне интереснее работать с бизнес-логикой, данными и создавать сложные сценарии автоматизации. Однако полноценное тестирование требует понимания обеих частей.

Ответ 18+ 🔞

А, ну вот, классика жанра! Сидишь такой, думаешь: "Тестирование — оно и в Африке тестирование". А тут, блядь, оказывается, целый ёперный театр с разными сценами и актёрами! Один играет на публику в красивом костюме, а другой, сука, в кулисах ломает голову над тем, как эту хреновину вообще заставить работать.

Так, слушай сюда, разжуём эту кашу.

Фронтенд-тестирование — это как проверять, не криво ли висит картина в гостиной и удобно ли кресло. Всё про то, что тыкает и видит пользователь.

  • Суть: А красиво ли? А на телефоне не разъёбывается? А в этом старом браузере, который как ядрёна вошь, всё работает? А кнопка нажимается или она просто для красоты?
  • Вот, смотри, как это выглядит в коде, блядь (не трогаем его, он святой):
    // Проверка видимости и состояния кнопки
    expect(screen.getByRole('button', { name: /submit/i })).toBeVisible();
    expect(button).not.toBeDisabled();

    То есть, грубо говоря: "Э, кнопка, ты тут? А ну-ка моргни! И не прикидывайся сломанной!"

Бэкенд-тестирование — это уже не про картину, а про то, не гнилые ли доски в стене и не течёт ли крыша. Всё, что спрятано, но от чего всё держится.

  • Суть: А правильно ли сервер считает? А не врёт ли он базе данных? А если ему нахамить неправильным запросом — он обосрётся или даст отпор? А выдержит ли, если на него навалится овердохуища народу?
  • И вот его кухня (опять же, руками не трогаем, а то сломается):
    # Проверка корректности ответа API
    response = requests.get('/api/v1/users/123')
    assert response.status_code == 200
    assert response.json()['id'] == 123

    Перевод на человеческий: "Эй, сервак, дай-ка мне пользователя номер сто двадцать три. Что? Двести статус? Молодец. А в бумажке внутри точно тот, кого я просил? А то я проверю, хитрая жопа!"

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

Но, конечно, чтобы не быть тем самым мудаком, который кричит "У МЕНЯ ВСЁ РАБОТАЕТ", пока у пользователя экран синий, понимать фронт надо. Иначе получится "Герасим и Муму" — вроде всё сделал правильно, а в итоге пиздец и совесть заебала.