Получить доступ

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

JuniorSQL для тестировщикаSQL
Ещё спрашивают так:
  • Какие SQL-запросы спрашивают у тестировщика?
  • Как проверить данные в базе после действия в интерфейсе?
Коротко

SQL нужен, чтобы проверять данные в базе после действий, готовить тестовые данные и искать причину бага.

  • Минимум: SELECT с WHERE, ORDER BY, LIMIT; JOIN; GROUP BY с COUNT/SUM и HAVING
  • Плюс INSERT, UPDATE, DELETE — осторожно и только на тестовом стенде

А ещё Типовая задача: «найти пользователей без заказов» — LEFT JOIN и IS NULL

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

Где тестировщик использует SQL:

  • проверка результата — после оформления заказа в базе есть запись с правильной суммой и статусом;
  • подготовка данных — найти пользователя в нужном состоянии или создать его;
  • локализация бага — данные сохранились неверно или фронтенд их неверно показывает.

Что нужно знать на уровне junior:

  • SELECT ... FROM ... WHERE с условиями =, >, IN, LIKE, BETWEEN, IS NULL;
  • ORDER BY, LIMIT, DISTINCT;
  • агрегаты COUNT, SUM, AVG, MIN, MAX с GROUP BY и HAVING;
  • INNER JOIN и LEFT JOIN — разницу и когда какой нужен;
  • INSERT, UPDATE, DELETE — и привычку всегда писать WHERE и сначала проверять условие через SELECT.

Подробнее о JOIN, индексах и транзакциях — в разделе «Базы данных».

Пример

-- заказы пользователя за последнюю неделю
SELECT id, total, status FROM orders
WHERE user_id = 42 AND created_at >= now() - interval '7 days'
ORDER BY created_at DESC;

-- пользователи без заказов
SELECT u.id, u.email FROM users u
LEFT JOIN orders o ON o.user_id = u.id
WHERE o.id IS NULL;

-- клиенты, сделавшие больше трёх заказов
SELECT user_id, COUNT(*) AS orders FROM orders
GROUP BY user_id HAVING COUNT(*) > 3;

Что хотят услышать

  • Зачем SQL тестировщику — с примерами из работы.
  • Уверенный SELECT с фильтрами, сортировкой, агрегатами.
  • Разница INNER и LEFT JOIN.
  • Осторожность с изменяющими запросами.

Частые ошибки

  • UPDATE или DELETE без WHERE.
  • Путать WHERE и HAVING.

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем