Media is too big
VIEW IN TELEGRAM
Использование JDBC: почему CallableStatement не всегда нужен, и когда он полезен?
В работе с JDBC чаще всего упоминаются Statement и PreparedStatement. Но есть еще один интерфейс — CallableStatement, о котором говорят реже. Стоит ли вам его изучать и применять?
CallableStatement предназначен исключительно для вызова хранимых процедур в базе данных. Хранимые процедуры — это куски бизнес-логики, написанные непосредственно на стороне базы данных. Например, в PostgreSQL вы можете использовать язык PL/pgSQL для реализации логики, которая автоматически создает дефолтные категории при добавлении нового пользователя.
Когда это полезно:
👉 Если бизнес-логика тесно связана с данными и ее удобнее реализовать на уровне базы.
👉 Когда нужно повысить производительность за счет минимизации сетевого взаимодействия между приложением и базой данных.
👉 Если вы хотите централизовать логику и сделать ее доступной для разных приложений.
Но есть и обратная сторона:
👉 Логика в базе данных усложняет поддержку и тестирование приложения.
👉 Это может привести к зависимости от конкретного вендора базы данных, затрудняя миграцию на другую СУБД.
👉 Именно поэтому CallableStatement не всегда нужен. В большинстве случаев достаточно PreparedStatement, который позволяет безопасно передавать параметры в SQL-запросы.
Единственная сложность PreparedStatement — невозможность напрямую вывести готовый SQL-запрос через toString(). Но существуют обходные пути, позволяющие логировать запросы даже при его использовании.
Вывод: CallableStatement — мощный инструмент, но применять его стоит осознанно, только если преимущества перевешивают минусы. В остальных случаях PreparedStatement остается оптимальным выбором.
На курсе «Java Advanced 2.0» мы разберемся в тонкостях работы с JDBC, узнаем как эффективно использовать Statement, PreparedStatement и CallableStatement и освоим другие продвинутые технологии работы с базами данных и тестированием.
Автор программы — Дмитрий Тучс, Head of QA в Dodo Engineering, спикер Codefest, Codetalks, EpicHey!, ментор и open-source контрибьютор.
🔗 Зарегистрируйтесь на первый открытый урок — по ссылке.
До встречи завтра в 20:00 (мск)!
В работе с JDBC чаще всего упоминаются Statement и PreparedStatement. Но есть еще один интерфейс — CallableStatement, о котором говорят реже. Стоит ли вам его изучать и применять?
CallableStatement предназначен исключительно для вызова хранимых процедур в базе данных. Хранимые процедуры — это куски бизнес-логики, написанные непосредственно на стороне базы данных. Например, в PostgreSQL вы можете использовать язык PL/pgSQL для реализации логики, которая автоматически создает дефолтные категории при добавлении нового пользователя.
Когда это полезно:
Но есть и обратная сторона:
Единственная сложность PreparedStatement — невозможность напрямую вывести готовый SQL-запрос через toString(). Но существуют обходные пути, позволяющие логировать запросы даже при его использовании.
Вывод: CallableStatement — мощный инструмент, но применять его стоит осознанно, только если преимущества перевешивают минусы. В остальных случаях PreparedStatement остается оптимальным выбором.
На курсе «Java Advanced 2.0» мы разберемся в тонкостях работы с JDBC, узнаем как эффективно использовать Statement, PreparedStatement и CallableStatement и освоим другие продвинутые технологии работы с базами данных и тестированием.
Автор программы — Дмитрий Тучс, Head of QA в Dodo Engineering, спикер Codefest, Codetalks, EpicHey!, ментор и open-source контрибьютор.
🔗 Зарегистрируйтесь на первый открытый урок — по ссылке.
До встречи завтра в 20:00 (мск)!
Please open Telegram to view this post
VIEW IN TELEGRAM
Playwright уверенно закрепился в топе инструментов автоматизации тестирования, и в 2025 году его позиции только укрепились. Вот 7 причин, почему сегодня он заслуженно считается лучшим решением для QA-инженеров и разработчиков:
1) Нативная интеграция с браузерами
В отличие от инструментов, основанных на WebDriver (например, Selenium), Playwright взаимодействует напрямую с нативными протоколами автоматизации браузеров. Это обеспечивает более точный контроль над браузером, ускоряет выполнение тестов и минимизирует нестабильность сценариев.
2) Продвинутые возможности кросс-браузерного тестирования
Playwright поддерживает Chromium, Firefox и WebKit (Safari), позволяя запускать тесты без дополнительных конфигураций на разных платформах и устройствах. В 2025 году ожидается еще больше улучшений в поддержке последних версий браузеров и новых веб-стандартов.
3) AI-генерация и самовосстановление тестов
В 2025 году Playwright активно внедряет искусственный интеллект для автоматической генерации сценариев на основе анализа пользовательских действий. Кроме того, AI-функции позволяют тестам «самовосстанавливаться» при изменениях UI, заметно снижая затраты на поддержку тестового покрытия.
4) Расширенные возможности отладки и отчетности
Playwright предоставляет мощные инструменты для real-time отладки, пошагового выполнения сценариев и детализированного логирования ошибок. Кастомизируемые отчёты позволяют QA-командам принимать решения на основе глубокого анализа результатов.
5) Улучшенные возможности мобильного и адаптивного тестирования
Важнейшим направлением развития Playwright является точная эмуляция мобильных устройств, интеграция с облачными платформами реальных устройств и продвинутые функции проверки адаптивного дизайна на различных разрешениях экранов.
6) Расширенные возможности сетевого и нагрузочного тестирования
Playwright позволяет имитировать различные сетевые условия (задержки, нестабильность соединения), измерять производительность приложений и выявлять узкие места для оптимизации — это критически важно в условиях роста требований к скорости работы приложений.
7) Высокая масштабируемость за счёт параллельного выполнения
Playwright поддерживает параллельный запуск множества тестов одновременно, что значительно сокращает время выполнения тестовых наборов. Возможность распределённого запуска на различных окружениях обеспечивает стабильность результатов вне зависимости от инфраструктуры
Playwright — это не просто инструмент для автоматизации тестирования, а настоящий прорыв в мире QA.
Если вы хотите освоить его на экспертном уровне и стать востребованным Automation QA-инженером - зарегистрируйтесь на первый открытый урок по ссылке.
1) Нативная интеграция с браузерами
В отличие от инструментов, основанных на WebDriver (например, Selenium), Playwright взаимодействует напрямую с нативными протоколами автоматизации браузеров. Это обеспечивает более точный контроль над браузером, ускоряет выполнение тестов и минимизирует нестабильность сценариев.
2) Продвинутые возможности кросс-браузерного тестирования
Playwright поддерживает Chromium, Firefox и WebKit (Safari), позволяя запускать тесты без дополнительных конфигураций на разных платформах и устройствах. В 2025 году ожидается еще больше улучшений в поддержке последних версий браузеров и новых веб-стандартов.
3) AI-генерация и самовосстановление тестов
В 2025 году Playwright активно внедряет искусственный интеллект для автоматической генерации сценариев на основе анализа пользовательских действий. Кроме того, AI-функции позволяют тестам «самовосстанавливаться» при изменениях UI, заметно снижая затраты на поддержку тестового покрытия.
4) Расширенные возможности отладки и отчетности
Playwright предоставляет мощные инструменты для real-time отладки, пошагового выполнения сценариев и детализированного логирования ошибок. Кастомизируемые отчёты позволяют QA-командам принимать решения на основе глубокого анализа результатов.
5) Улучшенные возможности мобильного и адаптивного тестирования
Важнейшим направлением развития Playwright является точная эмуляция мобильных устройств, интеграция с облачными платформами реальных устройств и продвинутые функции проверки адаптивного дизайна на различных разрешениях экранов.
6) Расширенные возможности сетевого и нагрузочного тестирования
Playwright позволяет имитировать различные сетевые условия (задержки, нестабильность соединения), измерять производительность приложений и выявлять узкие места для оптимизации — это критически важно в условиях роста требований к скорости работы приложений.
7) Высокая масштабируемость за счёт параллельного выполнения
Playwright поддерживает параллельный запуск множества тестов одновременно, что значительно сокращает время выполнения тестовых наборов. Возможность распределённого запуска на различных окружениях обеспечивает стабильность результатов вне зависимости от инфраструктуры
Playwright — это не просто инструмент для автоматизации тестирования, а настоящий прорыв в мире QA.
Если вы хотите освоить его на экспертном уровне и стать востребованным Automation QA-инженером - зарегистрируйтесь на первый открытый урок по ссылке.
Forwarded from Anton
#qaguru #javaadvanced #отзыв
Хочу рассказать о курсе Java Advanced от Дмитрия Тучса, который попадает в категорию КУРСОВ, Олимп self-help образования. ⛰️
1️⃣ Почему вписался изначально?
За последние несколько лет редко работал с Java и успел забыть то, что раньше знал. На новом проекте надо было строить автоматизацию вокруг монолита на Джаве, поэтому принялся искать курс «для продолжающих», чтобы быстро вкатиться и начать применять знания на боевом проекте.
2️⃣ Первые впечатления
Курс сложный. Он не объёмный, он огромный — готовьтесь тратить пару десятков часов еженедельно, чтобы успевать с потоком.
Какие-то темы были понятны сразу, какие-то приходилось пересматривать. Если попытаться обобщать, курс строится вокруг границ применения JUnit Extensions для E2E тестов, чтобы код тестов оставался поддерживаемым и понятным.
JUnit Extensions — недооценённый алмаз 💎, который требует кропотливой огранки. Дмитрий Тучс овладел ремеслом огранки лучше всех в русскоязычном сегменте, поэтому научитесь вы многому.
Как учил Дэвид Линч «Понимание переоценено», поэтому не пытайтесь сходу въехать во все технические детали. Почему так, а не иначе. С практикой и выполнением домашек понимание начнёт догонять.
А когда догонит, вы поймёте, что инструмент мощный и позволяет делать крутые штуки без оверхеда.
По ходу курса Дмитрий объясняет не только как писать тесты, но и многие вещи из мира разработки бэкенд сервисов. А ссылок на материалы и доклады хватит еще на месяц самообразования.
3️⃣ Для кого?
Если вы готовы инвестировать в себя, как в специалиста в QA и автоматизации, этот курс для вас. Думаю, после прохождения результат можно назвать левел-апом с несколькими уровнями. По моему скромному мнению этот курс экономит годы времени в промышленном тестировании. Я был бы счастлив, чтобы соискатели на Senior позиции были на 50% знакомы с темами курса.
К сожалению, на рынке обычно все намного печальнее.
4️⃣ Пожелания
Было бы круто добавить пару уроков про Testcontainers, как библиотеку для в помощь при написании интеграционных тестов.
Курс помог мне переделать запуск интеграционных тестов с параллельным запуском контейнеров, у нас теперь эти тесты бегут в шесть потоков, и каждый класс запускает свой набор контейнеров независимо.
Хочу рассказать о курсе Java Advanced от Дмитрия Тучса, который попадает в категорию КУРСОВ, Олимп self-help образования. ⛰️
1️⃣ Почему вписался изначально?
За последние несколько лет редко работал с Java и успел забыть то, что раньше знал. На новом проекте надо было строить автоматизацию вокруг монолита на Джаве, поэтому принялся искать курс «для продолжающих», чтобы быстро вкатиться и начать применять знания на боевом проекте.
2️⃣ Первые впечатления
Курс сложный. Он не объёмный, он огромный — готовьтесь тратить пару десятков часов еженедельно, чтобы успевать с потоком.
Какие-то темы были понятны сразу, какие-то приходилось пересматривать. Если попытаться обобщать, курс строится вокруг границ применения JUnit Extensions для E2E тестов, чтобы код тестов оставался поддерживаемым и понятным.
JUnit Extensions — недооценённый алмаз 💎, который требует кропотливой огранки. Дмитрий Тучс овладел ремеслом огранки лучше всех в русскоязычном сегменте, поэтому научитесь вы многому.
Как учил Дэвид Линч «Понимание переоценено», поэтому не пытайтесь сходу въехать во все технические детали. Почему так, а не иначе. С практикой и выполнением домашек понимание начнёт догонять.
А когда догонит, вы поймёте, что инструмент мощный и позволяет делать крутые штуки без оверхеда.
По ходу курса Дмитрий объясняет не только как писать тесты, но и многие вещи из мира разработки бэкенд сервисов. А ссылок на материалы и доклады хватит еще на месяц самообразования.
3️⃣ Для кого?
Если вы готовы инвестировать в себя, как в специалиста в QA и автоматизации, этот курс для вас. Думаю, после прохождения результат можно назвать левел-апом с несколькими уровнями. По моему скромному мнению этот курс экономит годы времени в промышленном тестировании. Я был бы счастлив, чтобы соискатели на Senior позиции были на 50% знакомы с темами курса.
К сожалению, на рынке обычно все намного печальнее.
4️⃣ Пожелания
Было бы круто добавить пару уроков про Testcontainers, как библиотеку для в помощь при написании интеграционных тестов.
Курс помог мне переделать запуск интеграционных тестов с параллельным запуском контейнеров, у нас теперь эти тесты бегут в шесть потоков, и каждый класс запускает свой набор контейнеров независимо.
Мы начинаем! Вводное занятие курса "Автоматизация тестирования на Java Advanced"
🔗 Подключайтесь по ссылке.
🔗 Подключайтесь по ссылке.
Первый урок «Java Advanced» доступен в записи!
Вы найдете занятие на платформе школы, YouTube или Rutube.
Еще не купили курс? Сейчас самое время!
Скидка 5% действует до завтра до 12 часов по московскому времени.
До встречи на занятиях!
Вы найдете занятие на платформе школы, YouTube или Rutube.
Еще не купили курс? Сейчас самое время!
Скидка 5% действует до завтра до 12 часов по московскому времени.
До встречи на занятиях!
YouTube
Java+ 2.0, 8-ой поток. Дмитрий Тучс. «Intro to QA.GURU Java Advanced v. 2.0»
00:00 - Введение
00:51 - Цель занятия
01:16 - План занятия
01:59 - Структура учебного плана
08:10 - Преподаватели
10:38 - Основные принципы white-box тестирования
20:10 - Переходим к написанию теста
26:58 - Реализация методов
34:10 - Проблемы с тестом…
00:51 - Цель занятия
01:16 - План занятия
01:59 - Структура учебного плана
08:10 - Преподаватели
10:38 - Основные принципы white-box тестирования
20:10 - Переходим к написанию теста
26:58 - Реализация методов
34:10 - Проблемы с тестом…
Время автоматизировать на JavaScript 🌚
Автоматизация QA шагает вперед, нет времени отставать!
Преимущества экосистемы тестирования на JS:
👉 Возможность общего репозитория с фронтендом упрощает синхронизацию версий кода и тестов, облегчает CI/CD.
👉 С помощью инструментов по типу Istanbul/NYC для JavaScript мы можем оценить объем покрытия кода тестами.
👉 А Allure 3, который раньше ассоциировался в основном с Java, теперь переписан на JavaScript.
Приходите на открытое занятие по JS+Playwright, будем учиться писать автотесты на JavaScript и работать с новым фреймворком.
Что в программе?
👉 Разберемся в основах языка JavaScript и научимся использовать Playwright для автоматизации тестирования веб-приложений.
👉 Освоим создание автоматизированных тестов для современных веб-приложений, включая работу с динамическими элементами и сложными интерфейсами.
👉 Изучим Page Object Model для построения масштабируемых и поддерживаемых тестовых фреймворков.
👉 Узнаем, как интегрировать API-тестирование в свои сценарии, создавать данные, тестировать их и удалять в рамках одного скрипта.
👉 А еще, как настроить инфраструктуру для запуска тестов, включая отчеты (Allure Reports) и уведомления о статусе тестов в Telegram или Slack.
И многое другое!
🔗 Посмотрите план курса и зарегистрируйтесь на встречу по ссылке.
Автоматизация QA шагает вперед, нет времени отставать!
Преимущества экосистемы тестирования на JS:
Приходите на открытое занятие по JS+Playwright, будем учиться писать автотесты на JavaScript и работать с новым фреймворком.
Что в программе?
И многое другое!
🔗 Посмотрите план курса и зарегистрируйтесь на встречу по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
qa.guru
Курс по автоматизации тестирования JavaScript + PlayWright | QA.GURU
Основы тестирования на JavaScript (джаваскрипт) и Playwright. Обучение автоматическому тестированию программ и приложений на JavaScript.
Открываем удивительный мир автоматизации на Java!
🪄 Если вы ждали знак, то это он. Ваш знак написать свой первый автотест.
Java выбирают для старта в разработке и QA. Выучить язык с нуля реально, а для написания автотестов достаточно освоить базу.
Java — универсальный и востребованный язык. Популярен в самых разных отраслях, от веб-разработки до корпоративных систем.
На курсе мы учим писать код с нуля и применять его в ремесле QA, работать с популярными инструментами автоматизации, например, Selenide и JUnit. А еще запускать параллельное тесты, автотесты на разных платформах и многому другому!
Приходите знакомиться с Java на бесплатном занятии по Java Base в следующий четверг.
🔗 Программа курса и регистрация на первый урок — по ссылке.
Java выбирают для старта в разработке и QA. Выучить язык с нуля реально, а для написания автотестов достаточно освоить базу.
Java — универсальный и востребованный язык. Популярен в самых разных отраслях, от веб-разработки до корпоративных систем.
На курсе мы учим писать код с нуля и применять его в ремесле QA, работать с популярными инструментами автоматизации, например, Selenide и JUnit. А еще запускать параллельное тесты, автотесты на разных платформах и многому другому!
Приходите знакомиться с Java на бесплатном занятии по Java Base в следующий четверг.
🔗 Программа курса и регистрация на первый урок — по ссылке.
Please open Telegram to view this post
VIEW IN TELEGRAM
qa.guru
Курс по автоматизации тестирования на Java | QA.GURU
Основы тестирования на Java (джава) и Selenide. Обучение автоматическому тестированию программ и приложений на Java.
Разберем архитектуру тестового фреймворка на JS, как конструктор Lego 🧱
Ждем вас на первом занятии курса «JavaScript + Playwright» в этот четверг, 27 марта, в 20:00 (мск).
Вводное проведет Любовь Данилова, опытный QA-инженер с 10+ лет опыта.
Рекомендуем курс ручным тестировщикам, особенно если вы уже работали с тестированием веб-приложений📱
А еще программа подойдет новичкам!
Приходите на занятие, даже если никогда не писали код. Синтаксис JS проще, чем у многих других языков (например, у Java или C#).
На первом занятии вы научитесь:
🔜 Настраивать среду разработки, запускать и отлаживать тесты.
🔜 Работать с ключевыми элементами тестового фреймворка.
🔜 А еще разберетесь в структуре автотестов и тестового фреймворка.
🔠 И напишете свой первый автотест на JS.
🔗 Зарегистрируйтесь для участия по ссылке.
Все студенты первого занятия получат домашку, которую мы проверим.
Ждем вас на первом занятии курса «JavaScript + Playwright» в этот четверг, 27 марта, в 20:00 (мск).
Вводное проведет Любовь Данилова, опытный QA-инженер с 10+ лет опыта.
Рекомендуем курс ручным тестировщикам, особенно если вы уже работали с тестированием веб-приложений
А еще программа подойдет новичкам!
Приходите на занятие, даже если никогда не писали код. Синтаксис JS проще, чем у многих других языков (например, у Java или C#).
На первом занятии вы научитесь:
🔗 Зарегистрируйтесь для участия по ссылке.
Все студенты первого занятия получат домашку, которую мы проверим.
Please open Telegram to view this post
VIEW IN TELEGRAM
qa.guru
Курс по автоматизации тестирования JavaScript + PlayWright | QA.GURU
Основы тестирования на JavaScript (джаваскрипт) и Playwright. Обучение автоматическому тестированию программ и приложений на JavaScript.
Playwright — Флэш в мире автотестов 🦸♂️
Видит, кликает, ждет и проверяет, как это сделал бы настоящий пользователь, но без капризов и усталости.
Что может Playwright?
Параллельное выполнение тестов
Playwright использует всю мощь вашего оборудования, запуская тесты параллельно на нескольких ядрах процессора. Это значительно сокращает общее время выполнения.
Изоляция контекста браузера
Создание нового контекста браузера для каждого теста занимает всего несколько миллисекунд. Это обеспечивает полную изоляцию тестов без накладных расходов.
Встроенные механизмы ожидания
Playwright автоматически ждет, пока элементы станут доступными для взаимодействия. Это устраняет необходимость в ручных таймаутах, основной причине нестабильных тестов.
Быстрый запуск браузера
Playwright оптимизирует запуск браузера, что особенно важно при выполнении множества небольших тестов.
Эмуляция мобильных устройств
Тестирование мобильных версий сайтов происходит на том же движке рендеринга, что и десктопные версии. Это устраняет необходимость в отдельной инфраструктуре для мобильного тестирования.
Мощные инструменты отладки
Встроенные инструменты, такие как Inspector и Trace Viewer, позволяют быстро находить и исправлять ошибки.
Кодогенерация
Функция codegen позволяет быстро создавать базовые тесты, записывая действия пользователя.
Поддержка нескольких языков
Подойдет для работы на TypeScript, JavaScript, Python, .NET или Java.
Надежные селекторы
Playwright использует надежные селекторы, которые работают даже при изменении структуры DOM, а это уменьшает количество ложных срабатываний.
Интеграция с CI/CD
Легкая интеграция с популярными системами непрерывной интеграции дает возможность автоматизировать весь процесс тестирования.
Хотите узнать больше?
⏳ Ждем вас завтра в 20:00 (мск) на открытом занятии «JavaScript + Playwright».
Будет много практики 👩💻
🔗 Зарегистрируйтесь, чтобы получить ссылку на трансляцию.
Видит, кликает, ждет и проверяет, как это сделал бы настоящий пользователь, но без капризов и усталости.
Что может Playwright?
Параллельное выполнение тестов
Playwright использует всю мощь вашего оборудования, запуская тесты параллельно на нескольких ядрах процессора. Это значительно сокращает общее время выполнения.
Изоляция контекста браузера
Создание нового контекста браузера для каждого теста занимает всего несколько миллисекунд. Это обеспечивает полную изоляцию тестов без накладных расходов.
Встроенные механизмы ожидания
Playwright автоматически ждет, пока элементы станут доступными для взаимодействия. Это устраняет необходимость в ручных таймаутах, основной причине нестабильных тестов.
Быстрый запуск браузера
Playwright оптимизирует запуск браузера, что особенно важно при выполнении множества небольших тестов.
Эмуляция мобильных устройств
Тестирование мобильных версий сайтов происходит на том же движке рендеринга, что и десктопные версии. Это устраняет необходимость в отдельной инфраструктуре для мобильного тестирования.
Мощные инструменты отладки
Встроенные инструменты, такие как Inspector и Trace Viewer, позволяют быстро находить и исправлять ошибки.
Кодогенерация
Функция codegen позволяет быстро создавать базовые тесты, записывая действия пользователя.
Поддержка нескольких языков
Подойдет для работы на TypeScript, JavaScript, Python, .NET или Java.
Надежные селекторы
Playwright использует надежные селекторы, которые работают даже при изменении структуры DOM, а это уменьшает количество ложных срабатываний.
Интеграция с CI/CD
Легкая интеграция с популярными системами непрерывной интеграции дает возможность автоматизировать весь процесс тестирования.
Хотите узнать больше?
Будет много практики 👩💻
🔗 Зарегистрируйтесь, чтобы получить ссылку на трансляцию.
Please open Telegram to view this post
VIEW IN TELEGRAM
qa.guru
Курс по автоматизации тестирования JavaScript + PlayWright | QA.GURU
Основы тестирования на JavaScript (джаваскрипт) и Playwright. Обучение автоматическому тестированию программ и приложений на JavaScript.
Мы начинаем!
Вводное занятие курса «Автоматизация тестирования на JavaScript + Playwright».
🔗 Подключайтесь по ссылке.
Вводное занятие курса «Автоматизация тестирования на JavaScript + Playwright».
🔗 Подключайтесь по ссылке.
Первый урок «JavaScript + Playwright» доступен в записи!
Вы найдете занятие на платформе школы, YouTube или Rutube.
Еще не купили курс? Сейчас самое время!
Скидка 5% действует до завтра до 12 часов по московскому времени.
До встречи на занятиях!
Вы найдете занятие на платформе школы, YouTube или Rutube.
Еще не купили курс? Сейчас самое время!
Скидка 5% действует до завтра до 12 часов по московскому времени.
До встречи на занятиях!
YouTube
JS + Playwright. 3-ий поток. Любовь Данилова. «Вводное занятие»
00:00 - Введение
01:32 - Опыт и проекты преподавателя
03:18 - О чем будем говорить?
07:00 - Планируем автоматизацию
14:00 - Основные проблемы
19:37 - Архитектура
20:03 - Пирамида тестирования
22:18 - Разделение ответственности
23:44 - Модульность
27:45…
01:32 - Опыт и проекты преподавателя
03:18 - О чем будем говорить?
07:00 - Планируем автоматизацию
14:00 - Основные проблемы
19:37 - Архитектура
20:03 - Пирамида тестирования
22:18 - Разделение ответственности
23:44 - Модульность
27:45…
Ребят, привет, мини-опрос.
Мы часто проводим вводные к нашим курсам по автоматизации тестирования, что вы хотели бы видеть на вступительном занятии? (Можно несколько вариантов)
Мы часто проводим вводные к нашим курсам по автоматизации тестирования, что вы хотели бы видеть на вступительном занятии? (Можно несколько вариантов)
Anonymous Poll
38%
Теория, архитектура проекта и т.п. (без кода)
21%
Минимум теории, простой код, автотест на форму поиска
30%
Код посложнее, формы регистрации, фильтры, списки
25%
Примеры кода на других библиотеках в рамках того же языка (Selenium - Selenide - Playwright)
17%
Примеры кода на других языках (Если вводное на Java - показать примеры на JavaScript, Python)
43%
Показать пример итоговой дипломной работы
4%
Свой вариант
От чего зависит эффективность автотестов?
От их правильного написания и поддерживаемости!
Поэтому сегодня — немного о практиках, которые помогут вам создавать качественные автотесты на Java.
1. Используйте понятные и описательные названия тестов
Названия тестов должны четко отражать их цель. Это упрощает понимание кода всеми членами команды.
Например:
// Хорошо
// Плохо
Описательные названия помогают быстро понять, что проверяет тест, без необходимости изучения его внутренней логики.
2. Применяйте Page Object Model (POM)
Page Object Model позволяет отделить логику теста от структуры веб-страницы, что делает код более модульным и удобным для поддержки при изменениях интерфейса.
Пример использования:
// Класс
// Тестовый сценарий
POM способствует повторному использованию кода и улучшает читаемость тестов.
3. Используйте параметризацию и data-driven подход
Параметризованные тесты позволяют запускать один и тот же сценарий с различными входными данными, что увеличивает охват тестирования без дублирования кода.
Этот подход делает тесты более гибкими и масштабируемыми.
4. Следуйте принципу AAA (Arrange, Act, Assert)
Структурируйте тесты в три этапа:
Arrange: подготовка данных и окружения.
Act: выполнение действия.
Assert: проверка результата.
Пример:
Этот подход делает тесты более организованными и легко читаемыми.
5. Логирование и отчетность
Добавляйте логирование в тесты для диагностики проблем:
Интеграция инструментов отчетности (например, Allure) помогает визуализировать результаты тестов и быстро выявлять ошибки.
6. Регулярные ревью кода
Проводите регулярные ревью автотестов для повышения качества кода. Это помогает выявить потенциальные проблемы, улучшить читаемость и обеспечить соблюдение стандартов кодирования.
7. Автоматизация и CI/CD
Используйте инструменты автоматизации (Maven, Gradle) для запуска тестов в рамках CI/CD пайплайнов. Это ускоряет процесс разработки и обеспечивает стабильность приложения на всех этапах.
Следуйте этим практикам и создавайте эффективные автотесты, которые легко поддерживаются в долгосрочной перспективе.
Этому и многому другому научим вас на базовом курсе по автоматизации на Java.
🔗 Зарегистрируйтесь на первый открытый урок по ссылке.
От их правильного написания и поддерживаемости!
Поэтому сегодня — немного о практиках, которые помогут вам создавать качественные автотесты на Java.
1. Используйте понятные и описательные названия тестов
Названия тестов должны четко отражать их цель. Это упрощает понимание кода всеми членами команды.
Например:
// Хорошо
public void verifyLoginWithValidCredentials() { ... }
// Плохо
public void test1() { ... }
Описательные названия помогают быстро понять, что проверяет тест, без необходимости изучения его внутренней логики.
2. Применяйте Page Object Model (POM)
Page Object Model позволяет отделить логику теста от структуры веб-страницы, что делает код более модульным и удобным для поддержки при изменениях интерфейса.
Пример использования:
// Класс
Page Object
public class LoginPage {
private By usernameField = By. id("username");
private By passwordField = By. id("password");
private By loginButton = By. id("loginBtn");
public void enterUsername(String username) {
driver.findElement(usernameField).sendKeys(username);
}
public void enterPassword(String password) {
driver.findElement(passwordField).sendKeys(password);
}
public void clickLoginButton() {
driver.findElement(loginButton).click();
}
}
// Тестовый сценарий
LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername("john.doe");
loginPage.enterPassword("password123");
loginPage.clickLoginButton();
POM способствует повторному использованию кода и улучшает читаемость тестов.
3. Используйте параметризацию и data-driven подход
Параметризованные тесты позволяют запускать один и тот же сценарий с различными входными данными, что увеличивает охват тестирования без дублирования кода.
@ ParameterizedTest
@ CsvSource({"john.doe, password123", "jane.smith, test@123"})
public void verifyLogin(String username, String password) {
LoginPage loginPage = new LoginPage(driver);
loginPage.enterUsername(username);
loginPage.enterPassword(password);
loginPage.clickLoginButton();
}
Этот подход делает тесты более гибкими и масштабируемыми.
4. Следуйте принципу AAA (Arrange, Act, Assert)
Структурируйте тесты в три этапа:
Arrange: подготовка данных и окружения.
Act: выполнение действия.
Assert: проверка результата.
Пример:
@ Test
public void testAddition() {
// Arrange
Calculator calculator = new Calculator();
// Act
int result = calculator.add(2, 3);
// Assert
assertEquals(5, result);
}
Этот подход делает тесты более организованными и легко читаемыми.
5. Логирование и отчетность
Добавляйте логирование в тесты для диагностики проблем:
log. info("Entering username: " + username);
log. info("Clicking on the login button");
Интеграция инструментов отчетности (например, Allure) помогает визуализировать результаты тестов и быстро выявлять ошибки.
6. Регулярные ревью кода
Проводите регулярные ревью автотестов для повышения качества кода. Это помогает выявить потенциальные проблемы, улучшить читаемость и обеспечить соблюдение стандартов кодирования.
7. Автоматизация и CI/CD
Используйте инструменты автоматизации (Maven, Gradle) для запуска тестов в рамках CI/CD пайплайнов. Это ускоряет процесс разработки и обеспечивает стабильность приложения на всех этапах.
Следуйте этим практикам и создавайте эффективные автотесты, которые легко поддерживаются в долгосрочной перспективе.
Этому и многому другому научим вас на базовом курсе по автоматизации на Java.
🔗 Зарегистрируйтесь на первый открытый урок по ссылке.
qa.guru
Курс по автоматизации тестирования на Java | QA.GURU
Основы тестирования на Java (джава) и Selenide. Обучение автоматическому тестированию программ и приложений на Java.
1. Основы синтаксиса и типы данных
Для начала важно освоить базовый синтаксис Java: переменные, операторы (арифметические, логические и сравнения), условные конструкции (if-else, switch) и циклы (for, while, do-while).
Эти элементы — фундамент для написания простых программ и автотестов.
Пример: проверка статуса элемента на веб-странице с использованием цикла:
for (WebElement element : elements) {
if (element.isDisplayed()) {
System.out.println("Элемент отображается.");
}
}
2. Объектно-ориентированное программирование (ООП)
Java — это объектно-ориентированный язык, поэтому понимание принципов ООП крайне важно:
Классы и объекты. Классы описывают сущности, а объекты являются их экземплярами.
Наследование: позволяет переиспользовать код.
Полиморфизм: дает возможность использовать один интерфейс для различных реализаций.
Инкапсуляция: помогает скрыть детали реализации.
Для тестировщиков эти принципы особенно полезны при работе с паттерном Page Object Model (POM), где каждый веб-элемент представляется как объект.
3. Коллекции
Коллекции в Java (например, List, Set, Map) необходимы для работы с большими объемами данных. Например, вы можете хранить данные тест-кейсов или результаты выполнения тестов в коллекциях.
Пример использования:
List<String> testCases = new ArrayList<>();
testCases.add("Login Test");
testCases.add("Registration Test");
System.out.println("Всего тестов: " + testCases.size());
4. Исключения и обработка ошибок
В автоматизации важно уметь обрабатывать исключения, чтобы тесты не прерывались из-за ошибок. Конструкции try-catch позволяют перехватывать ошибки и выполнять альтернативные действия.
Пример:
try {
driver.findElement(By.id("nonexistent")).click();
} catch (NoSuchElementException e) {
System.out.println("Элемент не найден.");
}
5. Юнит-тестирование
Для проверки корректности кода используются фреймворки юнит-тестирования, такие как JUnit или TestNG. Они позволяют структурировать тесты, задавать предусловия (@Before), постусловия (@After) и объединять тестовые сценарии в группы.
Пример простого теста:
@Test
public void testAddition() {
int result = Calculator.add(2, 3);
assertEquals(5, result);
}
6. Работа с потоками
Многопоточность в Java позволяет запускать несколько тестов параллельно, что ускоряет выполнение автотестов.
Например, в Selenium, Selenide и Playwright можно использовать потоки для одновременного запуска тестов на разных браузерах.
7. Генерики
Генерики позволяют писать универсальный код, который может работать с различными типами данных. Это повышает читаемость и повторное использование кода.
Пример:
public class TestData<T> {
private T data;
public void setData(T data) {
this.data = data;
}
public T getData() {
return data;
}
}
Java для тестировщика — это больше, чем просто инструмент. Это язык, который позволяет создавать мощные и гибкие фреймворки.
Приходите на первое занятие, даже если никогда не писали код. Программа подходит новичкам
🔗 Буду на вводном!
Please open Telegram to view this post
VIEW IN TELEGRAM
qa.guru
Курс по автоматизации тестирования на Java | QA.GURU
Основы тестирования на Java (джава) и Selenide. Обучение автоматическому тестированию программ и приложений на Java.
Отзыв Каида на курс «Java Base» 🤍
«..Несмотря на рекомендацию коллег, оставались сомнения: вдруг не подойдет формат? Вдруг не получится?
Однако очень быстро все сомнения развеялись: обучение проходит в гибком графике, можно учиться в любое время, пересматривать материалы и сочетать с работой. А практика с первого дня и поддержка менторов позволяют быстро закрепить материал..»
Каид, спасибо за отзыв! Наши студенты и их успешное обучение — наша сама большая мотивация.
Кстати, уже завтра в 20:00 (мск) ждем вас на старте 35 потока по направлению «Java Base».
🔗 Зарегистрируйтесь, чтобы не пропустить встречу.
«..Несмотря на рекомендацию коллег, оставались сомнения: вдруг не подойдет формат? Вдруг не получится?
Однако очень быстро все сомнения развеялись: обучение проходит в гибком графике, можно учиться в любое время, пересматривать материалы и сочетать с работой. А практика с первого дня и поддержка менторов позволяют быстро закрепить материал..»
Каид, спасибо за отзыв! Наши студенты и их успешное обучение — наша сама большая мотивация.
Кстати, уже завтра в 20:00 (мск) ждем вас на старте 35 потока по направлению «Java Base».
Please open Telegram to view this post
VIEW IN TELEGRAM
Первый урок «Java Base» доступен в записи!
Вы найдете занятие на платформе школы, YouTube и Rutube.
Еще не купили курс? Сейчас самое время!
Скидка 5% действует до завтра до 12 часов по московскому времени.
До встречи на занятиях!
Вы найдете занятие на платформе школы, YouTube и Rutube.
Еще не купили курс? Сейчас самое время!
Скидка 5% действует до завтра до 12 часов по московскому времени.
До встречи на занятиях!
YouTube
QA.GURU. Java 35-ый поток. Станислав Васенков. «Вводное занятие. Сразу к практике!»
00:00 - Введение
06:27 - Общение со зрителями
08:55 - План занятия
11:47 - О преподавателе
18:20 - Вопросы
25:55 - Автотесты
28:50 - Преподаватели и структура курса
30:25 - Основные принципы автоматизации
39:50 - Рассматриваем автотест
50:55 - Варианты…
06:27 - Общение со зрителями
08:55 - План занятия
11:47 - О преподавателе
18:20 - Вопросы
25:55 - Автотесты
28:50 - Преподаватели и структура курса
30:25 - Основные принципы автоматизации
39:50 - Рассматриваем автотест
50:55 - Варианты…
Forwarded from LikeaDuck🦆
This media is not supported in your browser
VIEW IN TELEGRAM
#selenide #selenoid #docker
Хочу рассказать историю потерянного выходного дня.
Часть 1: Пролог
Начиналось все, как обычно, хорошо - я просто решил добавить пару скриншотных тестов на canvas, который отрисовывается с анимацией библиотекой chart.js, в наш учебный проект qa.guru - Niffler.
Канвас - это такая штука, содержимое которой можно проверить только скриншотом - что там будет нарисовано, одному chart.js (в моем случае) известно. Т.к. отрисовка происходит с анимацией, то добавляем классический
Но, я не об этом.
Этот тест прекрасно работает локально, вот, буквально, 10 из 10 попыток - passed ✅
И 10 из 10 падает при попытках запустить в Selenoid (как на официальном
Почему? Читай далее, а пока накидывай варианты ⬇️
Хочу рассказать историю потерянного выходного дня.
Часть 1: Пролог
Начиналось все, как обычно, хорошо - я просто решил добавить пару скриншотных тестов на canvas, который отрисовывается с анимацией библиотекой chart.js, в наш учебный проект qa.guru - Niffler.
Канвас - это такая штука, содержимое которой можно проверить только скриншотом - что там будет нарисовано, одному chart.js (в моем случае) известно. Т.к. отрисовка происходит с анимацией, то добавляем классический
Thread.sleep
на пару секунд, делаем скриншот, сравниваем с expected. Здесь передаем привет докладам про "антипаттерны автотестов", где минут 10 говорят, что Thread.sleep
в тестах быть не должно🤌Но, я не об этом.
Этот тест прекрасно работает локально, вот, буквально, 10 из 10 попыток - passed ✅
И 10 из 10 падает при попытках запустить в Selenoid (как на официальном
selenoid/vnc_chrome:127.0
, так и на неофициальном twilio/selenoid:chrome_stable_135
) 🔴Почему? Читай далее, а пока накидывай варианты ⬇️
Allure Reports | зачем отчетность в автотестировании
Расскажет разработчик Allure Reports и Allure TestOps Артем Ерошенко👀
Узнайте все об эффективной работе с инструментом у его создателя на курсе «Java Base». Поселение места на апрельский поток 👉 здесь.
Allure Reports — это open-source фреймворк, ставший стандартом для создания отчетов в индустрии QA.
Он создает визуально привлекательные, интерактивные отчеты о выполнении тестов. Поддерживает множество языков программирования и интегрируется с большинством популярных тестовых фреймворков (JUnit, TestNG, Pytest и др.) и CI/CD инструментов (Jenkins, TeamCity, GitHub Actions).
За что инженеры выбирают Allure
✅ Детализация тестов
Отображение шагов, статусов, временных меток и продолжительности выполнения.
✅ Визуализация данных
Графики, диаграммы и временные линии для наглядного анализа.
✅ Исторический анализ
Сравнение текущих результатов с предыдущими запусками.
✅ Гибкость
Возможность кастомизации отчетов под нужды проекта.
✅ Интерактивность
Группировка по категориям, историям пользователей или функциональным модулям.
А как вы визуализируете результаты тестов?
Расскажет разработчик Allure Reports и Allure TestOps Артем Ерошенко
Узнайте все об эффективной работе с инструментом у его создателя на курсе «Java Base». Поселение места на апрельский поток 👉 здесь.
Allure Reports — это open-source фреймворк, ставший стандартом для создания отчетов в индустрии QA.
Он создает визуально привлекательные, интерактивные отчеты о выполнении тестов. Поддерживает множество языков программирования и интегрируется с большинством популярных тестовых фреймворков (JUnit, TestNG, Pytest и др.) и CI/CD инструментов (Jenkins, TeamCity, GitHub Actions).
За что инженеры выбирают Allure
Отображение шагов, статусов, временных меток и продолжительности выполнения.
Графики, диаграммы и временные линии для наглядного анализа.
Сравнение текущих результатов с предыдущими запусками.
Возможность кастомизации отчетов под нужды проекта.
Группировка по категориям, историям пользователей или функциональным модулям.
А как вы визуализируете результаты тестов?
Please open Telegram to view this post
VIEW IN TELEGRAM