#job #вакансия #додо
И еще одна вакансия 🥲. Сегодня это - Mobile QA. Это линейная вакансия в команду внутри того самого юнита, о котором я писал в предыдущем посте ⬆️. Стэк тот же, есть ручная работа, и автоматизаторство очень, очень приветствуется. Без него, если честно, не получится, т.к. команда будет непосредственно участвовать в полной переделке приложения Dodo Pizza, и наши сотни тестов неизбежно начнут быть неактуальными. Но мы рассматриваем тех, кто уже писал какой-то код на каком-то ЯП, а не строго имеет опыт с Kotlin/Swift. Этому, если что, научим.
И еще одна вакансия 🥲. Сегодня это - Mobile QA. Это линейная вакансия в команду внутри того самого юнита, о котором я писал в предыдущем посте ⬆️. Стэк тот же, есть ручная работа, и автоматизаторство очень, очень приветствуется. Без него, если честно, не получится, т.к. команда будет непосредственно участвовать в полной переделке приложения Dodo Pizza, и наши сотни тестов неизбежно начнут быть неактуальными. Но мы рассматриваем тех, кто уже писал какой-то код на каком-то ЯП, а не строго имеет опыт с Kotlin/Swift. Этому, если что, научим.
👍11❤2
Я вчера заболел, температура, слабость, вот это все🙄 Пара человек ждут моего ответа по вакансиям, но я вчера был тотально оффлайн и сегодня, скорее всего, не смогу ещё ни с кем созвониться - буду лежать. Но я обо всех помню🙂
А что бы пост не был бесполезен, предлагаю устроить сессию вопрос ответ в комментариях - готов ответить на любые вопросы о работе в Dodo Engineering (ну, кроме "сколько ты получаешь"🥲). Спрашивайте, буду в течение дня отвечать
А что бы пост не был бесполезен, предлагаю устроить сессию вопрос ответ в комментариях - готов ответить на любые вопросы о работе в Dodo Engineering (ну, кроме "сколько ты получаешь"🥲). Спрашивайте, буду в течение дня отвечать
💊37🔥3❤2
Ну и немного хороших новостей в этот невеселый день - опубликована первая часть моего воркшопа The art of JUnit extensions. А на ближайшем HB должна быть и вторая🚀
❤5👍1
Forwarded from Heisenbug — канал конференции
#видеозаписи
Когда Дмитрий Тучс рассказывал о работе с расширениями JUnit 5, код в кадре появился уже на третьей минуте.
В рубрике #ТестоваяСреда публикуем это выступление, где максимум практики и конкретики.
Когда Дмитрий Тучс рассказывал о работе с расширениями JUnit 5, код в кадре появился уже на третьей минуте.
В рубрике #ТестоваяСреда публикуем это выступление, где максимум практики и конкретики.
🔥30❤6👍1
Что вы думаете о небольшом лайфкодинге на собеседовании QA Automation? Допустимо ли не вспомнить, как пишется цикл
for (int i = 0..) "из-за нервов", когда ты Senior вот с этим вот языком программирования в резюме? Предлагаю подискутировать, хочется услышать мнения и тех кто против лайфкодинга, и тех, кто за👍4
И второй внезапный вопрос - а много у меня читателей из Алматы? Хочется сделать какой-то небольшой уютный offline полумитап, полупивапопить, пообсуждать QA, тесты, о Додо могу порассказывать, да на вопросы поотвечать. Пишите в комменты, если бы пришли на такое мероприятие 🙌
🔥11🤩1
#Management #Собеседование
Я думаю, что желание работать друг с другом должно быть обоюдовзаимным. Поэтому и собеседование не должно быть допросом или экзаменом, а должно выстраиваться "мы продаем себя, вы - себя". Исходя из этого, хорошим собеседованием я считаю то, где мы (я и тот, кто пришел ко мне на интервью) говорим примерно поровну, и к концу оба понимаем, что нам по пути.
Но вот на одном из собеседований я рассказываю про нас, какие у нас цели, какие рынки приоритетные, какие вызовы перед айтишечкой, чем они обусловлены... А мой визави в это время просто... продолжает работать. Это всегда видно со стороны, когда человек тебя слушает, или занят своими делами, не так ли?
Обидно как-то стало, да и грустно.
Рынок действительно таков, что у каждого соискателя паровозик собеседований, конвейер. Типа, "ну вот получу N офферов и выберу". А я бы хотел работать с теми, кто бы хотел работать со мной. Кто хотя бы меня слушает 🙂. Возможно, это наглость с моей стороны, как вы считаете?
Я думаю, что желание работать друг с другом должно быть обоюдовзаимным. Поэтому и собеседование не должно быть допросом или экзаменом, а должно выстраиваться "мы продаем себя, вы - себя". Исходя из этого, хорошим собеседованием я считаю то, где мы (я и тот, кто пришел ко мне на интервью) говорим примерно поровну, и к концу оба понимаем, что нам по пути.
Но вот на одном из собеседований я рассказываю про нас, какие у нас цели, какие рынки приоритетные, какие вызовы перед айтишечкой, чем они обусловлены... А мой визави в это время просто... продолжает работать. Это всегда видно со стороны, когда человек тебя слушает, или занят своими делами, не так ли?
Обидно как-то стало, да и грустно.
Рынок действительно таков, что у каждого соискателя паровозик собеседований, конвейер. Типа, "ну вот получу N офферов и выберу". А я бы хотел работать с теми, кто бы хотел работать со мной. Кто хотя бы меня слушает 🙂. Возможно, это наглость с моей стороны, как вы считаете?
❤37👍9💯7🔥2
#java #opensource
Сегодня я решил переписать allure-grpc.
Это маленькая библиотечка за моим авторством, которая создаёт красивый отчетик для gRPC тестов.
Но она изначально, как говорится, by design, не заточена под bidirectional streaming и на client-streaming - тоже. Стоит признать, что и в реальных проектах это самые редко используемые виды стриминга в gRPC. Она не то что бы совсем с ними не работает, но, если клиент отправляет несколько message, то в отчёте будет несколько steps - для каждого message. Не-кра-си-во.
Пришло время сделать так, чтоб работала одинаково хорошо с любым видом gRPC. Ну и заодно смахнуть пыль с ачивки open source контрибьютора😁
А вы создаете pullrequest-ы в opensource? Делитесь своим опытом🤟
Сегодня я решил переписать allure-grpc.
Это маленькая библиотечка за моим авторством, которая создаёт красивый отчетик для gRPC тестов.
Но она изначально, как говорится, by design, не заточена под bidirectional streaming и на client-streaming - тоже. Стоит признать, что и в реальных проектах это самые редко используемые виды стриминга в gRPC. Она не то что бы совсем с ними не работает, но, если клиент отправляет несколько message, то в отчёте будет несколько steps - для каждого message. Не-кра-си-во.
Пришло время сделать так, чтоб работала одинаково хорошо с любым видом gRPC. Ну и заодно смахнуть пыль с ачивки open source контрибьютора😁
А вы создаете pullrequest-ы в opensource? Делитесь своим опытом🤟
GitHub
allure-java/allure-grpc at main · allure-framework/allure-java
Allure integrations for Java test frameworks. Contribute to allure-framework/allure-java development by creating an account on GitHub.
🔥37
#java #opensource
Если вам интересно, что же получилось с Allure-grpc, а там есть, на что посмотреть (потоки, CountDownLatch-и вот это вот все 🥲 А еще unit-тесты!), то, короче говоря, вот PR. Я надеюсь, что это будет полезно всем QA, кто тестирует streaming gRPC.
Это же так радостно, когда есть проблема, и есть библиотека, которая ее решает, не правда ли?
Если вам интересно, что же получилось с Allure-grpc, а там есть, на что посмотреть (потоки, CountDownLatch-и вот это вот все 🥲 А еще unit-тесты!), то, короче говоря, вот PR. Я надеюсь, что это будет полезно всем QA, кто тестирует streaming gRPC.
Это же так радостно, когда есть проблема, и есть библиотека, которая ее решает, не правда ли?
GitHub
Improve AllureGrpc integartion for support non-blocking (streaming) stubs by dtuchs · Pull Request #1015 · allure-framework/allure…
Context
In gRPC, client streaming and bidirectional streaming require to use a non-blocking (async) Stubs. These stubs uses different threads for handling sendMessage(T message) and onClose(status,...
In gRPC, client streaming and bidirectional streaming require to use a non-blocking (async) Stubs. These stubs uses different threads for handling sendMessage(T message) and onClose(status,...
👍9❤5🔥2🏆2
Любопытный факт к 8 Марта:
в Dodo Engineering больше всего девушек именно в QA. А меньше всего - внезапно - среди frontend разработчиков - ноль🥺. Получается, мне очень повезло - работать со многими прекрасными девушками бок о бок ❤️ А еще учить многих прекрасных девушек в QA.GURU❤️ С праздником вас🌹
UPDATE: Походу, забыл про дизайнеров, пальма первенства утеряна 🙂
в Dodo Engineering больше всего девушек именно в QA. А меньше всего - внезапно - среди frontend разработчиков - ноль🥺. Получается, мне очень повезло - работать со многими прекрасными девушками бок о бок ❤️ А еще учить многих прекрасных девушек в QA.GURU❤️ С праздником вас
UPDATE: Походу, забыл про дизайнеров, пальма первенства утеряна 🙂
Please open Telegram to view this post
VIEW IN TELEGRAM
❤56🥰10😁4🤔2
Тихо и почти буднично мы вчера поставили рекорды по выручке и числу заказов в минуту.
Рекорд заказов в минуту - 735
Это Dodo Pizza России. Dodo Brands Worldwide: 835 в минуту (Здесь, кстати, на конкретном соотношении цифр видно, как важна наша цель стать пиццерией #1 в Турции и Дубае, масштабировать бизнес на зарубежных рынках).
Выручка в России за 1 день 534 млн рублей🔥В Евразии - 776 млн рублей📈
Трудно переоценить роль QA функции в том, что рекордный по нагрузке день прошел без сучка и задоринки в техническом плане💻
Рекорд заказов в минуту - 735
Это Dodo Pizza России. Dodo Brands Worldwide: 835 в минуту (Здесь, кстати, на конкретном соотношении цифр видно, как важна наша цель стать пиццерией #1 в Турции и Дубае, масштабировать бизнес на зарубежных рынках).
Выручка в России за 1 день 534 млн рублей🔥В Евразии - 776 млн рублей
Трудно переоценить роль QA функции в том, что рекордный по нагрузке день прошел без сучка и задоринки в техническом плане
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26🔥20❤7🍾6
#java #frameworks
Selenide - крутой.
Я думаю, что большинство из вас в этом и так не сильно сомневается (список пользователей говорит сам за себя), но вот пару дней назад произошло маленькое событие, которое могло бы вообще пройти незамеченным для меня, но не прошло: я обновил в одном из своих проектов Selenide c 6.х до последней версии 7.2.1. И у меня перестал компилироваться код🙂 Казалось бы, первая мысль поругаться, но я, наоборот, пишу пост похвалы.
А дело все в том, что разработчики Selenide радикально упростили жизнь всем, кто писал или планирует написать свои кастомные CollectionCondition. Если раньше надо было переопределять 3 метода:
Причем, что делает второй и для чего он нужен технически я даже не понимал и просто писал
А еще, надо было писать свои классы исключений:
А теперь все стало радикально просто, надо переопределить один метод :
Назначение и сигнатура которого понятны даже если вообще в первый раз слышать про
Респект всем библиотекам и фреймворкам, которые упрощают свои API и делают их чистыми для понимания и написания кода. Selenide с каждым релизом, обрастая все новым функционалом, становится проще для понимания и расширения. И это хорошо.
Selenide - крутой.
Selenide - крутой.
Я думаю, что большинство из вас в этом и так не сильно сомневается (список пользователей говорит сам за себя), но вот пару дней назад произошло маленькое событие, которое могло бы вообще пройти незамеченным для меня, но не прошло: я обновил в одном из своих проектов Selenide c 6.х до последней версии 7.2.1. И у меня перестал компилироваться код🙂 Казалось бы, первая мысль поругаться, но я, наоборот, пишу пост похвалы.
А дело все в том, что разработчики Selenide радикально упростили жизнь всем, кто писал или планирует написать свои кастомные CollectionCondition. Если раньше надо было переопределять 3 метода:
@Override
public void fail(CollectionSource collection, List<WebElement> elements, Exception lastError, long timeoutMs)
@Override
public boolean missingElementSatisfiesCondition()
@Override
public boolean test(List<WebElement> elements)
Причем, что делает второй и для чего он нужен технически я даже не понимал и просто писал
return false;🥲А еще, надо было писать свои классы исключений:
public class SpendsMismatch extends UIAssertionError А теперь все стало радикально просто, надо переопределить один метод :
@Override
public CheckResult check(Driver driver, List<WebElement> elements)
Назначение и сигнатура которого понятны даже если вообще в первый раз слышать про
CollectionCondition.Респект всем библиотекам и фреймворкам, которые упрощают свои API и делают их чистыми для понимания и написания кода. Selenide с каждым релизом, обрастая все новым функционалом, становится проще для понимания и расширения. И это хорошо.
Selenide - крутой.
selenide.org
Selenide users
🔥44🥰8👍1
The art of JUnit extensions 2 - быть!
Есть ощущение, что я делаю важную вещь для кого-то, кто только начинает свой путь в AQA.
Кажется, что после просмотра обеих частей хотя бы кто-то решит построить свой "фреймворк" (тьфу три раза) на красивых экстеншенах, а не на портянке статических методов и классов на 500 строк.
А я буду этому рад.
Есть ощущение, что я делаю важную вещь для кого-то, кто только начинает свой путь в AQA.
Кажется, что после просмотра обеих частей хотя бы кто-то решит построить свой "фреймворк" (тьфу три раза) на красивых экстеншенах, а не на портянке статических методов и классов на 500 строк.
А я буду этому рад.
Heisenbug 2024 Spring. Конференция по тестированию не только для тестировщиков
The art of JUnit extensions 2 | Доклад на Heisenbug 2024 Spring
Продолжение воркшопа The art of JUnit extensions с Heisenbug 2023 Autumn.
🔥53👍13❤11
Media is too big
VIEW IN TELEGRAM
Об одной из главных проблем автоматизации тестирования с одной из моих лекций QA.GURU Advanced.
👍30💯10❤5🔥1🤩1😎1
Еще из приколов моего любимого Gradle: Кто сходу увидит здесь ошибку? Я пропустил двоеточие в одной из зависимостей, и на мой взгляд - это делает "адрес" зависимости невалидным, и было бы здорово, если бы Gradle сказал мне "could not resolve dependencies, bro". Но Gradle совершенно ничего не говорит в таком случае по нажатию кнопки "Reload gradle project" (та самая "обновить"). И я сижу и не понимаю - ну почему у меня не импортируются классы из этой библиотеки? Сижу смотрю граф зависимостей, действительно не нахожу там нужную мне
spring-data-commons и недоумеваю. Я пошел дальше и написал testImplementation "org.springframework.data:spring-data-commonsываывавыdsfvsfd:${springDataCommonsVersion}" и даже тут не увидел ошибки. Хотя может быть во всем виновата IDEA со своей кнопкой, а Gradle не при чем. Но кто-то точно не прав 🙂😁13👍7🤔4
Скоро я выступаю на конференции Heisenbug 2024 Spring с очередным воркшопом про JUnit Extensions, который будет продолжением первой части. Буду рассказывать, внезапно, про JUnit)) А если серьезно, я надеюсь что получившийся проект пригодится очень многим новичкам в Java AQA для построения действительно изящной тестовой инфры. Будет интересно!
Приходите на конфу, там найдется много интересного помимо меня😀
Конференция пройдет 16.04 и 22-23.04 сначала в online, а потом и в offline формате.
Думаю, многим из вас билет оплатит компания. Но, если не срастется, а послушать доклады и задать вопросы все равно хочется, приходите в личку — постараюсь помочь со скидкой на билет. Не только лишь постараюсь, но и помогу😂
Приходите на конфу, там найдется много интересного помимо меня😀
Конференция пройдет 16.04 и 22-23.04 сначала в online, а потом и в offline формате.
Думаю, многим из вас билет оплатит компания. Но, если не срастется, а послушать доклады и задать вопросы все равно хочется, приходите в личку — постараюсь помочь со скидкой на билет. Не только лишь постараюсь, но и помогу😂
YouTube
Дмитрий Тучс — The art of JUnit extensions
Ближайшая конференция — Heisenbug 2025 Autumn, 19—20 октября, Санкт-Петербург + online. Подробности и билеты: https://jrg.su/D6uGC9
— —
В режиме онлайн берем микросервисный проект (Spring Authorization Server, Spring OAuth 2.0 Resource Server) и строим полноценную…
— —
В режиме онлайн берем микросервисный проект (Spring Authorization Server, Spring OAuth 2.0 Resource Server) и строим полноценную…
🔥27❤13👍4❤🔥3
Сегодня иду записывать подкаст на тему ... а сложно сказать, на какую тему🙂. Поговорим о QA, безо всяких JUnit-ов и прочих автоматизаций. Кстати, это уже не первый мой опыт с подкастом, ранее был чуть более хардкорный и технический - Тесты и Пицца от Ufostation. Лайк, шер, предложения тем для будущих подкастов в комменты🙌
Podcast.ru
s02e05 - Тесты и пицца 🍕 – UfoStation podcast – Podcast.ru
Гость выпуска — Дмитрий Тучс (https://t.iss.one/dtuchs), Head of QA at Dodo Engineering; один из преподавателей в https://qa.guru
🔥34❤11😍4👍2
The art of JUnit Extension 2 сегодня состоялся! Спасибо всем, кто смотрел вживую, а код, который мы сегодня писали, будет завтра в репо
И да, мы, наконец, полностью решили проблему параметризации тестов с разными allureId с помощью Extension, будет что разобрать в свои проекты 💯
И да, мы, наконец, полностью решили проблему параметризации тестов с разными allureId с помощью Extension, будет что разобрать в свои проекты 💯
Heisenbug 2024 Spring. Conference on testing not just for testers
The art of JUnit Extensions 2 | Talk at Heisenbug 2024 Spring
Continuation of The art of JUnit extensions workshop from Heisenbug 2023 Autumn.
🔥30❤8👍2