Приходилось ли писать SQL-запросы вручную в процессе тестирования?

«Приходилось ли писать SQL-запросы вручную в процессе тестирования?» — вопрос из категории API тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, ручное написание SQL-запросов — распространенная практика в тестировании для:

  • Верификации данных в БД после выполнения тестовых действий (например, создание записи через UI/API).
  • Подготовки и очистки тестовых данных.
  • Анализа сложных связей между сущностями.
  • Проверки корректности бизнес-логики, реализованной на уровне базы данных.

Примеры запросов:

  1. Проверка создания заказа через API:
    -- После выполнения API-запроса POST /orders
    SELECT id, status, total_amount, user_id
    FROM orders
    WHERE user_id = 1001
    ORDER BY created_at DESC
    LIMIT 1;
  2. Подготовка тестовых данных (фикстура):
    INSERT INTO products (sku, name, price, stock)
    VALUES ('TEST-001', 'Тестовый товар', 999.99, 10);
  3. Проверка целостности данных и связей (JOIN):
    -- Проверка, что у всех заказов есть валидный пользователь
    SELECT o.id, o.user_id, u.email
    FROM orders o
    LEFT JOIN users u ON o.user_id = u.id
    WHERE u.id IS NULL; -- Находит "битые" связи

    Такой подход требует понимания схемы БД и внимательности к синтаксису, но дает полный контроль для глубокой проверки.