TG Telegram Group Link
Channel: Геннадий Чурсов | QA++
Back to Bottom
Forwarded from Serbian QA Hub (Organizer)
🔥 Будет ли драка, если столкнуть тестировщиков и разработчиков в дебатах на больные темы?

Мы Serbian QA Hub вместе с IT Connect и Merc team проверили - нет!
Будет много смеха и понимания без осуждения 🫶
Потому что в конце концов - мы делаем общее дело 😊😉

Спасибо участникам и зрителям, что поддержали наш экспериментальный формат! Мы понимаем, для многих было непросто решиться - выступать публично, еще и без подготовки.

Но вы справились нереально круто!
А наши судьи из Клуба дебатов в Белграде научили нас быть уверенней в своей позиции, формулируя свои аргументы более понятно и последовательно ❤️‍🔥

Посмотреть, как это было, можно в альбомах наших фотографов/видеографа:
Антон Клочков https://disk.yandex.ru/d/uGqId22YrG14mQ
Алина Трунова https://disk.yandex.ru/a/nRmWcmlBU-UjZw
Гена Чурсов https://1drv.ms/a/s!At5eiO5VotXQm5wTllGCyE_Wz1ggvQ?e=WRFYhw
🔥 Последний день регистрации на бесплатный курс по автоматизации тестирования на Java!

📢 В прошлых постах я уже рассказывал о курсе, делился материалами по самостоятельному изучению языка Java и даже проводил открытый урок по написанию первых автотестов. Если вы (или ваши знакомые) хотели зарегистрироваться, но откладывали — сегодня последний шанс зарегистрироваться.

Что дальше?
Завтра (1 февраля) я закрою регистрацию и начну добавлять участников в закрытый канал.
Уже более 1500 регистраций, так что процесс займет некоторое время.
Первых 200 участников я смогу добавить в группу напрямую, остальным отправлю ссылку в личные сообщения или на e-mail, указанный при регистрации.

🎓 Когда старт?
Первая лекция состоится уже в среду, 5 февраля, в 18:30 CET (20:30 МСК). Запись будет доступна участникам закрытой группы. 📹

📌 Если вы еще не зарегистрировались — самое время это сделать! Скоро увидимся на курсе! 🚀
Регистрация закрыта и начато добавление в закрытую группу курса

И сразу же столкнулся с особенностями Telegram, так что не смогу больше отправлять ссылку в личные сообщения.

Отправить заявку на вступление в группу (если вы уже зарегистрировались) можете самостоятельно по ссылке: https://hottg.com/+g_8k-u_TQPU3YTMy

P.S. Если вы не успели зарегистрироваться - пишите в личные сообщения @topsycreed
📢 Обновление по добавлению в закрытую группу

🔹 На данный момент обработано 750 из 1774 заявок (42%).

Если вы всё ещё не в группе, возможные причины:

1️⃣ Вы не регистрировались на курс, пока регистрация была открыта.
⛔️ Не отправляйте заявку в канал – я проверю что вас нет в списках и отклоню её.
В этом случае напишите мне в личные сообщения: @topsycreed

2️⃣ Вы зарегистрированы на курс, но не отправили заявку на вступление в группу.
📌 Подайте заявку по ссылке: https://hottg.com/+g_8k-u_TQPU3YTMy

3️⃣ Вы зарегистрированы на курс и отправили заявку на вступление в группу, но спустя 10+ часов всё ещё не в группе.
🔍 Возможно, я не смог вас идентифицировать (из-за скрытого имени профиля или некорректных данных при регистрации).
📩 В этом случае тоже напишите мне в личные сообщения: @topsycreed
Коллеги, привет! 👋🏻

8 февраля приглашаю вас на бесплатный онлайн воркшоп 🎓 "Построение фреймворка автоматизации на Java с нуля".

📅 Когда: 8 февраля
Во сколько: 14:00 (МСК)
Длительность: 3 часа
🌍 Язык: Русский
🏢 Где: Онлайн (MS Teams) 🔗 Присоединиться
🎤 Спикер: Геннадий Чурсов

О чем воркшоп? 🤔
Разберем с нуля создание фреймворка для UI и API тестирования на Java. Будет много практики, а на каждый шаг — теория и примеры кода, которые можно будет пошагово повторить после мастер-класса.

🚀 Что будем делать?
Создадим проект и опубликуем его в GitHub
Подключим зависимости и настроим окружение
Напишем и запустим первый API тест
Разберем параметризацию тестов и сериализацию объектов в JSON
Напишем и запустим первый UI тест (Selenium)
Добавим Page Object Model (POM), ожидания и property-файлы
Настроим запуск тестов через командную строку
Внедрим Allure-отчеты
Настроим CI/CD в GitHub Actions

📌 Как подготовиться?
Перед воркшопом установите IntelliJ IDEA (Community или Ultimate) и создайте профиль в GitHub.

📹 Запись будет, но приходите вживую – так интереснее и полезнее!

📆 Воркшоп будет проходить в рамках Serbian QA Hub, чтобы не пропустить мастер-класс подпишитесь на мероприятия Serbian QA Hub в Google календаре.

Вопросы – пишите Геннадию Чурсову.

Ставьте 💻 если придете на воркшоп! До встречи! 🚀
Forwarded from Serbian QA Hub (Organizer)
📢 8 февраля Serbian QA Hub провели первый онлайн мастер-класс по теме "Построение фреймворка автоматизации на Java с нуля".

🎤 Спасибо спикеру Геннадию Чурсову за проведение мастер-класса! И Екатерине за помощь с организацией.

В рамках МК были:
Теория и разбор реальных кейсов
Много практики с пошаговым объяснением

📄 Полезные материалы:
Пошаговый план с примерами кода
Готовый фреймворк на GitHub (разбит на ветки по шагам)

👥 На мастер-класс пришло более 90 участников! Если вы не смогли присоединиться, запись доступна на YouTube.

📢 Просим участников пройти небольшой опрос — он поможет нам сделать будущие мероприятия еще лучше. Также можно указать данные для именного сертификата. Будем рады, если поделитесь им и отзывами в соцсетях, отметив Serbian QA Hub и спикера.

📅 Следите за новыми мастер-классами!
Подписывайтесь на Google Календарь мероприятий и соцсети, чтобы не пропустить их.

До встречи на следующих событиях нашего сообщества Serbian QA Hub!
Отправил сертификаты онлайн-участникам мастер-класса «Построение фреймворка на Java с нуля»

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

Если вы были на мастер-классе еще можете заполнить отзыв, чтобы получить сертификат участника.
Завершил сразу два потока программы Women in Tech: 5-й поток Women in Tech Belarus и 6-й поток Women in Tech Russia, где выступал в роли ментора. По итогам получил сертификаты за активное участие.

Этот опыт стал для меня важной вехой: было интересно сравнить подходы разных команд Women in Tech и почувствовать выход на международный уровень. В этом году столкнулся с определёнными сложностями в работе с менти, но преодоление этих трудностей помогло мне самому выйти на новый уровень как наставника. Надеюсь, что мои советы и поддержка также были полезны моим менти. В прошлом году у меня их было трое, и этот опыт продолжает вдохновлять меня на дальнейшее развитие.

Настоятельно рекомендую всем пробовать себя в подобных программах, как в роли ментора, так и менти. Это отличный шанс прокачать свои навыки, узнать новые подходы, расширить кругозор и завести ценные знакомства.
🔍 Лучшие Telegram-каналы про тестирование в одном месте!

С коллегами провели ревью QA-каналов и собрали в одну папку только те, где:
Есть уникальный авторский контент
🚫 Нет бесконечной рекламы
📌 Реально полезно для тестировщиков

📢 Подписывайтесь и экономьте время на поиск качественных каналов:
👉 Добавить подборку
Что посмотреть на выходных? Конечно же запись выступлений с митапа Serbian QA Hub
Forwarded from Serbian QA Hub (Organizer)
Всем привет!

Sergey Salyk и Gennadii Chursov подготовили записи докладов с митапа Serbian QA Hub х JetBrains 14 февраля. Давайте посмотрим, как это было! 🎥

🎤 Артем Чугуев - Автоматизация тестирования IDE на примере JetBrains Rider

🎤 Игорь Плавуцкий - "QA в робототехнике или незнакомая сторона тестирования"

🎤 Данил Бирюков-Романов - в тандеме с супругой Анной - "Проблемы роста QA или кукуха улетает первой".

Если хотите выступить на следующих митапах на русском или английском языке, оставляйте заявку [здесь]

Будем рады, если поделитесь отзывами о митапе и докладах в LinkedIn, отметив Serbian QA Hub и спикеров.

До новых встреч на митапах! 🚀
💡 Недавно наткнулся на на пост в LinkedIn про стратегию тестирования REST API от Bas Dijkstra.
Согласен с основными подходами и хочу выделить ключевые чек-листы, которые стоит учитывать при тестировании REST API на основе поста Баса и моего опыта.

🔥 Smoke-тесты (базовая проверка работоспособности API)
Отправка корректного запроса с валидными данными → API возвращает ожидаемый HTTP статус (201, 200)
Данные успешно сохраняются и доступны через GET-запрос
Запрос без обязательного заголовка (например, Content-Type: application/json) → API корректно обрабатывает или возвращает ошибку

🚀 Позитивные тест-кейсы
🔹 Отправка запроса с минимально необходимым набором данных
🔹 Отправка запроса с максимальным набором данных (включая необязательные поля)
🔹 Ввод данных в разных поддерживаемых кодировках
🔹 Обработка граничных значений (минимальные/максимальные числа, даты)
🔹 Проверка идемпотентности, если API должно поддерживать повторные запросы без дублирования данных

💻 Обработка данных
🔹 Проверить, что отправленные данные корректно сохраняются
🔹 Убедиться, что данные можно корректно получить обратно
🔹 Убедиться, что некорректные данные фильтруются или отклоняются
🔹 Проверить обработку больших объемов данных

⚠️ Негативные тест-кейсы
🔻 Вариации данных
Проверить отсутствие обязательных полей по одиночке
Полностью исключить обязательные поля
Передать некорректные значения (например, текст вместо числа)
Использовать слишком длинные значения
Добавить нестандартные символы (эмодзи, диакритика и т. д.)

🔻 Инъекции
Попробовать внедрить JavaScript
Попробовать SQL-инъекцию
Попробовать выполнить серверные команды

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

🔻 Ошибки и сообщения
Убедиться, что возвращаемые HTTP-статусы логичны
Проверить, что ошибки в ответах понятны
Убедиться, что сообщения об ошибках не раскрывают лишнюю информацию (stack trace, подсказки, детали реализации)

📜 Контрактные тесты
🔍 Проверить соответствие API контракту (OpenAPI/Swagger)
🔍 Проверить, что API не ломает обратную совместимость при обновлениях
🔍 Убедиться, что типы данных в ответах соответствуют спецификации

🌪 Chaos-тестирование
💥 Остановить случайные сервисы, от которых зависит API, и проверить корректность обработки ошибок
💥 Использовать инструменты типа Chaos Monkey для моделирования отказов инфраструктуры
💥 Проверить, как API реагирует на отказ базы данных (например, недоступность PostgreSQL/MySQL)

⚡️ Нагрузочное тестирование
📌 Load Testing – проверка производительности API под прогнозируемой нагрузкой
📌 Stress Testing – работа API в экстремальных условиях и предельных нагрузках
📌 Performance Testing – замер скорости отклика и производительности при различных условиях

Также по теме нашел еще несколько чек-листов от других авторов:
1️⃣ Чек-лист API тестов от Parviz Khavari
2️⃣ Как тестировать методы REST API от Ольга Назина
3️⃣ Google таблица API тест-кейсы и чек-лист на примере petstore от Надежды Дудник

Такой список поможет сделать тестирование API более структурированным и эффективным. А какие чек-листы используете вы? 🚀
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему на первое апреля у QA инженеров не принято вместо у тебя спина белая использовать вариант "у тебя тесты красные"? 😅
В LinkedIn спросили про курсы автоматизации на Java. В комментариях поделились советами, в основном упоминали RedRover.school, но был также комментарий и про мой курс! ❤️ Спасибо!

По самой Java как обычно упоминают Java Rush курс, а также Основы Java от Хекслета

Среди авторов выделили:
1️⃣ Дмитрий Тучс - курс Java на QA Guru, а также советую его публичные выступления: JUnit Extensions и gRPC
2️⃣ Олег Пендрак - ютуб канал про автоматизацию на Java, а еще недавно у него стартовал курс по автоматизации тестирования iOS
3️⃣ Авторы по чисто Java: Тагир Валеев (курс Computer Science Center) и Сергей Немчинский

Также напомню, что уже делал два поста с рекомендациями:
Часть 1 с моими рекомендациями 👈🏻
Часть 2 с рекомендациями от участников канала 👈🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
У Bas Dijkstra новый пост про тестирование API: Как вы проверяете большие ответы в своих API-тестах?

В прошлый раз мы обсуждали стратегию тестирования API, почитать можно по ссылке.
Теперь давайте разбираться как проверять ответы если у вас Java, у меня есть что дополнить по этой теме!

Список подходов по мнению Баса:

🔍 Approval testing (сравнение с эталоном)
Если у вас есть заранее известный корректный ожидаемый ответ, можно сравнивать его с фактическим целиком, вместо проверки каждого отдельного элемента.
❗️Минусы: придётся как-то обрабатывать изменяющиеся поля (уникальные ID, поля с датой и т.д.). Также, если ответ содержит списки, то такая проверка может ломаться при изменении порядка элементов в списке, даже если их содержимое не менялось.
💡Мое дополнение: применял данный подход на самом старте API автоматизации, хранил expectedResponses в отдельной папке и использовал библиотеку JSONAssert, которая позволяет исключить сравнение по какому-то полю через CustomComparator (StackOverflow). Также есть режим JSONCompareMode.LENIENT, позволяющий игнорировать порядок полей и лишние поля (например, Id, даты и прочее можно не добавлять в expected json). Минус: не проверите контракт этих полей и не среагируете на новые поля.

📉 Сокращение объёма ответа
Если ответ содержит длинные списки с десятками или сотнями элементов, можно попытаться изменить тестовые данные так, чтобы возвращалось, например, всего 3 элемента.
❗️Минусы: зависит от того, насколько у вас есть контроль над данными. Кроме того, при таком подходе можно пропустить некоторые баги, которые проявляются только при большом количестве элементов.
💡 Мое дополнение: тут особо добавить нечего, все так. Обычно в пре-реквизитах и пост-шагах создаем тестовые данные, очищаем предыдущие, чтобы в самих тестах не было ничего лишнего в ответах.

📦 Десериализация
Преобразование JSON или XML-ответа в объекты может позволить реализовать более умные и структурированные ассерты.
❗️Минусы: скорее всего, придётся писать кастомные проверки или обрабатывать объекты вручную.
💡 Мое дополнение: это мой основной способ работы с API ответами. Часто эти модельки (DTO классы) пригодятся и для создания в самих запросах. Существуют сервисы, которые генерируют эти классы на основе JSON или схемы, например: jsonschema2pojo. Кастомные проверки можно делать уже средствами JUnit 5, TestNG или AssertJ. Можно использовать SoftAssertions либо даже сделать проверки в виде steps и логировать это в Allure. Есть и другие подходы, например, Fluent Interface/method chaining.

🧩 Переосмысление дизайна API
А действительно ли API должен возвращать столько полей? Может быть, стоит переосмыслить его структуру?
Большие ответы могут быть признаком не самого лучшего дизайна API и даже увеличивать риск уязвимостей вроде Broken Object Property Level Authorisation или Excessive Data Exposure.
❗️Минусы: вероятность того, что команда разработки или продуктовая команда согласятся на изменения — низкая, особенно если API уже активно используется другими системами.
💡 Мое дополнение: у меня был опыт работы в команде, которая пилила монолит на микросервисы и оптимизировала часть ответов. Для синхронизации с другими системами я внедрял контрактное тестирование. С его помощью можно было проверить, что изменения в нашем сервисе не ломают тесты другим командам.

💡 Добавлю еще варианты от себя:
• Тестирование с помощью then блока самого RestAssured. Под капотом используется Hamcrest, вариант подходит, если из большого ответа нужно проверять только часть. Например, ответ вернул всю информацию о корзине товаров на E-commerce сайте, а вам нужно проверить только количество товара с 1 на 2.
then().body("quantity", equalTo(2));

• Через RestAssured можно и схему сравнить:
then().body(matchesJsonSchemaInClasspath("jsonSchema/petSchema.json"));

• В AssertJ есть возможность сравнить 2 объекта с указанием, какие поля нужно игнорировать:
assertThat(actualUser).usingRecursiveComparison().ignoringFields("id").isEqualTo(expectedUser);


Больше примеров можно найти в одном из моих проектов с курса по автоматизации: SimpleAPITests и ExtendedAPITests
Доклад "Менторство как ключ к профессиональному успеху"

Ровно год назад прошёл первый митап сообщества Serbian QA Hub — событие, которое мы готовили с нуля, и которое стало отправной точкой для целой серии крутых встреч. Я тогда участвовал сразу в двух ролях: со-организатора и спикера.

🎤 На митапе я рассказывал о менторстве как ключе к профессиональному росту.
С 2018 года я менторю начинающих и опытных инженеров, а с 2021 года — делаю это и как профессиональную деятельность.

📈 Именно менторство стало одной из причин, почему я так быстро вырос в Grid Dynamics — от Junior до Staff QA и инженерного менеджера. Оно помогло мне прокачаться и в хард скиллах, и в софт скиллах, научило лучше слушать, объяснять и вдохновлять.

👀 Если тебе, как и мне тогда, тесно в рамках должности QA-инженера / разработчика / лида и ты хочешь делиться опытом и развивать других — обязательно глянь мой доклад.

В нём:
1️⃣ кто такой ментор;
2️⃣ как начать менторить;
3️⃣ зачем тебе это нужно;
4️⃣ сколько зарабатывают менторы (да, и про деньги тоже поговорим);
5️⃣ немного статистики по рынку.

📽 Посмотреть доклад можно тут: Youtube и GoogleDrive

P.S. Напиши, если узнал менторов, про которых я сделал тот самый слайд с Траволтой в замешательстве 😅
Please open Telegram to view this post
VIEW IN TELEGRAM
HTML Embed Code:
2025/07/04 21:33:30
Back to Top