QA.GURU — школа автоматизации тестирования
Ir al canal en Telegram
Выпускаем сильных QA-инженеров с 2019 года. Реальная инфраструктура, практикующие эксперты и бессрочный доступ. Курсы: clck.ru/3QtgJn Отзывы: @qa_guru_reviews Поддержка: @qa_guru_support Чат: @qa_guru_chat
Mostrar más2 536
Suscriptores
Sin datos24 horas
+47 días
-630 días
Archivo de publicaciones
Из ручного тестирования в код: истории выпускников 🚀
Переход в код — это всегда выход из зоны комфорта. Большинство студентов QA.GURU приходят с одинаковыми страхами: «я гуманитарий», «нет времени совмещать с работой», «вдруг не смогу пройти техсобеседование».
Что помогает преодолеть этот барьер:
▫️ Практика с первых дней
Не абстрактные алгоритмы, а реальные клики и запросы. Написал 10 строчек на Selenide — увидел, как браузер сам заполняет форму. Страх чистого листа уходит.
▫️ Поддержка наставников
Когда код падает с непонятной ошибкой, важно не оставаться один на один с консолью. Наставники в чате помогают разобрать стектрейс и учат мыслить системно.
▫️ Дипломный проект в портфолио
К концу курса у выпускника готов полноценный репозиторий с Jenkins, Selenoid и Allure. На собеседованиях ты показываешь работающую систему, а не просто пересказываешь теорию.
Дорогу осилит идущий. Отличных выходных, комьюнити! 🤍
AI в тестировании: агенты и протокол MCP в CI/CD 🤖
Через неделю, 5 ноября, стартует 4-й поток практического интенсива AI-First QA Engineer со Станиславом Васенковым.
Копировать код из чата нейросети — путь к галлюцинациям в селекторах. В продакшене AI встраивают в инженерный контур:
▫️ Протокол MCP (Model Context Protocol)
Подключаем AI-агентов напрямую к Swagger, базам данных и логам Selenoid. Модель сама считывает контекст сервиса и генерирует точные проверки.
▫️ Локальный RAG по вашей кодовой базе
Генерация Page Object в архитектурном стиле вашего проекта, с переиспользованием существующих хелперов команды.
▫️ LLM-as-a-judge в роли Quality Gate
Анализ логов прогона прямо в CI/CD: умное отделение реальных дефектов от инфраструктурных сбоев тестового стенда.
Старт 5 ноября — регистрируйся на странице: AI-First QA Engineer.
Алгоритмический челлендж: проверка граничных значений 💡
На собеседованиях Middle AQA часто проверяют тест-дизайн на алгоритмических задачах со строками.
Задача: инкремент строкового ID
Строка
order_001 → вернуть order_002. Если числа нет (test) → вернуть test1.
Краевые кейсы:
▫️ Переполнение разрядов: user_099 → user_100 (сохранение ведущих нулей).
▫️ Граничные значения: doc_9 → doc_10.
▫️ Числа в середине: item_42_v1 → инкрементируется только суффикс.
Решение на Python:
import re
def inc(s: str) -> str:
m = re.search(r'(\d+)$', s)
if not m: return s + '1'
return s[:m.start()] + str(int(m[1]) + 1).zfill(len(m[1]))
Инженер сразу закрывает такое решение параметризованным тестом на Pytest со всеми краевыми кейсами 🧪Работает — ещё не значит надёжен: инженер vs скриптер 🎯
Написать скрипт, который один раз пройдёт локально — дело 15 минут. Инженерная работа начинается там, где тест обязан стабильно проходить 50 раз в день в CI/CD.
Что отличает взрослого инженера:
1️⃣ Отказ от костылей
Скриптер ставит
Thread.sleep(5000), надеясь на удачу. Инженер разбирается в жизненном цикле приложения и настраивает умные условные ожидания фреймворка.
2️⃣ Устойчивые селекторы
Скриптер копирует абсолютный XPath из консоли (/html/body/div[2]/button), который сломается при первой правке стилей. Инженер запрашивает семантические атрибуты data-testid.
3️⃣ Разделение слоёв
В тесте не должно быть логики поиска элементов. Тест описывает бизнес-логику сценария, а детали взаимодействия спрятаны в компонентах Page Object.
Автоматизация — это не про запуск скрипта, а про культуру качества, которой доверяет команда 🤝Архитектура тестовых данных: почему хардкод убивает тесты 🧱
Каждый второй flaky-тест падает не из-за бага фронтенда, а из-за хаоса в тестовых данных. Зашили в код статического юзера
test@qa.guru, запустили в 4 потока — тесты столкнулись лбами и упали.
Принципы чистой архитектуры данных:
▫️ Test Isolation (изоляция)
Каждый сценарий обязан быть автономным. Никаких общих сущностей, переходящих из теста в тест.
▫️ Генерация через API в Before-хуках
Создавать пользователя через форму регистрации в UI перед каждым тестом слишком долго. Генерируй сущности быстрыми прямыми HTTP-запросами к бэкенду, а в UI проверяй только целевой сценарий.
▫️ Уникальные случайные данные
Используй библиотеки Datafaker (Java) или Faker (Python): уникальные email с таймштампами исключают коллизии в базе.
▫️ Гарантированный Teardown
Удаляй созданные сущности после прогона или откатывай контейнер с БД.
Чистые данные спасают до 70% билдов 🛡️Согласен?Чек-лист подготовки к старту в Java за выходные 📋
До старта 45-го потока «Автоматизация тестирования на Java» с Романом Орловым осталось всего 3 дня — начинаем 26 октября.
Простые шаги, чтобы войти в учёбу без стресса:
1️⃣ Поставь окружение
Установи OpenJDK 21 (Temurin или Amazon Corretto) и среду разработки IntelliJ IDEA Community Edition. Это займёт 15 минут.
2️⃣ Освежи базовую логику
Вспомни простые конструкции: ветвления (if/else), циклы (for/while) и массивы. Код автотестов прямолинеен и следует чётким правилам.
3️⃣ Не бойся красных ошибок
Стектрейс в консоли — это не приговор, а подсказка компилятора. С первых дней тебя подстрахуют наставники школы в закрытом чате.
Старт группы уже в этот понедельник: Записаться на курс по Java.
Allure TestOps: как превратить логи в прозрачность 📊
Когда автотестов становится больше сотни, сырые логи в консоли CI перестают работать. Команде нужен инструмент, показывающий реальное качество релиза.
Как выстроить прозрачную отчётность:
▫️ Семантическая разметка тестов
Аннотации
@Feature, @Story и @Severity группируют сценарии по продуктовым модулям, а не по техническим пакетам.
▫️ Артефакты на каждом шаге
При падении Allure автоматически прикрепляет скриншот экрана, дампы HTTP-запросов и видео прогона из Selenoid. Разработчик сразу видит причину дефекта.
▫️ Аналитика дефектов в Allure TestOps
Кластеризация падений: система группирует ошибки по типу стектрейса и отделяет реальные баги от проблем инфраструктуры.
Отчётность автотестов должна быть понятна не только автоматизатору, но и тимлиду и продакт-оунеру 📈Python в автотестах: современный стек в 2026 году 🐍
Через неделю, 28 октября, стартует 29-й поток курса «Автоматизация тестирования на Python» с Сергеем Хомутининым.
Что входит в боевой инструментарий Python AQA:
▫️ Менеджер зависимостей Poetry
Забудь о конфликтах в requirements.txt. Строгий poetry.lock фиксирует точные хеши пакетов и гарантирует одинаковую сборку на любой машине и в CI.
▫️ Фикстуры и параметризация Pytest
Управление жизненным циклом тестов через yield-фикстуры, изоляция данных и параллельный запуск через pytest-xdist.
▫️ Лаконичный UI на Selene
Умные автоожидания элементов и чистый синтаксис цепочек действий без лишних ожиданий.
▫️ API через Requests и Pydantic
Строгая типизация входящих JSON-ответов и валидация контрактов бэкенда на лету.
Старт потока — 28 октября: Автоматизация на Python.
От ручного чек-листа к коду: боевой стек Java AQA 💻
Через неделю, 26 октября, стартует 45-й поток курса «Автоматизация тестирования на Java» с преподавателем Романом Орловым.
Из каких кирпичиков состоит современный стек автоматизатора:
1️⃣ Java 21 и ООП
Синтаксис, коллекции и классы разбираются сразу на реальных тестовых проверках, без оторванной теории.
2️⃣ UI на Selenide
Умные автоожидания элементов, лаконичный синтаксис и Page Object без падений из-за нестабильной верстки.
3️⃣ API на REST-Assured
Проверка статус-кодов, сериализация JSON в объекты и быстрый прогон сотен проверок за секунды.
4️⃣ Инфраструктура: Docker, Jenkins и Allure
Запуск автотестов в CI/CD контуре, параллельные браузеры в Selenoid и наглядные Allure-отчёты.
Курс создан для перехода от ручного регресса к уровню уверенного Middle AQA.
Старт 26 октября: Курс по Java в QA.GURU.
Что нового в Java Advanced 3.0 - за один час рассказал Дмитрий Тучс, практик, автор курса и руководитель отдела тестирования в Dodo Brands.
Посмотрите запись, чтобы понять, подойдёт ли курс для вашего следующего шага в Java:
▶️ Запись вебинара:
Рутуб: https://rutube.ru/video/private/692fcb52120559b1bbb5e6183ce2e250/?p=Icse04eHfEY8Z9GT26R0pQ
Ютуб: https://www.youtube.com/watch?v=WBpkf985TRM
📘 Запись на курс еще открыта, будем вам очень рады.
Для выпускников школы и новых студентов, действуют специальные условия на Java Advanced 3.0.
Узнайте подробности, написав менеджеру: @qa_guru_sales1
Метрики производительности: почему среднее время врёт ⏱️
Опираться на Average Response Time при нагрузке опасно. Если 95% пользователей получают ответ за 100 мс, а 5% ждут по 15 секунд — среднее покажет «приличные» 800 мс, скрывая потерю клиентов.
На что смотрят перформанс-инженеры:
▫️ Перцентили (p95 и p99)
Метрика худшего пользовательского опыта. Если p95 укладывается в SLA (например, до 300 мс), сервис стабилен даже в пиковые моменты.
▫️ RPS и виртуальные пользователи (VU)
Ступенчатый рост нагрузки (Ramp-up) и поиск точки перегиба, где время отклика уходит в экспоненту.
▫️ Error Rate
Доля сетевых таймаутов и 502/504 кодов. Рост ошибок выше 0.1% — повод блокировать релиз.
▫️ Системные ресурсы
Утечки памяти в куче (JVM Heap), насыщение пулов коннектов к PostgreSQL и блокировки потоков.
А за какими метриками бэкенда следит ваша команда? Обсуждаем в комментариях 👇
k6 против JMeter: как выбрать инструмент нагрузки ⚖️
До старта 2-го потока «Нагрузочное тестирование» с Денисом Сусловым осталось всего 3 дня — стартуем 19 октября.
Какой инструмент выбрать под свои задачи:
▫️ Apache JMeter — проверенный стандарт
Поддерживает любые протоколы (HTTP, JDBC, JMS, TCP) и сложные корпоративные сценарии. Минус — сценарии хранятся в тяжёлых XML-файлах (.jmx), которые трудно версионировать в Git.
▫️ Grafana k6 — современный подход As-a-Code
Скрипты пишутся на чистом JavaScript/TypeScript, выполняются на быстром Go-рантайме с минимальным потреблением RAM. Код легко ревьюится в Pull Request и встраивается в CI/CD как Quality Gate.
На курсе мы учим применять оба: JMeter — для сложных интеграций, k6 — для быстрого перформанс-гейта в микросервисах.
Старт в понедельник: Нагрузочное тестирование.
🔥 Ребята, уже начали наше открытое занятие - присоединяйтесь
https://us06web.zoom.us/j/81115718143?pwd=3gQxeOylLOKw6meP2ZBxjsZakZRe4b.1
Идентификатор конференции: 811 1571 8143
Код доступа: 698207
3 этапа запуска автотестов: от кнопки Run к CI/CD 🚀
Эволюция тестового контура в карьере инженера:
1️⃣ Локальный запуск в IDE
Нажал зелёную стрелку в IntelliJ IDEA или PyCharm. Быстро для отладки одного сценария, но забивает ресурсы машины и не даёт воспроизводимости на других ОС.
2️⃣ Выделенный VPS-сервер
Аренда удалённой машины с поднятым Selenoid. Тесты выполняются удалённо, браузеры изолированы в контейнерах, но запуск всё ещё инициируется вручную.
3️⃣ Полноценный CI/CD пайплайн (Jenkins / GitLab)
Боевой промышленный контур:
• Разработчик пушит код в GitHub → вебхук триггерит джобу в Jenkins.
• Jenkins поднимает Docker-контейнеры и запускает тесты параллельно в Selenoid.
• Allure генерирует отчёт, а бот отправляет статус в Telegram-чат команды.
Именно такой контур студенты QA.GURU разворачивают с первых недель обучения 🛠️
Отличные новости — мы прокачали Java Advanced!
Серьёзно обновили программу: 40 занятий, построенных вокруг реального приложения Rangiffler. Тестируем его, развиваем и выводим тесты в эксплуатацию — от первого занятия до диплома. А ещё в каждом занятии вас сопровождает AI-агент.
И главное: ни одно занятие не повторяет прошлую программу.
📌 Для бывших и текущих студентов −20% (не суммируется со скидками на сайте)
📌 Уже учились на Java Advanced? Приходите за переводом на спецусловиях
📩 Написать менеджеру: @qa_guru_sales1
Приглашаем на открытое занятие 15 октября в 20:00.
📅 Добавить в календарь
Отличные новости — мы прокачали Java Advanced!
Серьёзно обновили программу: 40 занятий, построенных вокруг реального приложения Rangiffler. Тестируем его, развиваем и выводим тесты в эксплуатацию — от первого занятия до диплома. А ещё в каждом занятии вас сопровождает AI-агент.
И главное: ни одно занятие не повторяет прошлую программу.
📌 Для бывших и текущих студентов −20% (не суммируется со скидками на сайте)
📌 Уже учились на Java Advanced? Приходите за переводом на спецусловиях
📩 Написать менеджеру: @qa_guru_sales1
Приглашаем на открытое занятие 15 октября в 20:00.
Добавить в календарь
Chrome DevTools для AQA: локализуем баги до падения теста 🔍
DevTools нужен не только для поиска XPath-селекторов. Две вкладки браузера экономят часы на расследовании причин падений:
▫️ Вкладка Network: фильтрация Fetch/XHR
Когда UI-тест падает по таймауту ожидания кнопки, 90% причин — зависший асинхронный запрос. Отфильтруй Fetch/XHR, отсортируй по Status или Time и посмотри, какой микросервис отдал 500 ошибку или висел 10 секунд.
▫️ Эмуляция медленной сети (Throttling)
Включи профиль «Fast 3G» в Network. Это сразу вскроет race condition: успевает ли спиннер заблокировать кнопку до повторного клика пользователя.
▫️ Вкладка Performance: Long Tasks
Если страница визуально зависает, запиши 5 секунд профиля. Красные флажки «Long Task» (>50 мс) покажут «тяжёлый» JavaScript, блокирующий основной поток браузера.
Ищи первопричину дефектов на уровне сети и рантайма ⚡
Git-гигиена в команде AQA: как не ломать main 🌿
Когда автоматизатор пушит правки напрямую в ветку
main, ночной прогон автотестов рискует упасть из-за несовместимости одного локатора.
Правила здорового Git-процесса для автотестов:
1️⃣ Feature-ветки под каждый сьют
Создавай отдельную ветку под фичу или багфикс: feature/cart-api-tests. Магистральная ветка всегда должна оставаться стабильной и готовой к релизу.
2️⃣ Pull Request + Branch Protection Rules
Заблокируй прямой пуш в main в настройках GitHub/GitLab. Вливать код разрешено только через Pull Request после обязательного аппрува коллеги.
3️⃣ Смоук-прогон на этапе PR
Настрой GitHub Actions на запуск быстрого набора смоук-тестов (10-15 ключевых сценариев) при каждом создании или обновлении PR. Сломанный тест просто не даст смерджить ветку.
Чистая ветка main — залог доверия команды к автотестам 🤝Почему среднее время ответа врёт бизнесу ⏱️
Через неделю, 19 октября, у нас стартует 2-й поток курса «Нагрузочное тестирование» с Денисом Сусловым.
Команда выкатила релиз, функциональные тесты зелёные. Дашборд показывает: «Average Latency — 180 мс». А в день промо-акции сервис ложится.
Почему так происходит:
▫️ Среднее арифметическое прячет беду
Если 950 пользователей получили ответ за 50 мс, а 50 человек ждали 15 секунд — среднее покажет терпимые ~800 мс. Но эти 50 клиентов ушли навсегда.
▫️ Метрика реального мира — перцентили (p95, p99)
Инженеры смотрят на 95-й и 99-й перцентили. Если p95 укладывается в SLA (до 300 мс), 95% пользователей гарантированно получают быстрый сервис.
▫️ Поиск точки деградации
Нагрузка — это поиск узких мест: где захлёбывается пул коннектов к БД или память сервиса под наплывом виртуальных пользователей (VU).
Старт 19 октября — регистрация: Нагрузочное тестирование.
