Геннадий Чурсов | QA++
4.26K subscribers
211 photos
1 video
1 file
155 links
Канал про тестирование и другие активности тестировщиков

В случае вопросов пишите: @topsycreed

Донаты: https://t.iss.one/chursovQA/322
Download Telegram
Замечали как ваши друзья и коллеги постоянно используют иностранные слова в своей речи, даже не задумываясь об этом? В итоге часто получается такой же диалог как знаменитый мем: Смотря, какой fabric, смотря, сколько details

Вот несколько фраз, которые я подметил за собой за последнее время:
1. Я закомитился за результат.
2. Чекни плиз этот баг.
3. Я пошарю экран.
4. Можем сделать апойнтмент на завтра?
5. Я забукаю отель.
6. Будет вообще дизастер.

Если вы говорите the same, и вам интересно study английский язык, то рекомендую вам подписаться на канал Across English for IT People и прокачать свой английский very well.

#партнерскийпост
👍9
ГАЙД_успешное_резюме,_собеседование_и_поиск_работы_protestinginfo.pdf
2 MB
Сделала супер полезный гайд по составлению резюме, подготовке на собеседование, поиску работы с рекомендациями от себя и коллег. Указала все мной собранные полезные ссылки в одном месте! Уверена, что он должен вам помочь в достижении вашей цели.
👍13
Думаю, будет полезно. Советую записаться! Тоже планирую в записи посмотреть
👍5
🦸‍♂️ На нашем открытом уроке “Запускаем автостесты и Allure отчеты в Gitlab-CI” не хватает только вас!

26 июля в 20:00 по МСК вместе с Александром Котляром, QA Lead, вы научитесь легко запускать автотесты на разных системах и управлять этим процессом из консоли, разберетесь в крутых фичах CI в GitLab и узнаете все лайфхаки по написанию скриптов и использованию Docker в CI. А еще – мы научим вас автоматизировать процессы с помощью триггеров и подключать красивые Allure-отчеты на GitLab Pages.

👉 Регистрация тут: ссылка

🎁 Специальный бонус для участников: приятная цена со скидкой на предстоящий курс!

Ссылка на занятие появится в чате 26 июля в 19:50 МСК.

Не пропустите!
4🔥1
Наконец-то это свершилось, у QA Guru вышел курс по автоматизации на JS. А то знаю тех кто этого долго ждал, а тут еще и скидки
🔥6
🚀 Летняя новинка: крутые технологии JavaScript + Playwright по супер цене!

Готовы погрузиться в мир автоматизированного тестирования с использованием современного стека технологий? Мы запускаем новый курс “Автоматизация тестирования на JavaScript + Playwright”, который изменит ваш подход к QA и научит создавать надежные автоматизированные тесты для веб и мобильных приложений!

💡 Программа курса включает:
Современные технологии и мобильную автоматизацию: JavaScript, Playwright, Appium, REST, SQL.
• Инфраструктуру и CI/CD: Git/Github/GitLab, Docker/Docker-compose, Jenkins, Selenoid, Browserstack, Allure TestOps.

🔥 Чему вы научитесь?
• Освоите JavaScript и Playwright: научитесь писать код для автоматизированного тестирования веб и мобильных приложений, а также API.
• Познакомитесь с лучшими практиками QA: будете управлять процессами авто-тестирования согласно лучшим практикам в этой сфере.
Построите инфраструктуру: станете с инфраструктурой на “ты”, научитесь её строить и поддерживать.

🎓 Что нужно, чтобы обучаться на курсе?
• Операционная система: Windows, Mac, Linux.
• 8 ГБ ОЗУ, процессор i3 2,8 GHz или лучше.
• Минимум 8 свободных часов в неделю.

🎭 А Javascript/Playwright нужно знать?

Не нужно! На курсе вас ожидают более 20 онлайн-видео занятий и 35 часов лайв кодинга, после которых вы с легкостью напишете дипломный проект!

⌛️ Продолжительность: 3 месяца.

📅 Вводное занятие: 22 августа в 20:00 по МСК.

🔥 До 1 августа включительно на все тарифы курса действует скидка 20%.
➡️ Купить курс со скидкой

💳 На все тарифы курса действует рассрочка на 3/4/6/10 месяцев.

Успейте стать той самой early bird и купить курс по супер-цене!

#JavaScript
#Playwright
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3
💬 Вопрос от QA сообщества:
Может кто-то поделиться своим опытом по рефакторингу тестового фреймворка с использованием шаблонов проектирования или по миграции с одного тестового фреймворка на другой? Как сделать это менее болезненно?


🛠 Кейс: рефакторинг существующего фреймворка

1. Создать POC (proof of concept)
🔹 Проверьте, что изменение работает
🔹 Определите, сколько времени уходит на исправление одного теста/класса/метода

2. Анализ POC
🔹 Оцените необходимость и объем изменений
🔹 Соберите статистику, факты и примеры для согласования изменений с командой, менеджментом, клиентом

3. Разбивка изменений
🔹 Если изменения большие, разбейте их на мелкие подзадачи
🔹 Вносите изменения постепенно

Пример: Переход с TestNG на AssertJ, используя SoftAssertions:
🔸 Покрыт один класс автотестами в рамках POC
🔸 Написана инструкция по использованию AssertJ
🔸 Проведено демо, команда согласилась использовать AssertJ
🔸 Договоренность переписывать автотесты на AssertJ при внесении изменений в тесты или при недостатке данных в отчетах

4. Внесение небольших изменений
🔹 Внесите сразу в рамках одной задачи, чтобы было легко отменить при необходимости

5. Обратная совместимость
🔹 Используйте feature flag для возможности включать/выключать новую фичу
🔹 Откатитесь на предыдущий функционал при необходимости

Пример: Добавление предварительной генерации тестовых данных:
🔸 Создайте переменную isTestDataGenerationEnabled со значением false по умолчанию
🔸 Запустите тесты с false, затем с true и сравните результаты
🔸 При появлении новых падений, связанных с новой функциональностью, верните флаг на false и исправьте фреймворк
🔸 После успешного покрытия всех кейсов, установите флаг на true по умолчанию или уберите его

🏗 Кейс: использование шаблонов проектирования

1. Определение проблемы
🔹 Определите, какие части вашего фреймворка требуют улучшения
🔹 Решите, какой шаблон проектирования подойдет для решения проблемы (например, Factory, Singleton, Strategy)

2. Создание POC
🔹 Реализуйте небольшой пример с использованием выбранного шаблона
🔹 Убедитесь, что новый подход решает проблему и не нарушает существующую функциональность

3. Внедрение шаблона
🔹 Постепенно рефакторьте существующий код, используя новый шаблон
🔹 Обучите команду работе с новым шаблоном, предоставив инструкции и примеры

Пример: Использование шаблона Factory для создания объектов тестовых данных:
🔸 Создайте фабрику, которая будет отвечать за создание и настройку объектов
🔸 Проведите демо для команды, объяснив преимущества и особенности нового подхода
🔸 Постепенно заменяйте старый способ создания объектов на новый, используя фабрику

📅 В следующий раз я напишу про переход с одного фреймворка на другой на примере своего опыта.
👍4🔥4👏1
🔧 Дополнение к предыдущему посту про feature-flag

Понятие "feature flag" (или "feature toggle") используется в разработке программного обеспечения и может применяться в различных контекстах, включая тестовые фреймворки. Feature flag — это техника, которая позволяет включать или отключать функции приложения без необходимости изменения кода и перезапуска приложения, то есть в runtime.

📈 В контексте тестирования и тестовых фреймворков feature flags могут быть полезны для:

1️⃣ Инкрементального развертывания
Постепенное введение новых тестов или изменений в тестовых фреймворках, чтобы проверить их влияние и убедиться в их стабильности перед полным развертыванием.

2️⃣ А/Б тестирования
Включение или отключение определенных функций тестового фреймворка для разных групп тестов или тестируемых компонентов для оценки их влияния на качество и стабильность.

3️⃣ Обратной совместимости
Позволяет разработчикам и тестировщикам легко откатить изменения, если они вызывают проблемы, что особенно важно при внесении значительных изменений в тестовый фреймворк.

💡 Пример использования FeatureFlag в виде системной переменной на Java проекте с использованием библиотеки Owner (также можно использовать property файлы):

import org.aeonbits.owner.Config;
import org.aeonbits.owner.ConfigFactory;

public class FeatureToggleExample {

public interface FeatureConfig extends Config {
@Key("feature.test.data.generation.enabled")
@DefaultValue("false")
boolean isTestDataGenerationEnabled();
}

public static void main(String[] args) {
FeatureConfig config = ConfigFactory.create(FeatureConfig.class);

if (config.isTestDataGenerationEnabled()) {
System.out.println("Test data generation is enabled.");
// Код для генерации тестовых данных
} else {
System.out.println("Test data generation is disabled.");
// Обычный код без генерации тестовых данных
}
}
}

🔹 Шаг 1: Добавьте библиотеку Owner в ваш проект.

<dependency>
<groupId>org.aeonbits.owner</groupId>
<artifactId>owner</artifactId>
<version>1.0.12</version>
</dependency>

🔹 Шаг 2: Настройте системную переменную.
Запустите автотесты с системной переменной
-Dfeature.test.data.generation.enabled=true

Чтобы включить фичу, или без нее, чтобы оставить фичу выключенной.

📝 Итог:
Feature flags позволяют гибко управлять функциями вашего приложения или тестового фреймворка, снижая риски и упрощая процесс развертывания новых функций.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥2
Миграция с одного тестового фреймворка на другой

📌 Кейс 1: Выбор фреймворка

1. Собрать текущие боли и плюсы/минусы текущего фреймворка, если он есть и объем работы
2. Найти фреймворки на рынке 🔍
3. Составить таблицу сравнения по ключевым показателям всего множества фреймворков 📊
🔸 Ключевым может быть, например, что у вас уже есть множество инженеров на Java, вы тестируете в основном UI, вам нужна возможность автоматизации мобилок, и какое-то новомодное решение с AI, чтобы можно было продать фичу руководству.
4. Определите финалистов для детального сравнения 🏁
🔸 Финалистов можно установить, попробовать на практике, запросить trial, демо от создателей и т.д.
5. Составьте итоговый отчет с цифрами: стоимостью (покупки, внедрения, использования, поддержки тестов и т.д.), рисками (что если фреймворк не взлетит, инженеры не обучатся, повысится стоимость и т.д.). 📑
6. Получите разрешение на использование, согласуйте план работ и внедряйте

🔗 Пример: сравнение Playwright vs Cypress -> см. ссылку на Google Sheet таблицу.

Мой личный кейс:
Мне нужно было сравнить обычные фреймворки с no-code/low-code решениями. В рамках discovery-фазы я составлял таблицы сравнений, а когда мы определились с финалистами, попробовал реализовать наши основные тестовые сценарии на двух фреймворках: Playwright и Functionize. Менеджмент даже уговорил разработчиков Functionize провести демо и тренинги, а также исправить возникающие дефекты.
История закончилась трагично: мне Functionize не понравился, но менеджмент все равно купил его и начал внедрение 🥲. В итоге, из-за этого инструмента я решил уйти с проекта.
🔥4👍2
🚀 Кейс 2: Шаги по миграции тестового фреймворка

1. Создание базовой инфраструктуры 📦
🔸 Настройка нового фреймворка: Установите и настройте все необходимые инструменты и зависимости.
🔸 Написание базовых тестов: Создайте несколько простых тестов для проверки работоспособности нового фреймворка.
2. Идентификация тестовых наборов 🔍
🔸 Определите приоритеты: Нужно понять, какие тестовые наборы нужно перенести в первую очередь.
🔸 Решение о текущих тестах: Важно решить, что будет с текущими тестами. Будете ли вы их временно запускать и поддерживать? Или вообще их не переносить, законсервировать и использовать новый фреймворк только для новых тестов?
3. Тренинги и документация 📚
🔸 Проведение тренингов: Если нужно, проведите тренинги команды для эффективной работы с новым фреймворком.
🔸 Создание документации: Опишите документацию, гайдлайны по работе и типовые кейсы для команды.
4. Мониторинг и показатели 📊
🔸 Установите метрики: У вас должны быть показатели по срокам перехода и качеству тестов на новом фреймворке, которые нужно соблюдать.
5. Пошаговая миграция 🛠
🔸 Перенос общих утилит и хелперов: Начните с переноса утилит и вспомогательных классов, которые используются в ваших тестах.
🔸 Пошаговая миграция тестов: Переносите тесты поэтапно, начиная с наиболее простых. Тестируйте каждый этап миграции.
6. Подготовка инфраструктуры 🧑‍💻
🔸 Подготовьте фреймворк: До переноса тестов или в параллель нужно также подготовить фреймворк для полноценной работы, например, проверить интеграцию с CI/CD
Валидация и тестирование
🔸 Сравнение результатов: Сравните результаты тестов на старом и новом фреймворке, убедитесь, что они совпадают. А новый фреймворк в чем то лучше, иначе зачем было его внедрять 🤔
🔸 Рефакторинг: После успешной миграции проведите рефакторинг, чтобы оптимизировать тесты и код.
🔄 Постоянное улучшение
🔸 Обратная связь: Собирайте отзывы от команды, выявляйте проблемы и решайте их.
🔸 Мониторинг и поддержка: Регулярно обновляйте фреймворк и следите за его развитием.

Мой личный кейс:
Мне нужно было перейти от старого фреймворка на Java 8/11 с BDD (JBehave) на что-то более новое и удобное. Заказчику было легко продать тот же BDD, а вот многие инженеры, наоборот, не любят BDD подход. Моим решением было создать базовый фреймворк на Rest Assured + BDD (Cucumber) сначала для API тестирования. Базовый фреймворк включал утилиты, хелперы и базовые шаги. Эту библиотеку можно было добавить как зависимость и переиспользовать базовые шаги как BDD методы, так и обычные JUnit/TestNG, что позволило решить проблему с противниками BDD подхода.

После этого я реализовал основные сценарии для одного из новых проектов, написал гайдлайны, собрал команду и обучил ее работе с фреймворком. В дальнейшем я практически не занимался самими автотестами, а больше работал как SDET, улучшая фреймворк, реализуя новые идеи, исправляя дефекты и внедряя фреймворк в других командах. В конечном итоге фреймворком пользовались порядка 10 инженеров из 5 команд.


Пишите в комментариях про свой опыт по рефакторингу тестового фреймворка или по миграции с одного тестового фреймворка на другой.
Или если у вас есть вопросы или сомнения по смене фреймворка - смело задавайте!
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4
📢 6 сентября я выступаю на круглом столе в рамках онлайн-конференции Podlodka QA Crew 🚀

🎯 Тема сезона — «Развитие QA-инженера». А я, как инженер с более чем 2-летним опытом работы за рубежом (🇵🇱 Польша, 🇷🇸 Сербия), расскажу о специфике развития QA-инженера за границей на круглом столе с другими инженерами.

🗓 Мое выступление состоится 6 сентября с 19:00 до 20:30 (Мск). Сама конференция Podlodka QA Crew стартует 2 сентября.

🎟 А еще у меня есть приятный бонус для вас — разыграю один билет на конференцию среди подписчиков моего канала! Чтобы принять участие, напишите в комментариях:
1️⃣ Что бы вы хотели услышать в моем докладе?
2️⃣ Либо какой еще доклад из списка вас интересует?

🥇 Победителя определю и свяжусь с ним 26 августа. А всем остальным можно еще будет успеть купить билеты по early bird скидке до ночи 27 августа.

Буду рад вас видеть на онлайн-конференции! 🌟
1🔥16
Всем привет! У нас открылась регистрация на бесплатный оффлайн митап в Белграде в рамках коллаборации Serbian QA Hub и Wargaming!

Дата: 7 сентября, 2024 в 14:00.
Язык: Английский
Место: Belgrade, Prostor Miljenko Dereta

📝 Ссылка на регистрацию

Наши спикеры и их доклады:
▪️ Saša Avramović "Testing AI: A Quality Assurance Perspective"
▪️ Sergei Zhuravlev "Job search strategies for QA professionals"
▪️ Danil Birukov-Romanov "Before you automate testing"

Узнать подробности или спросить вопросы можно в группе сообщества Serbian QA Hub.
5
Розыгрыш бесплатных билетов на Podlodka QA Crew завершился, но если вы еще не успели купить билеты, но хотите - то у меня есть еще один способ сэкономить, промокод на скидку в сообщении ниже. А помимо моего выступления 6 сентября с 19:00 до 20:30 (Мск), можете ознакомиться и с другими интересными докладами.
Ищете способ улучшить свои навыки в QA?
Podlodka QA Crew с 2 по 6 сентября приглашает на новый сезон, посвященный профессиональному росту.

Конференции Podlodka — это встречи с экспертами по актуальным темам для IT-специалистов, с упором на прикладную пользу. Сессии проходят утром и вечером, чтобы вы могли легко встроить обучение в свой график.

На Podlodka QA Crew вас ждут:

💪 Как заставить ИПР работать на вас от Алены Хайтин, Lead QA в Node. Узнайте, как составлять ИПР и использовать его для своего карьерного роста.
🚀 T-Shaped QA: мастер на все руки с Александром Свеженцевым из Ozon Банк. Обсудим, как T-Shaped подход помогает в развитии QA-инженера.
🔧 Есть ли рост в QA без ухода в автоматизацию? - дискуссия с Натальей Петровской и Дмитрием Шаховым, где вы узнаете, можно ли развиваться в QA без изучения программирования.
🎯 Как и зачем крутому QA построить крутой личный бренд? - Арина Ладесова, QA manager в Payler, раскроет секреты создания мощного профессионального имиджа.
🌍 Специфика развития QA-инженера за рубежом - обсуждение с лидами из международных компаний Европы и США о том, как развиваются QA-инженеры за границей.

Подключайтесь и получите практические знания от лидеров индустрии!

Билеты уже в продаже: https://podlodka.io/qacrew

А еще промокод сообщества qa_crew_12_qEMRUb даёт скидку в 500 руб🥳
🔥4
7 сентября для меня был особенным днем по нескольким причинам. Во-первых, это был мой день рождения, а во-вторых, это был день нашего третьего митапа Serbian QA Hub в коллаборации с Wargaming! 🎉

Мои со-организаторы и коллеги сделали мне незабываемый сюрприз — меня поздравили с днем рождения прямо перед всеми 70+ участниками митапа! С таким большим количеством людей я еще день рождения не отмечал 😅 Спасибо! ❤️

Что касается самого митапа, он прошел с большим успехом, как всегда, и надеюсь, вам тоже все понравилось. Почитать подробности можно в канале хаба.

А как вы отмечаете свой день рождения? 😀
🔥25👍1
Пару недель назад выступал на Podlodka QA Crew #12 с темой "Специфика развития QA-инженера зарубежом" в рамках круглого стола вместе с другими экспертами: Angelina Makukha, Dmitriy Grishin, Anton Chervonnyy. С докладом также помогали Stanislav Yakovlev и Maria Kruglova. Я в большей степени рассказывал про рынок Сербии, так как живу и работаю здесь уже 2 года, а коллеги рассказывали про рынок Германии и США.

📊 Немного инсайтов моего анализа рынка Сербии:
1️⃣ Все в основном используют LinkedIn для поиска вакансий для удаленки или на английском. Для сербского языка есть местные аналоги (helloworld.rs и т.д.)
2️⃣ Сопроводительные письма не прям обязательно, но могут повысить шансы, особенно когда нужно выигрывать конкуренцию у местных QA.
3️⃣ Собеседования в целом сильно от Российских не отличаются, просто больше крупных и outsource/outstaff компаний, где несколько этапов, много проектов и есть culture fit собеседования.
4️⃣ Требования по языку начинаются где-то с B1, но чем выше позиция, тем выше требования.
5️⃣ Статистика по 40+ вакансиям на LinkedIn:
72% позиций для Middle-Senior специалистов,
25% для Junior-Middle,
и всего одна менеджерская вакансия (3%).
По типу работы: 47% вакансий для автоматизаторов, 33% для смешанных ролей (авто + ручное), и 19% для ручного тестирования.
Технологический стек в сербских вакансиях:
По языкам: JS/TS (35%), Java (25%), Python (14%) и C# (12%).
Фреймворки и инструменты: Selenium (44%), Playwright (26%), Cypress (19%). Сертификат ISTQB встречается редко (4 вакансии) и нужен в основном для джунов без опыта.

💡 Выводы: На международном рынке важно постоянно совершенствовать свои навыки, чтобы оставаться востребованным. Регулярно мониторьте рынок, ходите на собеседования, собирайте кейсы для визы талантов (например, через публичные выступления) заранее, а не когда это будет нужно уже завтра.

По текущим вакансиям в Сербии, идеальный кандидат — это Senior AQA, который готов иногда тестировать вручную, пишет на JS и Java, использует Selenium и Playwright, и не против время от времени работать из офиса. Такие специалисты могут подходить под 60-70% вакансий на рынке.
Ручное тестирование еще живо! 😅

🎥 Посмотреть наше выступление можно по ссылке
🔥19👍9🙏1
Новости про предстоящую ИТ-конференцию Merge в Моксве и розыгрыш билета

Привет! 👋🏻

15-16 ноября в технопарке «Сколково» лучшие профессионалов IT-индустрии со всей России соберутся на конференции Merge.

Что ждет участников?

🔹 Выступления 150 топовых спикеров. Вы узнайте о последних трендах и технологиях от лиде-ров отрасли
🔹 6 направлений и 30+ тематических секций — от разработки до маркетинга и HR.
🔹 Практические мастер-классы, воркшопы и BoF-сессии. Вы сможете получите новые навыки и знания на интерактивных площадках от профессионалов.
🔹 Нетворкинг. Установите новые деловые контакты и познакомьтесь с коллегами.Ваша следу-ющая большая идея может родиться именно здесь
🔹 Интерактивная выставка IT-компаний — узнайте о новейших продуктах и решениях от веду-щих компаний со всей страны.

🗓 Дата: 15-16 ноября
📍 Место: Инновационный центр Сколково, г. Москва

👉 Подробнее на сайте: https://clck.ru/3D5Bit

Также я разыграю один билет на конференцию среди подписчиков, которые напишу в комментариях с какой целью хотят посетить конференцию.

#партнерскийпост
🔥6