Breaking News 🚀
Вы могли и не знать, но я уже почти 4 года состою в программном комитете Новосибирской конфы CodeFest🙂
Помогаю делать программу, отбирать доклады и собирать эту, по моему искреннему мнению, крутейшую IT-конференцию. Сейчас идет набор спикеров. Количество заявок растёт, и чем ближе дедлайн, тем сложнее попасть в программу – конкуренция высокая. Если есть тема, которой хочется поделиться – подавайте заявку сейчас. Буду рад видеть вас на сцене, а от себя обещаю выгрузить свой опыт в вашу подготовку доклада.
🍺 И, конечно же, обещаю выпить с вами пиво на after party 🍺
CodeFest в этом году имеет #15 - юбилейный! пройдет 31 мая — 1 июня 2025 в Новосибирске. Я там обязательно буду.
Вы могли и не знать, но я уже почти 4 года состою в программном комитете Новосибирской конфы CodeFest🙂
Помогаю делать программу, отбирать доклады и собирать эту, по моему искреннему мнению, крутейшую IT-конференцию. Сейчас идет набор спикеров. Количество заявок растёт, и чем ближе дедлайн, тем сложнее попасть в программу – конкуренция высокая. Если есть тема, которой хочется поделиться – подавайте заявку сейчас. Буду рад видеть вас на сцене, а от себя обещаю выгрузить свой опыт в вашу подготовку доклада.
🍺 И, конечно же, обещаю выпить с вами пиво на after party 🍺
CodeFest в этом году имеет #15 - юбилейный! пройдет 31 мая — 1 июня 2025 в Новосибирске. Я там обязательно буду.
CodeFest 15 / 31 мая-1 июня 2025
CodeFest 15. Юбилейный!
🔥20
#Java #qaguru
Скриншотные тесты - неизбежная необходимость во многих проектах, особенно где есть всякие красивые графики и диаграммы в canvas. Проверяется это только скриншотными тестами, и если мы используем Selenide, то понадобиться еще какая-нибудь библиотека-сравнивалка.
Самая известная из них - ashot от Яндекса.
Тогда наш код может выглядеть примерно так:
где
Этот код всем неплох (и даже прекрасно прячется внутрь PageObject), но у меня к нему есть вопросы:
1) В случае падения именно этого ассерта, нам нужен совершенно специфичный формат Allure Attachment:
2) Нам надо иметь возможность перезаписать expected изображения запустив тест со специальным флагом (например, у нас новый браузер и в нем canvas выглядит слегка по другому).
3) Задачи 1 и 2 хотелось бы делать где-то под капотом, что бы наш код тестов вообще ничего не знал об этих особенностях.
Все эти пункты можно изящно решить с помощью JUnit Extensions, и это один из практических примеров, которые я рассказываю на своем авторском курсе для java автоматизаторов, который стартует буквально на следующей неделе. Наши скриншотные тесты будут простыми, а все, что сложнее ассерта - будет жить в Extension.
Приходите послушать меня и Мишу Рубанова в 54 сериях, я гарантирую, что это будет интересно 🚀
Скриншотные тесты - неизбежная необходимость во многих проектах, особенно где есть всякие красивые графики и диаграммы в canvas. Проверяется это только скриншотными тестами, и если мы используем Selenide, то понадобиться еще какая-нибудь библиотека-сравнивалка.
Самая известная из них - ashot от Яндекса.
Тогда наш код может выглядеть примерно так:
assertFalse(
new ImageDiffer().makeDiff(
expectedImage,
ImageIO.read(requireNonNull($("canvas[role='img']").screenshot()))
).hasDiff()
);
где
ImageDiffer - класс из ashot, expectedImage - ожидаемое изображение, которое у вас где-то в ресурсах, завернутое в BufferedImage.Этот код всем неплох (и даже прекрасно прячется внутрь PageObject), но у меня к нему есть вопросы:
1) В случае падения именно этого ассерта, нам нужен совершенно специфичный формат Allure Attachment:
Allure.addAttachment(
"Screenshot diff",
"application/vnd.allure.image.diff",
objectMapper.writeValueAsString(screenDif)
);
2) Нам надо иметь возможность перезаписать expected изображения запустив тест со специальным флагом (например, у нас новый браузер и в нем canvas выглядит слегка по другому).
3) Задачи 1 и 2 хотелось бы делать где-то под капотом, что бы наш код тестов вообще ничего не знал об этих особенностях.
Все эти пункты можно изящно решить с помощью JUnit Extensions, и это один из практических примеров, которые я рассказываю на своем авторском курсе для java автоматизаторов, который стартует буквально на следующей неделе. Наши скриншотные тесты будут простыми, а все, что сложнее ассерта - будет жить в Extension.
Приходите послушать меня и Мишу Рубанова в 54 сериях, я гарантирую, что это будет интересно 🚀
GitHub
GitHub - pazone/ashot: WebDriver Screenshot utility. Take screenshots, crop, prettify, compare
WebDriver Screenshot utility. Take screenshots, crop, prettify, compare - pazone/ashot
👍25❤9
Друзья, привет! Пара апдейтов о том где я, что я
- Скоро я запущу стримы по online опенсорс-контрибушену ✅
- Активно готовлю программу Codefest 15, выступлю на квартирнике по нагрузочному с Head of QA VK Мишей Шваркуновым (конечно же, ссылка туда 😁)
- Готовлю OKR QA функции в DODO на Q2, помогаю растить крутой (процессно и технически) QA-процесс в нашем втором по размеру, но не по значимости бизнесе - Drinkit ☕️;
- Вместе с ребятами же в DODO двигаем автоматизацию кучи рутины - и я не про тесты: Self-service по работе с нагрузочными тестами, автоматизация сбора тестового покрытия по PageObject-ам (ноу-хау, между прочим 🚀), автоматические карантины тестов и многое другое;
- Готовим вместе с Ирой Стяжкиной шок-контент - Android приложение niffler, и отдельный курс по всему, что с этим связано 🔥🔥🔥
- И все еще продолжаю вести самый крутой по наполнению программы (готов поставить деньги на это утверждение) курс по Java тестированию "Java Advanced 2.0"! ⬇️⬇️⬇️
Прямо завтра жду вас на открытом занятии в рамках моего авторского курса
- Познакомимся с программой курса и учебным проектом;
- Расскажу, что такое JUnit Extensions и как они помогают писать декларативные тесты;
- Вместе с вами в режиме онлайн напишем первый автотест, использующий JUnit extensions — покажу все шаги и объясню (почти) каждую деталь. Остальные детали - на курсе );
- На занятии отвечу на ваши вопросы, причем любые. Хоть про Page-Object-ы в DODO 😁
До 2 апреля на курс действует моя персональная скидка 13%. Скидка только для участников вот этого канала likeaduck.
🔗 Cкидку по этой ссылке. Актуальная до 2 апреля.
До встречи завтра в 20:00 (МСК) онлайн 🙌
- Скоро я запущу стримы по online опенсорс-контрибушену ✅
- Активно готовлю программу Codefest 15, выступлю на квартирнике по нагрузочному с Head of QA VK Мишей Шваркуновым (конечно же, ссылка туда 😁)
- Готовлю OKR QA функции в DODO на Q2, помогаю растить крутой (процессно и технически) QA-процесс в нашем втором по размеру, но не по значимости бизнесе - Drinkit ☕️;
- Вместе с ребятами же в DODO двигаем автоматизацию кучи рутины - и я не про тесты: Self-service по работе с нагрузочными тестами, автоматизация сбора тестового покрытия по PageObject-ам (ноу-хау, между прочим 🚀), автоматические карантины тестов и многое другое;
- Готовим вместе с Ирой Стяжкиной шок-контент - Android приложение niffler, и отдельный курс по всему, что с этим связано 🔥🔥🔥
- И все еще продолжаю вести самый крутой по наполнению программы (готов поставить деньги на это утверждение) курс по Java тестированию "Java Advanced 2.0"! ⬇️⬇️⬇️
Прямо завтра жду вас на открытом занятии в рамках моего авторского курса
- Познакомимся с программой курса и учебным проектом;
- Расскажу, что такое JUnit Extensions и как они помогают писать декларативные тесты;
- Вместе с вами в режиме онлайн напишем первый автотест, использующий JUnit extensions — покажу все шаги и объясню (почти) каждую деталь. Остальные детали - на курсе );
- На занятии отвечу на ваши вопросы, причем любые. Хоть про Page-Object-ы в DODO 😁
До 2 апреля на курс действует моя персональная скидка 13%. Скидка только для участников вот этого канала likeaduck.
🔗 Cкидку по этой ссылке. Актуальная до 2 апреля.
До встречи завтра в 20:00 (МСК) онлайн 🙌
Telegram
LikeaDuck🦆
Возникла идея 💡
У меня давно есть мысль: написать немного кода в Allure (переписать свой же PR по gRPC), и в Retrofit - создать SOAP Converter. Без подготовки, с нуля, с дебагом, запусками перезапусками, с юниттетстами и вот этим всем. Ниже будет опрос…
У меня давно есть мысль: написать немного кода в Allure (переписать свой же PR по gRPC), и в Retrofit - создать SOAP Converter. Без подготовки, с нуля, с дебагом, запусками перезапусками, с юниттетстами и вот этим всем. Ниже будет опрос…
🔥19❤8👍4
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, как библиотеку для в помощь при написании интеграционных тестов.
Курс помог мне переделать запуск интеграционных тестов с параллельным запуском контейнеров, у нас теперь эти тесты бегут в шесть потоков, и каждый класс запускает свой набор контейнеров независимо.
🔥25💯6🦄1
#пятничное
Вижу сообщение в рабочем мессенджере в одном из каналов, посвященных разработке нашего IOS приложения Drinkit.
Автор сообщения - наш Senior QA, Денис.
Прочитав это сообщение, я понял, что это прекрасная иллюстрация той мысли, которую я стараюсь нести в этот мир:
Лучший QA - тот, что глубоко разбирается в своем продукте (его коде, инфре и так далее). Приведу его полностью, а вас спрошу - нравятся вам такие баг-репорты? Погружаетесь ли вы так же глубоко в проблему, когда ее видите? Стремитесь ли вы к такому, если нет?
Вижу сообщение в рабочем мессенджере в одном из каналов, посвященных разработке нашего IOS приложения Drinkit.
Автор сообщения - наш Senior QA, Денис.
Прочитав это сообщение, я понял, что это прекрасная иллюстрация той мысли, которую я стараюсь нести в этот мир:
Лучший QA - тот, что глубоко разбирается в своем продукте (его коде, инфре и так далее). Приведу его полностью, а вас спрошу - нравятся вам такие баг-репорты? Погружаетесь ли вы так же глубоко в проблему, когда ее видите? Стремитесь ли вы к такому, если нет?
Я писал тест на активацию публичной акции неавторизованным пользователем через меню по кнопке "Войти и применить"
Так вот, там после авторизации происходит чехарда, которая приводит к разным последствиям:
Акция не применится и ничего плохого не произойдет и её можно будет применить (хотя должны были применить)
Акция применится, но через какое-то время произойдет краш - {link}
Он же, но с прода: {link}
Если я всё правильно понимаю, то проблема тут в
private func handleAuthorizationCompleted(with promotion: Promotion) {
if authSession.isAuthorized == false {
return
}
Task {
do {
try await self.promotionsRepository.refresh()
Task { @MainActor in
self.proceedWithPromoApplying(promotion, sender: .menu)
}
} catch {
Task { @MainActor in
self.bannerPresenter.showBanner(for: .genericError())
}
}
}
}Здесь promotionsRepository рефрешится асинхронно, поэтому таска следующая за ним может выполнится как до, так и после применения акции. И видимо можно поймать момент, когда мы применим акцию, но потом зарефрешим репозиторий и что-то ломается. Ну или не такая последовательность, но в любом случае, как-будто здесь есть место гонке, которая может всё сломать
👍25🔥16👏3🐳3
Мой друг и бывший коллега, Владимир Быков, UI/UX эксперт и, при этом, любитель попрограммировать, сделал крутую вещь.
Я про IOS приложение Weather - how you feel
Это просто красиво, на мой взгляд, в этом маленьком приложении есть тот самый уже подзабытый "вау".
А ещё, вы можете прочитать подробный рассказ от самого Владимира об истории его создания на medium.
Давайте поможем моему другу с багрепортами?😁
Я про IOS приложение Weather - how you feel
Это просто красиво, на мой взгляд, в этом маленьком приложении есть тот самый уже подзабытый "вау".
А ещё, вы можете прочитать подробный рассказ от самого Владимира об истории его создания на medium.
Давайте поможем моему другу с багрепортами?😁
Telegram
Are you really a designer?
I am! Here I write about design, development, my own projects and the world around me.
milsinery.com
milsinery.com
🤩6🔥4💔4
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) 🔴Почему? Читай далее, а пока накидывай варианты ⬇️
👍6❤3🔥2😁2
Друзья, месяц тишины в этом чате - антирекорд, все дело в том, что на меня свалилось столько всего, что канал оказался в конце приоритетов.
Историю о борьбе с Selenoid и анимациями я обязательно допишу, а сейчас пара анонсов:
1) Через неделю с небольшим я буду с докладом в Новосибирске. Про мобильный автотесты - тема для меня новая, но в ДОДО у нас на них большой фокус, приходите 🚀
2) Там же буду на квартирнике с QA Head-ом ВК Мишей Шваркуновым о нагрузочном тестировании - тоже есть, о чем поговорить 🥲 А еще будет доклад от нашего лида нагрузки - будет интересно🍺
3) Вышла книга Егора Бугаенко Angry Tests - а я - в числе ее ревьюеров! Книга огонь, напишу разбор ❤️🔥
4) Android приложение Niffler уже существует в 2-х вариантах - full native и webview. Про это тоже будет доклад от прекрасной Ирины из OZON Bank на той же конфе. С ней мы и планируем делать много материалов по этой теме 🔥
Stay tuned!
Историю о борьбе с Selenoid и анимациями я обязательно допишу, а сейчас пара анонсов:
1) Через неделю с небольшим я буду с докладом в Новосибирске. Про мобильный автотесты - тема для меня новая, но в ДОДО у нас на них большой фокус, приходите 🚀
2) Там же буду на квартирнике с QA Head-ом ВК Мишей Шваркуновым о нагрузочном тестировании - тоже есть, о чем поговорить 🥲 А еще будет доклад от нашего лида нагрузки - будет интересно🍺
3) Вышла книга Егора Бугаенко Angry Tests - а я - в числе ее ревьюеров! Книга огонь, напишу разбор ❤️🔥
4) Android приложение Niffler уже существует в 2-х вариантах - full native и webview. Про это тоже будет доклад от прекрасной Ирины из OZON Bank на той же конфе. С ней мы и планируем делать много материалов по этой теме 🔥
Stay tuned!
CodeFest 16 / 30 - 31 мая 2026
CodeFest 16. Общение бесценно!
🔥36👍1
Еще мои друзья из JUG.RU заполняют TechRadar. Это исследование, которое поможет визуализировать текущее состояние технологического ландшафта в области тестирования в России. Заполнить легко, а призы приятные, поэтому, предлагаю подписчикам поучаствовать в этом 🙌
❤8👍4
На выходных завершился Codefest #15, я как ПК старался сделать классную программу, как спикер - рассказать доклад с парой интересных решений, как QA Head dodo - поддержать первый доклад нашего Performance Лида, как человек - провести бесценное время в компании близких людей.
Две фразы запомнились - "Ну а на какой ещё доклад в QA секции идти" и "А, додо, это где Дима Тучс?".
А сегодня у меня День Рождения🍻, можно накидать Каналу лайков в качестве подарка.
Две фразы запомнились - "Ну а на какой ещё доклад в QA секции идти" и "А, додо, это где Дима Тучс?".
А сегодня у меня День Рождения🍻, можно накидать Каналу лайков в качестве подарка.
❤131🔥37🎉35👍2🥰2
А к слову о подарке, который совершенно free для premium подписчиков - буст этого канала, что позволит мне сделать что-то, например писать больше текста к постам с фотками😀
Telegram
LikeaDuck🦆
Проголосуйте за канал, чтобы он получил больше возможностей.
👍22
#обучение #qaguru
Промокод, традиционно, будет внизу поста ⬇️
Привет! Если вы еще не видели мой авторский курс по автоматизации Java Advanced, то можно заглянуть на огонек: открытый вебинар, который я проведу в понедельник:
«Разработка автотеста с JUnit Extension: первый шаг за пределы рутинного тестирования».
Как обычно, вебинар будет на платформе школы @qa_guru в 20:00 по МСК 16 июня (как раз после долгих выходных)
🔗 Регистрация по ссылке — участие бесплатное, но по регистрации.
Что будет:
- Я познакомлю вас с учебным проектом Niffler, он же - мой основной пет-проект для обучения студентов. Посмотреть историю моих коммитов туда можно в гитхабе: https://github.com/qa-guru/niffler
- Вместе напишем JUnit Extension, который создаёт тестовые данные через API.
- Соберём основу E2E-проекта: конфигурации, page objects, API-клиенты, DTO и другие элементы архитектуры за буквально 30-40 минут.
Если вы уже пишете автотесты на Java и хотите большего - подключайтесь. Буду делиться своим практическим опытом и подходами, которые мы применяем в продакшене.
Собственно, вебинар приурочен к старту 16 июня нового потока курса «Java Advanced 2.0».
Это программа для тех, кто хочет глубже разбираться в архитектуре автотестов, собирать масштабируемые проекты и уверенно двигаться в сторону Senior и далее.
От меня - личная скидка 5% по кодовому слову JUNIT5. Просто напишите об этом менеджеру @qa_guru_sales4
Буду рад видеть вас и на вебинаре, и на курсе🦆
Промокод, традиционно, будет внизу поста ⬇️
Привет! Если вы еще не видели мой авторский курс по автоматизации Java Advanced, то можно заглянуть на огонек: открытый вебинар, который я проведу в понедельник:
«Разработка автотеста с JUnit Extension: первый шаг за пределы рутинного тестирования».
Как обычно, вебинар будет на платформе школы @qa_guru в 20:00 по МСК 16 июня (как раз после долгих выходных)
🔗 Регистрация по ссылке — участие бесплатное, но по регистрации.
Что будет:
- Я познакомлю вас с учебным проектом Niffler, он же - мой основной пет-проект для обучения студентов. Посмотреть историю моих коммитов туда можно в гитхабе: https://github.com/qa-guru/niffler
- Вместе напишем JUnit Extension, который создаёт тестовые данные через API.
- Соберём основу E2E-проекта: конфигурации, page objects, API-клиенты, DTO и другие элементы архитектуры за буквально 30-40 минут.
Если вы уже пишете автотесты на Java и хотите большего - подключайтесь. Буду делиться своим практическим опытом и подходами, которые мы применяем в продакшене.
Собственно, вебинар приурочен к старту 16 июня нового потока курса «Java Advanced 2.0».
Это программа для тех, кто хочет глубже разбираться в архитектуре автотестов, собирать масштабируемые проекты и уверенно двигаться в сторону Senior и далее.
От меня - личная скидка 5% по кодовому слову JUNIT5. Просто напишите об этом менеджеру @qa_guru_sales4
Буду рад видеть вас и на вебинаре, и на курсе🦆
qa.guru
Скиллсет на Java: как создавать проекты Advanced+ уровня
Зарегистрируйтесь, чтобы принять участие в бесплатном вебинаре. Ждем вас в четверг, 4 декабря, в 20:00 (МСК).
❤9👍7
Всем привет! Мои друзья из очень классной омской конференция ДевФест (https://www.devfest.ru/) ищут QA таланты на сцену🤗
Если вы давно хотели выступить, то это отличный шанс 🚀
До 16 июля у ребят открыта форма Call for papers по четырем направлениям:
- QA
- Веб-разработка
- Go
- Python
Ссылка, чтобы подать заявку тут - https://forms.yandex.ru/cloud/67a196a1d046881d47b52c75/ - а я тоже там буду, как минимум, для пообщаться
Если вы давно хотели выступить, то это отличный шанс 🚀
До 16 июля у ребят открыта форма Call for papers по четырем направлениям:
- QA
- Веб-разработка
- Go
- Python
Ссылка, чтобы подать заявку тут - https://forms.yandex.ru/cloud/67a196a1d046881d47b52c75/ - а я тоже там буду, как минимум, для пообщаться
devfest.ru
Девфест 2026
Конференция для настоящих и будущих программистов
❤4🔥4🎉1