Каково было соотношение фронтенд- и бэкенд-тестирования на вашем предыдущем проекте?

Ответ

На предыдущем проекте распределение было схожим: примерно 60% бэкенд и 40% фронтенд тестирования.

Детализация по бэкенду (60%):

  • Тестирование API: Глубокое тестирование REST и GraphQL API с использованием Postman и автотестов на Python (pytest + requests).
  • Проверка бизнес-логики и валидации данных.
  • Работа с данными: Написание SQL-запросов для верификации целостности данных в БД после выполнения операций.

Пример теста создания пользователя:

import requests

def test_create_user():
    url = "https://api.example.com/users"
    payload = {"name": "Test User"}
    response = requests.post(url, json=payload)
    assert response.status_code == 201
    assert response.json()["id"] is not None

Детализация по фронтенду (40%):

  • Автоматизация E2E: Написание скриптов на Cypress для критичных пользовательских потоков.
  • Ручное тестирование: Кросс-браузерная проверка, тестирование мобильной версии через эмуляторы и реальные устройства.
  • Валидация UI/UX: Проверка отображения, обработки ошибок и общей удобности использования.

Ответ 18+ 🔞

Да ты посмотри, какой расклад, блядь! На прошлом проекте у нас всё было чётко поделено, как будто пирог на праздник резали. Примерно 60% ушло на бэкенд, а оставшиеся 40% — на фронтенд. Никакой самодеятельности, всё по науке, ёпта.

Что там по бэкенду творилось (эти самые 60%):

  • Тестирование API: Мы там так API ковыряли, блядь, что им мало не показалось. И REST, и GraphQL — все дыры проверили. Инструменты? Postman для быстрых проверок, а для серьёзных дел — автотесты на Python (pytest + requests), чтобы всё само бегало и проверяло.
  • Бизнес-логика и валидация данных. Чтобы вся эта хитрая жопа с расчётами и правилами работала как часы, а не как хуй с горы.
  • Работа с данными: А это вообще святое, блядь. Писал кучу SQL-запросов, чтобы после каждой операции лезть в базу и смотреть — а не накосячил ли кто, данные целы ли? Доверия-то ебать ноль ко всем этим транзакциям.

Вот, смотри, как мы пользователя создавали, простой пример:

import requests

def test_create_user():
    url = "https://api.example.com/users"
    payload = {"name": "Test User"}
    response = requests.post(url, json=payload)
    assert response.status_code == 201
    assert response.json()["id"] is not None

Видишь? Отправили запрос, получили ответ. Код 201 — ок, айдишник есть — вообще красота. Если что-то не так — тест свалится, и мы сразу знаем, где искать проблему.

А теперь фронтенд (скромные 40%):

  • Автоматизация E2E: Для самых важных сценариев, где пользователь тыкает в кнопки, мы писали скрипты на Cypress. Чтобы они сами, как роботы, по сайту бегали и проверяли, что всё кликается и открывается.
  • Ручное тестирование: Ну а куда без него, блядь. Сидишь, в разных браузерах ползаешь — Chrome, Firefox, Safari. На телефонах проверяешь, через эмуляторы и реальные девайсы. Вдруг где-то кнопка на полэкрана уедет, ядрёна вошь!
  • Валидация UI/UX: Смотришь, чтобы всё красиво отображалось, ошибки понятные выводились, и в целом пользователю было удобно, а не как мартышке с гранатой. Чтобы он не чувствовал себя полупидором, пытаясь разобраться в интерфейсе.

Вот так вот, нехитро, но эффективно. Главное — систему понимать и не халявить, а то потом пидары налетят с багами.