Ошибки, которые можно избежать в SQL
#почитать
Ошибки в SQL можно условно разделить на несколько категорий:
Синтаксические ошибки. Это ошибки в написании SQL-кода: пропущенные запятые, неверные ключевые слова, неправильный порядок конструкции. Они чаще всего ловятся самим движком базы при попытке выполнить запрос.
Логические ошибки. Самые коварные. Код выполняется, но результат не тот. Например, неверный фильтр, JOIN по неправильному полю, перепутанный порядок WHERE и HAVING или лишний DISTINCT. Эти ошибки особенно опасны в аналитике, потому что могут привести к неверным бизнес-решениям.
Ошибки работы с NULL. NULL — это отдельная категория значений в SQL, и она требует особого внимания. Сравнение через = и != с NULL не работает так, как многие ожидают. Здесь нужны IS NULL и IS NOT NULL.
Ошибки при работе с JOIN. Отсутствие условия соединения, неправильный тип соединения (INNER вместо LEFT, или наоборот), дублирование строк из-за некорректного связывания — всё это может нарушить итоговую выборку.
Ошибки производительности. Использование SELECT * в больших таблицах, отсутствие индексов на полях фильтрации, тяжёлые подзапросы и вложенные SELECT’ы там, где можно обойтись CTE или JOIN — всё это тормозит выполнение и грузит сервер.
Ошибки доступа. Запрос к несуществующей таблице, попытка обращения к колонке с опечаткой, отсутствие прав на SELECT/INSERT — это технические ошибки, но тоже распространённые. Часто возникают при смене окружения (dev → prod, другой пользователь и т.д.).
⏱ Читать статью
#почитать
Ошибки в SQL можно условно разделить на несколько категорий:
Синтаксические ошибки. Это ошибки в написании SQL-кода: пропущенные запятые, неверные ключевые слова, неправильный порядок конструкции. Они чаще всего ловятся самим движком базы при попытке выполнить запрос.
Логические ошибки. Самые коварные. Код выполняется, но результат не тот. Например, неверный фильтр, JOIN по неправильному полю, перепутанный порядок WHERE и HAVING или лишний DISTINCT. Эти ошибки особенно опасны в аналитике, потому что могут привести к неверным бизнес-решениям.
Ошибки работы с NULL. NULL — это отдельная категория значений в SQL, и она требует особого внимания. Сравнение через = и != с NULL не работает так, как многие ожидают. Здесь нужны IS NULL и IS NOT NULL.
Ошибки при работе с JOIN. Отсутствие условия соединения, неправильный тип соединения (INNER вместо LEFT, или наоборот), дублирование строк из-за некорректного связывания — всё это может нарушить итоговую выборку.
Ошибки производительности. Использование SELECT * в больших таблицах, отсутствие индексов на полях фильтрации, тяжёлые подзапросы и вложенные SELECT’ы там, где можно обойтись CTE или JOIN — всё это тормозит выполнение и грузит сервер.
Ошибки доступа. Запрос к несуществующей таблице, попытка обращения к колонке с опечаткой, отсутствие прав на SELECT/INSERT — это технические ошибки, но тоже распространённые. Часто возникают при смене окружения (dev → prod, другой пользователь и т.д.).
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥2👌1
🚀 Митап по QA: Тестирование без рутины: практики, кейсы, инструменты
Приглашаем вас на онлайн-митап, где мы обсудим практики и инструменты, которые помогают командам тестирования ускорять процессы, повышать качество и находить новые подходы к автоматизации.
Программа митапа:
✔️ Кухня регрессионного тестирования: как за 20 минут подать то, что раньше готовили две недели — Анастасия Давыдкина и Александр Вдовин, Ви.Tech
Когда-то полный регресс занимал две недели, требовал ручной работы трёх тестировщиков и всё равно пропускал баги. Сейчас он идёт всего 20 минут, а релизы выкатываются по четыре раза в день.
Разберём:
- С чего начать автоматизацию,
- Как держать автотесты стабильными,
- Как ускорить прогоны,
- И какие ошибки мы допустили, чтобы вы их не повторяли.
✔️ Эра умной валидации: нам всё ещё нужны ассерты? — Алексей Коледачкин
Ассерты — фундамент тестирования, но с приходом AI появляется второй контур, который ловит смысловые ошибки не только в ответе, но и в запросах.
На докладе вы узнаете:
- Где хватает классики, а где AI-валидация реально спасает,
- Как работает requests-ai-validator (правила, схема, код на 10 строк),
- Какие есть метрики и рамки безопасности: время, качество, приватность.
✔️ Как автоматизировать рутину и освободить время на важное — Артем Ерошенко, сооснователь Qameta Software
Каждый день мы тратим часы на повторяющиеся задачи. В мастер-классе разберём, как с помощью n8n построить рабочие процессы без кода.
Покажем:
- Настройку автоматизации за час,
- Создание Telegram-бота,
- Интеграции с инструментами команды.
➡️ Модератор: Олег Шмелев Ви.Tech, QA Head
➡️ Эксперт: Алексей Иванов, 2ГИС, QA Automation Engineer
🗓 25 сентября (четверг), 19:00 мск Онлайн
✅ Ссылка на регистрацию
Приглашаем вас на онлайн-митап, где мы обсудим практики и инструменты, которые помогают командам тестирования ускорять процессы, повышать качество и находить новые подходы к автоматизации.
Программа митапа:
Когда-то полный регресс занимал две недели, требовал ручной работы трёх тестировщиков и всё равно пропускал баги. Сейчас он идёт всего 20 минут, а релизы выкатываются по четыре раза в день.
Разберём:
- С чего начать автоматизацию,
- Как держать автотесты стабильными,
- Как ускорить прогоны,
- И какие ошибки мы допустили, чтобы вы их не повторяли.
Ассерты — фундамент тестирования, но с приходом AI появляется второй контур, который ловит смысловые ошибки не только в ответе, но и в запросах.
На докладе вы узнаете:
- Где хватает классики, а где AI-валидация реально спасает,
- Как работает requests-ai-validator (правила, схема, код на 10 строк),
- Какие есть метрики и рамки безопасности: время, качество, приватность.
Каждый день мы тратим часы на повторяющиеся задачи. В мастер-классе разберём, как с помощью n8n построить рабочие процессы без кода.
Покажем:
- Настройку автоматизации за час,
- Создание Telegram-бота,
- Интеграции с инструментами команды.
🗓 25 сентября (четверг), 19:00 мск Онлайн
✅ Ссылка на регистрацию
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍2🔥1
В этом уроке мы смоделируем и нормализуем базу данных.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Какой параметр в pg_hba.conf отвечает за метод аутентификации?
Anonymous Quiz
10%
A) database
11%
B) user
72%
C) auth-method
8%
D) host
🔥6👍3
Как MySQL обрабатывает запросы с использованием оконных функций?
Anonymous Quiz
26%
Выполняет оконные функции после выполнения всех фильтров и группировок
40%
Выполняет оконные функции до WHERE и GROUP BY
23%
Оконные функции не поддерживаются в MySQL
11%
Выполняет оконные функции параллельно с JOIN
👍6🔥1
Какой тип данных в PostgreSQL используется для хранения IP-адресов?
Anonymous Quiz
15%
A) CIDR
52%
B) INET
16%
C) MACADDR
17%
D) JSONB
👍7🔥1
Как MySQL обрабатывает индексы при использовании функции GENERATED ALWAYS AS (expression) в виртуальных столбцах?
Anonymous Quiz
14%
Индексы на виртуальные столбцы невозможны
33%
Можно создавать индексы только на STORED виртуальных столбцах
37%
Индексы создаются автоматически на все виртуальные столбцы
15%
Индексы создаются только при использовании PERSISTENT
🔥6👍2
Нашел, проверил, убедил: как мы организовали генерацию SQL-запросов, проверку сложных данных и при чем здесь Allure
#почитать
В статье опишем проблемы, с которыми сталкивались при ручном написании SQL-запросов и проверке данных: дублирование кода, сложность поддержки, отсутствие единого стиля и низкая информативность тестов. Для решения этих проблем мы разработали инструмент QueryBuilder, который позволяет динамически генерировать SQL-запросы с помощью Java-кода.
⏱ Читать статью
#почитать
В статье опишем проблемы, с которыми сталкивались при ручном написании SQL-запросов и проверке данных: дублирование кода, сложность поддержки, отсутствие единого стиля и низкая информативность тестов. Для решения этих проблем мы разработали инструмент QueryBuilder, который позволяет динамически генерировать SQL-запросы с помощью Java-кода.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Forwarded from QA Live 🚩 тестирование ПО
🔖 Почитать:
▪️Как ChatGPT помогает при обучении
▪️Тест-долг: он существует и ежедневно мешает нам жить во всех окружениях
▪️Как отсутствующий часовой пояс сломал автоматизацию тестов
▪️Deep Links глазами тестировщика: как они работают
▪️«Эндотестирование: юнит-тестирование с мок-объектами»
▪️Как мы автоматизировали анализ упавших тестов с помощью AI: от хаоса к структуре
▪️Простоту охота навести: как легко тестировать клиент-серверные взаимодействия на примере WebSocket
▪️QA-инженер в 2025 году: скилсет джуниора и ожидания рынка
▪️Без опыта, но с перспективами: как начинающему QA составить сильное резюме
▪️Снова в айти или мой опыт обучения на ручного QA
▪️Интеграционные тесты в Go: как избавиться от флаков и боли
▪️Новые подходы в Swift для тестирования: разбор технологии Swift Testing
▪️Полный айсберг Android. Часть 1
Англоязычное
▪️Developing the Right Test Documentation
▪️Do We Really Need a Test Plan Before Testing? Whose Responsibility Is It?
▪️I think, therefore I test: the importance of thinking for testers
▪️What QA Taught Me About Being a Better Developer
▪️Why QA Keep Losing the Same Battles, even when Automation and AI is integrated
▪️AI Picks Tests To Run On A Bug
▪️Microservice Testing That Lets you Sleep At Night
▪️From Dependency Hell to Monorepo Harmony: How We 5X Test Engineering with a Gradle Multi-Module Architecture
▪️Playwright Agentic Coding Tips
▪️Leveraging Copilot to rapidly refactor test automation
👀 Посмотреть:
Удачного дня!
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5
Что означает опция CASCADE при удалении таблицы (pg)?
Anonymous Quiz
6%
A) Удаляет только таблицу
83%
B) Удаляет таблицу и все объекты, зависящие от неё
7%
C) Откатывает транзакцию
4%
D) Создаёт резервную копию таблицы
👍5
Как MySQL обрабатывает оптимизацию запроса с STRAIGHT_JOIN?
Anonymous Quiz
24%
Игнорирует порядок таблиц и выбирает оптимальный план
51%
Принудительно использует порядок таблиц, указанный в запросе
7%
Переставляет таблицы по алфавиту
17%
Выполняет только первый JOIN из списка
👍6
Какой из операторов в PostgreSQL используется для объединения результатов двух запросов без дубликатов?
Anonymous Quiz
25%
A) UNION ALL
13%
B) INTERSECT
56%
C) UNION
6%
D) EXCEPT
👍6🔥1
Из бариста в программиста. Как я освоила SQL за неделю и стала тимлидом в IT-компании меньше, чем за год
#почитать
О работе в IT я никогда не думала. В школе у нас был углубленный курс информатики, где давали основы Basic, Java и Pascal, но для меня это было просто частью образования (не самой интересной). Потом я уехала из Якутии во Владивосток, чтобы выучиться на таможенное дело. Казалось, что это будет довольно прибыльным, и я действительно этим горела, даже проходила практику во Владивостокском морском порту. Но тема диплома, которую мне выдали, не совпадала с задачами в порту, и мне пришлось уйти.
Через полгода после универа в городе мне стало скучно. Я решила уехать в Москву, и начать новую жизнь. Конкретного плана я не придумала, и устроилась бариста. Кофейня была возле офиса Сбера. К нам часто заходили разработчики и другие IT-специалисты, с которыми я стала много общаться, и постепенно оказалась в окружении людей из индустрии.
Я по натуре человек очень увлекающийся и легко заражаюсь чужими интересами. Слушая разговоры о работе друзей, я и сама захотела «войти в айти». Когда я об этом рассказала, мой друг предложил начать с SQL — языка запросов к базам данных. Он считал его идеальным для новичков: интуитивно понятный синтаксис, основанный на простом английском, много доступных материалов для самообучения.
К тому моменту работа в общепите меня окончательно утомила, и я решила пойти ва-банк — уволилась и начала учиться. Немного сбережений у меня было, но нужно было как можно скорее устроиться на новую работу.
Сразу оговорюсь — мне учиться было проще, потому что со школы я знала Java и Pascal на базовом уровне. Это сформировало у меня техническое мышление, нужное для погружения в IT. Если у вас таких знаний нет, конечно, вам будет сложнее.
Я выделяла от пяти часов в день на SQL.
⏱ Читать статью
#почитать
О работе в IT я никогда не думала. В школе у нас был углубленный курс информатики, где давали основы Basic, Java и Pascal, но для меня это было просто частью образования (не самой интересной). Потом я уехала из Якутии во Владивосток, чтобы выучиться на таможенное дело. Казалось, что это будет довольно прибыльным, и я действительно этим горела, даже проходила практику во Владивостокском морском порту. Но тема диплома, которую мне выдали, не совпадала с задачами в порту, и мне пришлось уйти.
Через полгода после универа в городе мне стало скучно. Я решила уехать в Москву, и начать новую жизнь. Конкретного плана я не придумала, и устроилась бариста. Кофейня была возле офиса Сбера. К нам часто заходили разработчики и другие IT-специалисты, с которыми я стала много общаться, и постепенно оказалась в окружении людей из индустрии.
Я по натуре человек очень увлекающийся и легко заражаюсь чужими интересами. Слушая разговоры о работе друзей, я и сама захотела «войти в айти». Когда я об этом рассказала, мой друг предложил начать с SQL — языка запросов к базам данных. Он считал его идеальным для новичков: интуитивно понятный синтаксис, основанный на простом английском, много доступных материалов для самообучения.
К тому моменту работа в общепите меня окончательно утомила, и я решила пойти ва-банк — уволилась и начала учиться. Немного сбережений у меня было, но нужно было как можно скорее устроиться на новую работу.
Сразу оговорюсь — мне учиться было проще, потому что со школы я знала Java и Pascal на базовом уровне. Это сформировало у меня техническое мышление, нужное для погружения в IT. Если у вас таких знаний нет, конечно, вам будет сложнее.
Я выделяла от пяти часов в день на SQL.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🔥1
Как MySQL обрабатывает индексы при использовании функции JSON_EXTRACT в условиях WHERE?
Anonymous Quiz
22%
Использует обычный B-tree индекс по JSON-столбцу
24%
Использует виртуальные столбцы с индексами для ускорения
23%
Игнорирует индексы и выполняет полное сканирование
31%
Использует полнотекстовый индекс по JSON
👎7
Что делает команда CREATE INDEX CONCURRENTLY?
Anonymous Quiz
11%
A) Создаёт индекс, блокируя таблицу
64%
B) Создаёт индекс без блокировки записи в таблице
23%
C) Создаёт временный индекс
2%
D) Удаляет существующий индекс
👍6🔥1
Онлайн-школа QA.GURU проведет бесплатный вебинар для тестировщиков, которые хотят вырасти до уровня Senior AQA и выйти за рамки «рутинных автотестов».
Готовы узнать, какие навыки сегодня реально ценятся на рынке и как они помогают прокачать карьеру?
Приходите на занятие 9 октября в 13:00 по МСК. Участие бесплатное, регистрация обязательна!
— что изменилось на рынке и почему работодатели ждут от QA backend-навыков и умения создавать собственные инструменты;
— тренды 2025: какие Python-технологии (FastAPI, контейнеризация и др.) стали must-have для автоматизаторов;
— почему «просто автотестов» уже недостаточно и как инженерный подход делает вас сильнее в глазах работодателя;
Зарегистрируйтесь сейчас, чтобы успеть занять место! 🎯
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6
Как MySQL обрабатывает запрос с LOCK IN SHARE MODE?
Anonymous Quiz
28%
Блокирует строки для чтения другими транзакциями
53%
Позволяет другим транзакциям читать, но не изменять заблокированные строки
10%
Блокирует строки для записи и чтения
9%
Не блокирует строки, только помечает их
👍6
Forwarded from QA Live 🚩 тестирование ПО
🔖 Почитать:
💡 TestEngineer
▫️Попытка создания интегральной метрики качества продукта
▫️Тестирование в залогиненном состоянии с расширением Playwright MCP
▫️Быстрый рефакторинг e2e автотестов в Copilot
▫️Как работает Playwright MCP — подробно
▫️Тестировать с умом
💬 Также
▫️Автоматизация учета и оборота тестовых устройств, тестирование контрактов, компонентов, UX, миграций, охота на баги, ИИ: новости QA за третий квартал-2025
▫️Работа с кэшем в автотестах
▫️Мнение: неизвестные пробелы в тестовом покрытии
▫️Что показали 15 лет работы с пирамидой тестирования
▫️Все, что нужно знать о регрессионном тестировании в 2025 году
▫️Как тестировать взаимодействие с голосовыми интерфейсами и виртуальными помощниками
⚙️Хабр
▫️MES-система глазами тестировщика
▫️Core Web Vitals на практике
▫️Как тестирование влияет на репутацию бренда
▫️Как наша команда QA в 3 раза ускорила работу с помощью собственного ИИ-агента
▫️Способы стабилизации автотестов на backend: опыт сервиса Звук
▫️Сколько трафика выдержит сайт на Next.js: нагрузочные тесты, SSR и предрендеринг
▫️Автоматизируем синхронизацию тест-кейсов в ТестОпс: больше никаких ручных обновлений
▫️От запахов к стабильности: рефакторим тесты на JUnit + Selenide
▫️Performance monitor и не только: продолжаем тестировать производительность в Chrome DevTools | Сбер
▫️11 способов мышления тестировщика: как и зачем переключаться между подходами
🔥Нашумевшее
▫️Искра Жизни: как рождаются продукты
▫️Восстание терпил
▫️Дача-like кодинг
▫️Крик души: я устал читать сгенерированные статьи
▫️Как я, не разработчик, читаю туториал, который ты, разработчик, написал для меня
▫️Хватит писать «чистый» код. Пора писать понятный код
▫️Рынок эйчара
▫️Ограничение контекстного окна GPT-5
▫️Как владение кошкой влияет на мозг человека (и на мозг кошки)
▫️Я сварил палки, выложил на Авито и заработал 10 млн за год
👀Посмотреть
✅ Подробный дайджест с описаниями и картинками
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🔥1
Какой уровень изоляции транзакций в PostgreSQL предотвращает «фантомные» чтения?
Anonymous Quiz
32%
A) Read Committed
27%
B) Repeatable Read
21%
C) Serializable
21%
D) Read Uncommitted
👍7🤮2🔥1
Реляционные базы данных в книге «Двенадцать стульев»
#почитать
⏱ Читать статью
#почитать
Перечитывая свой любимый роман И. Ильфа и Е. Петрова «Двенадцать стульев», а именно сцену с архивариусом Коробейниковым, я вдруг поняла: его бумажный архив ордеров на имущество бывших дворян не что иное, как идеальный пример реляционной базы данных. Алфавитные указатели — это индексы, книги учета — таблицы с первичными ключами, ордера — настоящие транзакции.
Мне сразу захотелось пофантазировать, как бы выглядела СУБД Варфоломея Коробейникова спустя сто лет. Так и возникла идея этой статьи о структуре реляционных баз данных и базовых SQL-запросах. Начинающим знакомиться с базами данных будет полезно и интересно рассмотреть тему под таким углом.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍7🔥1
Какой оператор в PostgreSQL позволяет выполнить атомарное обновление или вставку строки (UPSERT)?
Anonymous Quiz
20%
INSERT OR UPDATE
11%
MERGE
26%
INSERT ... ON CONFLICT DO UPDATE
20%
UPSERT
11%
REPLACE INTO
13%
UPDATE OR INSERT
👍6