Зачем тестировщику знание SQL?

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

Ответ

Знание SQL критически важно для тестировщика, работающего с приложениями, где данные хранятся в реляционных базах. Оно позволяет проводить проверки на уровне данных, что часто является единственным способом убедиться в корректности работы бэкенда.

Основные сценарии применения:

  1. Верификация данных: проверка, что операция в UI/API корректно изменила состояние БД.
    -- После регистрации пользователя проверяем его наличие в БД
    SELECT id, email, registration_date FROM users WHERE email = 'test_user@example.com';
  2. Проверка бизнес-логики и целостности данных:
    -- Проверка, что у каждого заказа есть связанный пользователь (целостность внешнего ключа)
    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; -- Находим "битые" заказы
  3. Подготовка и очистка тестовых данных:
    -- Создание специфичного тестового пользователя
    INSERT INTO users (email, status) VALUES ('prepared_user@test.com', 'ACTIVE');
    -- Очистка данных после теста
    DELETE FROM cart_items WHERE user_id = 1001;
  4. Анализ и сравнение данных для расследования сложных дефектов.

Без SQL тестирование является поверхностным и не затрагивает ключевой слой хранения и обработки информации.