Ответ вслух Middle Тестирование БД через SQL спрашивают часто обновлено

Как ты используешь SQL в тестировании

Вопрос

Как ты используешь SQL и базу данных в работе тестировщика? Приведи примеры запросов.

Попробуйте сами

Ответьте вслух за 2 минуты, как на собесе. Потом сверьтесь с тезисами: что прозвучало, а что нет.

Показать ответ и разбор

Коротко

База для меня второй источник правды после API. Первое: проверка результата.

Что должно прозвучать в ответе

  • Проверка результата: запись после API-запроса, поля, статусы, связанные таблицы

  • Поиск дефектов в данных: дубли через GROUP BY HAVING, сироты через LEFT JOIN или NOT EXISTS, расхождения сумм

  • Подготовка данных: нужные состояния, которые долго создавать через интерфейс

  • Разбор бага: на каком шаге данные стали неверными

  • Осторожность: NULL-ловушки, доступ только на чтение к важным стендам, без правок в проде

Что могут спросить следом

  • Чем LEFT JOIN отличается от INNER JOIN?
  • Почему NOT IN опасен с NULL?
  • Как не оставить мусор после своих тестов?

Разбор

База для меня второй источник правды после API. Первое: проверка результата. Создал заказ через API, затем по id смотрю в базе статус, сумму, позиции, платёж и событие в outbox, потому что ответ API могут собрать из запроса, не сохранив. Второе: поиск дефектов в данных. Дубли ищу через GROUP BY и HAVING count больше одного, сирот через LEFT JOIN с проверкой IS NULL или NOT EXISTS, расхождения сумм заказа и позиций через агрегат с COALESCE, оплаченные заказы без платежа через NOT EXISTS. Третье: подготовка данных, например заказ, который висит в оплате три дня, через интерфейс не создашь. Четвёртое: разбор бага, по времени и id видно, на каком шаге данные испортились. И аккуратность: помню про NULL, IS NULL вместо равенства, NOT IN с NULL даёт пустоту. На общих стендах пишу только в свои тестовые данные, в проде только читаю, и то если есть доступ.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.

Термины по теме