SQL для тестировщика
Open in Telegram
Прокачиваем SQL — must have skill для хорошего тестировщика. От создателей @godoftesting По всем вопросам: @anothertechrock
Show more6 314
Subscribers
-324 hours
-907 days
-38030 days
Posts Archive
6 314
Стратегии партицирования базы данных: горизонтальное и вертикальное разделение
#почитать
Партиционирование (или секционирование) — это метод разделения одной большой таблицы базы данных на более мелкие, управляемые логические части (партиции) для повышения производительности запросов, упрощения администрирования и управления большими объемами данных, например, по диапазонам дат, списков или хэшам. Это позволяет системе обращаться только к нужным разделам, а не ко всей таблице, ускоряет отчеты, архивацию и другие операции, а также можно перемещать неактивные данные на медленные носители.
✅Читать статью
6 314
Как ускорить SQL-запрос в миллион раз без изменения кода
#почитать
Однажды при мониторинге мы обратили внимание на запрос, который занимал первое место по длительности: 40+ секунд на выполнение при 657 вызовах за день. Причина состояла в том, что из-за неточной статистики распределения данных выбирался неподходящий индекс. В статье расскажем о том, как с помощью параметра STATMULTIPLIER в СУБД Tantor Postgres этот проблемный запрос удалось ускорить примерно в миллион раз — до 0.042 миллисекунды, — просто повысив точность статистики без изменения кода или структуры базы данных.
✅Читать статью
6 314
SQL HowTo: ускоряем запрос в 32 раза
#почитать
Не читайте, пока хотите решить задачу самостоятельно.
✅Читать статью
6 314
Ускорение планирования JOIN’ов — до 16 раз быстрее
#почитать
Если раньше алгоритм сравнения частых значений (MCV) работал за O(N²), и при target=10k само планирование запроса могло занимать десятки миллисекунд, то теперь вместо квадратичного перебора будет использоваться хеш-таблица, а это снижает сложность до O(N). Изменение особенно оценят те, кто работает с неравномерными данными и поднимает default_statistics_target выше 1000.
✅Читать статью
6 314
Как ИИ помогает проектировать базы данных
#почитать
Многие кто уже успел попробовать Cursor и подобные инструменты, восхищаются как ИИ способен писать код.
✅Читать статью
6 314
И снова про алгоритмы и структуры данных
#почитать
За годы разработки приходит понимание, что происходит в тех или иных сервисах, когда они тормозят, лагают, выдают «неожидаемое» поведение. В данной статье хочу рассмотреть проблему неправильного использования алгоритмов и архитектурных решений с бытовой, общечеловеческой стороны.
✅Читать статью
6 314
Repost from QA Live 🚩 Тестирование ПО
🟢Подборка полезностей для тестировщиков 🐞 Июнь
💡 Теория
▫️Руководство по имитаторам для тестировщиков
▫️Бюджетное тестирование облачных приложений: Testcontainers и LocalStack
▫️Какие задачи в тестировании пора отдать ИИ, чтобы получить результат, а не новые проблемы
▫️От вебинаров до биллинга: что нужно тестировать в EdTech
▫️6 ошибок в метриках дефектов, из-за которых QA теряет контроль над качеством
▫️Аудит нагрузочного тестирования: пять этапов реального проекта
▫️Тестирование UX для мобильных приложений: чек‑лист без софта и магии
▫️Дорогие автотесты: когда автоматизация тестирования начинает вредить бизнесу
▫️Playwright, Selenium, Cypress, WebdriverIO: что реально известно о скорости в 2026 году (и как намерить свои цифры)
▫️Что перестаёт работать в тестировании, когда приходит LLM
▫️4 антипаттерна CI‑автоматизации, из‑за которых команда делает работу за ботов
⛏ Практика
▪️Как начать тестировать внутренние покупки (In-App Purchases) на Android
▪️Как мы создали новый тестовый фреймворк, адаптируемый к росту проектов
▪️Путь нагрузочного тестирования или почему я создал свой софт по нагрузке
▪️Группировка ошибок вручную и автоматически, или чем тестировщику занять своё время
▪️Как правильно писать WebSocket API автотесты на Python
▪️Как мы тестировали Tarantool Database на 640 инстансов
▪️Процессы vs инструменты: как Авито Sales строит QA с нулевыми сдвигами сроков
▪️Как мы тестируем Tantor Postgres для 1С — от нагрузочных тестов до оптимизаций планировщика
▪️Как мы превратили Swagger из документации в двигатель API-автотестов
▪️Retry в Go автотестах: как перестать бояться flaky-тестов
▪️Генерация автотестов с ИИ: почему первый PR растянулся на две недели и что изменилось после анализа фреймворка
▪️Кейс обучения QA-персонала: развитие навыков оценки задач и контроль качества через метрики
▪️Мы дали ИИ написать код и тесты: что обнаружило мутационное тестирование
💼 Карьера
▫️Сокращения в российском IT продолжаются – Мы создали автоиндикатор найма, который покажет окончание кризиса
▫️SDET как эволюция QA, или почему автотестов больше недостаточно
▫️Ломаем автопилот: как я перестал тестировать механически
▫️Работодатели давно играют в волков. Просто теперь соискатели научились отвечать
▫️IT-пузырь лопнул: почему одни айтишники не могут найти работу, а других всё равно не хватает
📺 Посмотреть
📺Where to Learn AI Testing and Testing with AI ⏱️45 минут
📺Превращаем Ready for testing в действительно Ready ⏱️15 минут
📺Как выстроить архитектуру взаимодействия QA со всеми ⏱️40 минут
🍷 Отдохнуть
▫️Археология автотестирования: SUnit, прародитель JUnit
▫️Что такое парадокс изогнутой трубы — и почему интуиция нас подводит
▫️Как одна операция из линейной алгебры захватила мир ИИ
▫️Манипуляция ответами нейронок — как сеошники убивают интернет
🚀 Вакансии QA
Разоблачай иллюзии
6 314
PostgreSQL Antipatterns: отказ от агрегатных функций = кратное ускорение
#почитать
Иногда в архиве нашего сервиса анализа планов запросов к PostgreSQL встречаются примеры не очень эффективных, мягко говоря, запросов. Сегодня на примере одного из них, вызванного простой бизнес-задачей, посмотрим, как отказ от использования агрегатных функций может ускорить запрос в разы.✅Читать статью
6 314
Как организовать тестовую среду, сохраняя покой владельца данных
#почитать
Хочу поделиться опытом с коллегами - как мы решили одну из наболевших проблем нашей команды разработки – отсутствие полноты данных для тестирования реализованного функционала в условиях ограниченного доступа к реальным данным компании. Если вы работаете с персональными данными, то наверняка сталкивались с такой проблемой.✅Читать статью
6 314
Разбираемся в функциональных зависимостях БД
#почитать
Возможно вас, как и меня, первое знакомство с функциональными зависимостями в базах данных повергло в легкий ступор. Длинные определения, которые не давались даже после третьего прочтения, излишняя абстрактность, когда на простые и понятные примеры поскупились, и прочее прелести «научного» подхода к объяснению сложных тем.
Пора раз и навсегда разобраться во всем этом. Тем не менее, я постараюсь не упускать детали и, где это уместно, углубиться в тему с головой. Без претензии на академичность, но с претензией на ясность.
✅Читать статью
6 314
ACID-свойства транзакций в SQL
#почитать
Для чего существуют принципы ACID? Можно ответить по бумажке, сказать, что это нужно для того, чтобы каждая транзакция обрабатывалась надежно, данные оставались в безопасности и системы работали предсказуемо.
Все это в свою очередь должно гарантировать целостность данных. Но что это вообще такое и на что влияет? А ответ очень простой. Обеспечивая целостность данных, мы предупреждаем ситуации, когда, к примеру, деньги со счета списались, но получателю так и не пришли. Или заказ оформился, а складские остатки не обновились.
✅Читать статью
6 314
Repost from QA Live 🚩 Тестирование ПО
🟢Подборка полезностей для тестировщиков 🐞 31 мая
💡 Теория
▫️Новости тестирования за февраль-май 2026
▫️Как оценивать ИИ‑агентов в проде: нижняя планка, трассы и кодовые проверки
▫️Peer testing на основе Закона Линуса
▫️Испытание временем — как тестировать цифровой двойник, если физического объекта ещё не существует
▫️Вы неправильно тестируете асинхронный код: тест проходит раньше, чем выполняется проверка
▫️Не просто «ручное тестирование»: ценные навыки тестировщиков
▫️5 ловушек теории вероятностей в IT
▫️5 распространенных ошибок новичка в E2E-тестах
⛏ Практика
▪️Как мы тестируем в Профи.ру: почему у нас нет пирамиды, зато есть ромб и матрица
▪️Как я сделал утилиту для автоматизации ручных тестов
▪️Совместимость Test IT и RedOS: опыт автоматизации сборки, тестирования и сертификации
▪️Impact Analysis в дизайн-системе: как мы сделали CI осмысленнее, а review понятнее
▪️Как приоритизировать регрессионные проверки, когда сжаты сроки релиза
▪️Я построила диагностику «стоит ли это автоматизировать» — и она трижды говорила глупости. Разбор ошибок
▪️Как я сократил рутину QA до пары кликов: генератор API-тестов и тест-кейсов на LLM, которым хочу поделиться
💼 Карьера
▫️Как искать работу сейчас? А что если под каждой вакансией будет процент её соответсвия с вашим резюме?
▫️Влияние AI на позиции QA в 2026 году
▫️Про «случайных» людей в ИТ
▫️Как ИИ портит резюме студентам
📺 Посмотреть
📺Прогрессивные веб-приложения и их автотесты ⏱️45 минут
📺Как успеть протестировать устройство, пока оно едет по конвейеру на заводе ⏱️45 минут
📺Как особенности Python и Pytest могут поломать backend-автотесты ⏱️45 минут
📺Как мы меняли Postman на Hoppscotch ⏱️45 минут
🍷Отдохнуть
▪️Как я выиграла билет на Heisenbug и узнала про «биполярное тестирование»
▪️Как написать сценарий игры по киношным правилам
▪️Назирокодил утилиту на Kotlin и JavaScript для создания аккордов в любой тональности
🚀 Вакансии QA
Тестируй нервы
6 314
Какое ключевое слово используется в оконных функциях PostgreSQL для определения группы строк, к которым применяется функция?
6 314
Какой объект в PostgreSQL используется для нормализации слов (удаления окончаний) при создании поискового индекса tsvector?
6 314
SQL за одну статью: от «SELECT *» до оконных функций и сложных JOIN-ов
#почитать
В этой статье мы пропустим скучную академическую теорию и разберем только то, что реально нужно в работе. Мы пройдем путь от анатомии таблиц и базовых джоинов до оконных функций. А в конце заглянем под капот базы данных и разберем логический порядок выполнения запроса — секретный ингредиент, который навсегда избавит вас от вопроса: «Почему эта строчка не работает?!».
✅Читать статью
6 314
Какой тип данных в PostgreSQL следует использовать для хранения UUID (Universally Unique Identifier)?
6 314
Какой оператор используется для получения строк, которые есть в первом результате запроса, но отсутствуют во втором?
6 314
Как в PostgreSQL называется специальный столбец, который содержит физический адрес версии строки (ID блока и смещение)?
6 314
Какое расширение PostgreSQL позволяет собирать статистику выполнения всех SQL-запросов для выявления самых медленных из них?
