ThreadQA | Олег Пендрак
الذهاب إلى القناة على Telegram
Жизнь и работа в IT | Блог инженера Tech Lead QA Automation с 5+ годами опыта работы в Сбер Здоровье, Ситидрайв, Ozon и VK Связь со мной: @penolegrus
إظهار المزيد1 268
المشتركون
-524 ساعات
-217 أيام
-8230 أيام
جارٍ تحميل البيانات
القنوات المماثلة
لا توجد بيانات
هل تواجه مشاكل؟ يرجى تحديث الصفحة أو الاتصال بمدير الدعم الخاص بنا.
سحابة العلامات
لا توجد بيانات
هل تواجه مشاكل؟ يرجى تحديث الصفحة أو الاتصال بمدير الدعم الخاص بنا.
الإشارات الواردة والصادرة
---
---
---
---
---
---
جذب المشتركين
أكتوبر '26أكتوبر '26
أكتوبر '26
+14
في 0 قنوات
سبتمبر '26
+506
في 231 قنوات
Get PRO
أغسطس '26
+56
في 1 قنوات
Get PRO
يوليو '26
+109
في 0 قنوات
Get PRO
يونيو '26
+941
في 300 قنوات
| التاريخ | نمو المشتركين | الإشارات | القنوات | |
| 20 أكتوبر | 0 | |||
| 19 أكتوبر | 0 | |||
| 18 أكتوبر | +2 | |||
| 17 أكتوبر | 0 | |||
| 16 أكتوبر | 0 | |||
| 15 أكتوبر | +1 | |||
| 14 أكتوبر | +1 | |||
| 13 أكتوبر | +1 | |||
| 12 أكتوبر | +1 | |||
| 11 أكتوبر | 0 | |||
| 10 أكتوبر | 0 | |||
| 09 أكتوبر | +1 | |||
| 08 أكتوبر | 0 | |||
| 07 أكتوبر | +1 | |||
| 06 أكتوبر | 0 | |||
| 05 أكتوبر | +1 | |||
| 04 أكتوبر | +1 | |||
| 03 أكتوبر | +1 | |||
| 02 أكتوبر | +2 | |||
| 01 أكتوبر | +1 |
منشورات القناة
| 2 | Ну что 1 день в Японии😎😻
Ставьте классы и закину еще фотокарточку | 328 |
| 3 | Вот они реальные пермские пацаны😎 | 661 |
| 4 | Кукинг рубрика продолжается, в этот раз стейк приготовленный по технологии сувид, кремсуп луковый и тартарен яблочный👌🏻 | 749 |
| 5 | 🤖 ТЕСТИРУЕМ ИИ l ЧАСТЬ 2
Бот сказал, что услуги нет, а она была
Прилетает жалоба в поддержку: пользователь спрашивает у нашего бота записи «можно сделать МРТ колена в клинике на Ленинском?», а бот уверенно отвечает, что такой услуги в этой клинике нет
Услуга при этом есть, висит в прайсе, люди на неё записываются через сайт каждый день
Первая реакция у команды была предсказуемая:
модель тупит, давайте перепишем промпт
Я попросил не трогать промпт, пока не поймём, где именно сломалось, потому что у нашего бота, как у любого RAG, два этапа:
1️⃣ Поиск: достаём из базы знаний куски документов, похожие на вопрос
2️⃣ Генерация: модель читает эти куски и пишет ответ
Ломаются они по-разному, и чинятся тоже по-разному
Приём, который решает спор за 5 минут, очень простой: берёшь тот же вопрос и вручную подставляешь модели правильный кусок документа, где явно написано, что МРТ колена в этой клинике есть
Если с идеальным контекстом ответ стал правильным, значит модель нормальная, а виноват поиск, он просто не принёс нужный кусок
Если даже с правильным куском модель несёт чушь, значит проблема в генерации и уже можно идти в промпт
У нас ответ сразу стал правильным
Полезли смотреть поиск, и там всё оказалось банально:
в прайсе услуга называлась «Магнитно-резонансная томография коленного сустава», без слова «МРТ», а при нарезке документа название вообще отрезалось от названия клиники и строки с ценой
Поиск по запросу «МРТ колена» находил что угодно, только не это
Починили нарезку и добавили синонимы для популярных сокращений, промпт вообще не трогали
Что из этого стоит забрать себе:
1️⃣ Поиск тестируйте отдельно от модели. Соберите 20–30 вопросов, для которых вы точно знаете, в каком документе ответ, и смотрите, попадает ли нужный кусок в топ-5 выдачи (это называется hit rate или recall@k)
2️⃣ Генерацию проверяйте на идеальном контексте, тогда проблемы поиска не будут маскировать проблемы модели
3️⃣ Логируйте, какие куски принёс поиск на каждый ответ, иначе потом разбирать жалобы придётся вслепую
Главная мысль тут такая: прежде чем чинить бота, найдите, какой этап сломался, иначе можно неделю переписывать промпт, который ни в чём не виноват
В следующей части расскажу, как мы пытались автоматически сравнивать ответы бота с эталоном и почему метрика поставила правильному ответу двойку, а неправильному почти пятёрку
На 50 👨💻 выпускаю третью часть | 798 |
| 6 | Продолжаю лайвстайл кулинарии👌
В этот раз попробовал впервые тар тар из телячьего огузка и альтернативный стейк-фланк с грибным соусом и бейби картофелем
Тартар оказался на любителя, так как максимально не привычно есть сырое мясо, плюсом вместо того чтобы нарезать кубиками мелкими, у меня получилось как получилось🙀
Шок контент насчет шампиньонов, оказывается их надо чистить и снимать кожуру, вместо того чтобы промывать, так как они впитывают влагу и потом при готовке вся вода испаряется и от грибов почти ничего не остается😱
Вообще вайбик просто повторять за поваром, особо не понимая что и как надо делать, а потом дегустировать | 646 |
| 7 | 🤖 ТЕСТИРУЕМ ИИ l ЧАСТЬ 1
Код никто не трогал, а бот сломался
У нас в СберЗдоровье есть чатбот, через который можно записаться к врачу или на анализы
И недавно с ним случилась история, которая отлично показывает, чем тестирование ИИ отличается от обычного
Пятница, вечер. Прилетает жалоба от пользователя:
бот записал его на сдачу крови на 15:00 и ни слова не сказал, что сдавать её нужно натощак. Человек приехал после обеда, анализ не приняли, день потерян
Идём разбираться, а там полная тишина: за неделю ни одного мёржа, все автотесты зелёные, по логам никаких ошибок, код никто не трогал, а бот ведёт себя по-другому
Копали полдня и в итоге нашли
За пару дней до этого продакт поправил системный промпт, добавил туда всего одну фразу «отвечай короче, пользователи не любят длинные сообщения»
Бот понял это буквально и начал выкидывать из ответов всё лишнее, а заодно и памятки о подготовке к анализам
Для меня это стало главным уроком. В обычном приложении поведение меняется, только когда меняется код
В LLM-приложении бот может поехать, даже если в репозитории ноль коммитов, достаточно, чтобы:
— кто-то поправил одну фразу в промпте
— провайдер тихо выкатил новую версию модели
— в базу знаний залили обновлённый прайс или список услуг
— поменяли temperature или другие параметры генерации
При этом обычные автотесты ничего не поймают, потому что проверяют код, а сломался не он
Что мы в итоге поменяли у себя:
1️⃣ Промпт теперь живёт в git, как код, со своим ревью и версиями, а не правится на лету в админке
2️⃣ Собрали набор из 50 реальных диалогов: запись к врачу, перенос, отмена, анализы с подготовкой, вопросы не по теме
3️⃣ Прогоняем этот набор на каждое изменение промпта, модели или базы знаний, а не только на мёрж кода
4️⃣ Любая жалоба из прода превращается в новый кейс в наборе, и тот диалог про анализ натощак теперь лежит там первым
Проверяем ответ не на точное совпадение строки, как в assertEquals, а по смыслу: есть ли в ответе дата, адрес клиники и памятка о подготовке
Одна и та же модель может сформулировать одно и то же десятью способами, поэтому сравнивать текст один в один бессмысленно
Главная мысль тут такая: в ИИ-продуктах промпт, модель и база знаний это такой же код, и тестировать их изменения нужно так же серьёзно, как любой мёрж в мастер
А в следующей части расскажу, как мы по одной жалобе за 5 минут понимаем, где проблема, в поиске или в самой модели, там есть один очень простой приём
На 50 👨💻 выпускаю вторую часть | 588 |
| 8 | Скоро будут съемки нового видео про тестирование оценки ответов LLM с гостем
Задавайте вопросы под постом, постараемся ответить на них👌 | 458 |
| 9 | لا يوجد نص... | 507 |
| 10 | Жизненная ситуация между прочим🤡 | 1 |
| 11 | За последнее время в канал зашло почти 600 новых человек🚀
Для вас я решил немного рассказать о себе и об этом блоге)
Меня зовут Олег, сейчас я занимаю должность инженера Tech Lead QA Automation в компании Сбер Здоровье
Простым языком: я отвечаю за качество продукта внутри команды, чтобы сервис работал надежно, без сбоев и зависаний, провожу собеседования, отбираю кандидатов и проверяю их работу
В общей сложности уже больше 5 лет я работаю в сфере IT. Начинал джуном-автоматизатором, в VK дорос до тимлида, потом стал техлидом в Ozon, поработал сеньором в Ситидрайве
Параллельно был наставником в Университете Иннополис и выступал на крупнейших IT-конференциях — Heisenbug, Ural Digital Weekend и Work Solutions. И весь этот опыт я тащу в видео, курсы и эфиры, чтобы людям не пришлось набивать те же шишки, что и мне
За 5 лет вокруг канала ThreadQA удалось создать целую экосистему:
▶ YouTube-канал — 11 000+ ребят, которые хотят расти в QA
🎓 Образовательная платформа с курсами по Java, Python и iOS автоматизации
🔔 450+ выпускников моих курсов
🌟 200+ личных консультаций по стеку, архитектуре тестов и карьере
💬 Ламповый чат сообщества, где ребята помогают друг другу
В этом канале вас ждет:
— полезный контент и подробные ответы на ваши вопросы
— гайды как найти работу в IT и все подводные камни
— разборы собеседований и вопросы, которые задают в крупных компаниях
— инсайты и ошибки, о которых не пишут в туториалах
— прямые эфиры с общением и разбором ваших вопросов
— лайф контент из моей жизни и работы
▶ YouTube канал: https://www.youtube.com/@threadqa
📌 Платформа с курсами и материалами: https://lms.threadqa.ru
🔥 Новый курс Java QA Automation 2026: https://t.me/threadqa_blog/109
💬 Чат сообщества (можно задать любой вопрос — отвечу я или ребята): @threadqa
✍️ 1 часть истории моего пути: https://t.me/c/3706754029/61
➕ Список полезных постов: https://t.me/c/3706754029/92
💌 Связь со мной: @penolegrus
Очень рад видеть вас здесь❤️ | 828 |
| 12 | Новое видео уже на канале, поговорили про найм в 2026 году и какие проблемы сейчас есть на рынке
https://youtu.be/lBuy2MZHWhQ?si=4e0mLcg-pmsjKR0n
https://vkvideo.ru/video-200678405_456239111
https://rutube.ru/video/faffdd7029698ec8d2a04dafc0708a89
Итак, присаживайтесь поудобнее, потому что два Олега встретились, чтобы проговорить интересную тему в найме для QA!
В этом выпуске разобрали как сегодня устроен рынок тестирования в России: что ждут работодатели от junior QA, как проходит найм и какие ошибки чаще всего мешают кандидатам получить предложение.
Пишите в комментариях, как у вас обстоят дела в поиске работы, или как вы подходили ранее к поиску работу в кризисное время для найма.
Всем добра, бобра и приятного просмотра!)
Подписывайтесь на тг канал гостя - @zhikona | 561 |
| 13 | Фотокарточки с конференции "СЕКОН" прилетели
Ну и пока вы будете смотреть на них, сегодня я поучавствовал в подкасте у одного крутого рекрутера
Все подробности уже скоро, следите, потому что подскат получился очень насыщенным) | 608 |
| 14 | В ближайшее время запланировано 2 новых видоса на YouTube канале 🟥
Темы: «Тестирование llm» и «Беседа с HR»
В комментариях вы можете задать свои вопросы по этим или смежным темам, которые я также разберу в данных видео
Накидывайте👇 | 603 |
| 15 | В ближайшее время запланировано 2 новых видео на YouTube канале 🟥
Темы: «Тестирование llm» и «Беседа с HR»
В комментариях вы можете задать свои вопросы по этим или смежным темам, которые я также разберу в данных видео вместе с приглашенными экспертами
Также можете задать вопрос через анонимные сообщения: https://t.me/anonaskbot?start=5p6gx06 | 1 |
| 16 | Из-за роста количества подписчиков, слетело оформление канала
У кого есть Telegram-Premium, буду благодарен, если отдадите парочку голосов за канал⭐️
https://t.me/boost?c=3706754029 | 585 |
| 17 | Побывал в Пензе когда был на конференции SECON🤠
Очень классная улица в центре города, а самое классное, что в Пензе есть самокаты которые сильно упрощают туризм
Также отмечу прикольную кофейню Gussi, где можно с гусями посидеть пофлексить🦆
P.S Жду фото от фотографа и сделаю пост из внутниянки конференции | 1 032 |
| 18 | Переход из Middle в Senior AQA
Часто вижу, что многие автоматизаторы годами остаются на уровне Middle, потому что их основная зона ответственности — написать UI-тест, добавить пару проверок в API и поддерживать существующий набор автотестов
Но Senior AQA — это уже не просто чел, который пишет код
Это инженер, который понимает, как устроена вся система тестирования и как его работа влияет на скорость выхода продукта
Главный переход в мышлении выглядит так:
❌ Middle:
«Тест упал, значит нужно поправить локатор или перезапустить прогон»
✅️ Senior:
«Почему тест упал? Это проблема продукта, тестовой инфраструктуры, окружения, данных или самого автотеста?»
Senior должен понимать разницу между уровнями тестирования
UI-тесты нужны для проверки пользовательских сценариев: открыл страницу, сделал действие, проверил результат
API-тесты позволяют быстрее и стабильнее проверять бизнес-логику без зависимости от интерфейса
Хороший Senior AQA понимает, что не нужно всё тестировать через UI
Он умеет правильно распределять проверки между API, UI, интеграционными и другими уровнями, чтобы тесты были быстрыми, стабильными и давали реальную ценность
Но самое важное — умение разбираться с проблемами, когда что-то ломается
Например, упал автотест в CI/CD, и Middle часто смотрит только на ошибку в отчёте теста
Senior начинает исследовать:
— что происходило в момент падения
— какой сервис мог быть причиной
— были ли ошибки на стороне backend
— не упало ли окружение
— корректно ли отработал pipeline
Он знает, где искать информацию
— посмотреть логи в Grafana
— проверить ошибки сервисов
— сопоставить время падения теста с событиями в системе
— понять, проблема в коде, инфраструктуре или данных
Senior AQA не должен быть DevOps-инженером, но он обязан понимать процессы вокруг:
— как запускаются тесты в pipeline?
— где смотреть логи сборки?
— почему тесты могут падать только на CI, но работать локально?
— как правильно описать проблему для DevOps?
Хороший вопрос DevOps выглядит не так:
❌ «Пайплайн красный, посмотрите»
А так:
✅️ «На этапе запуска API-тестов падает сервис X. В логах Grafana за 14:32 есть ошибки подключения к базе данных. Локально проблема не воспроизводится. Можете проверить состояние сервиса и окружения?»
Вот это уже реально инженерный подход, и переход в Senior — это не про количество написанных автотестов
Это про способность проектировать тестовую стратегию, понимать архитектуру продукта, находить причины проблем и помогать команде быстрее доставлять качественный продукт
Senior AQA — это не человек, который автоматизирует проверки
Это человек, который строит систему контроля качества вокруг продукта✅️ | 837 |
| 19 | Ура😁 | 822 |
| 20 | Грамотный рефакторинг legacy-фреймворка: как улучшить автотесты и не сломать регресс🔧
Я давно заметил, что со временем практически любой большой AQA-проект сталкивается с одной проблемой
Когда автотестов становится больше, продукт развивается, но сам фреймворк начинает превращаться в сложную систему, которую страшновато менять
Сначала всё просто: несколько тестов, немного вспомогательных методов и минимум абстракций
Но через пару лет появляются огромные классы, дублирование логики, нестабильные тесты и ситуации, когда небольшое изменение в этом продукте ломает десятки сценариев
И самая частая ошибка при работе с legacy-фреймворком — попытка полностью переписать проект с нуля
На практике такой подход почти всегда приводит к проблемам: команда теряет время, регресс останавливается, а новый фреймворк может оказаться таким же сложным, как старый
Правильный путь — постепенная миграция
Первый шаг — понять текущее состояние проекта
Перед рефакторингом нужно провести анализ:
— какие тесты являются критичными для бизнеса
— какие части фреймворка чаще всего изменяются
— где находится дублирование
— какие компоненты создают больше всего проблем
После этого можно начинать переносить проект на более понятную архитектуру
Например, вместо тестов, где вся логика находится в одном классе:
— создание тестовых данных
— работа с API
— взаимодействие с базой
— управление браузером
— проверки результата
— ответственность постепенно разделяется между отдельными слоями
Тест становится только сценарием проверки:
«создать пользователя → выполнить действие → проверить результат»
А вся техническая реализация выносится отдельно:
1️⃣ DTO / Models — объекты для хранения и передачи данных
2️⃣ Service Layer — бизнес-операции: создание пользователя, оформление заказа, изменение состояния сущности
3️⃣ Client Layer — работа с внешними системами: API, базы данных, очереди
4️⃣ Page Object / UI Layer — взаимодействие с интерфейсом и локаторами
В результате тесты становятся проще читать и поддерживать
Например, если изменился API-контракт, то не нужно исправлять сотни тестов, а достаточно просто обновить один слой, который отвечает за работу с этим API
Следующий этап — внедрение правильных паттернов
Но важно не добавлять их просто ради красивой архитектуры, ведь каждый паттерн должен решать конкретную проблему:
— Page Object помогает поддерживать UI-тесты
— Builder упрощает создание сложных объектов
— Factory помогает управлять тестовыми данными
— Dependency Injection делает зависимости прозрачными
Главный принцип рефакторинга legacy-фреймворка:
Новый код должен сразу писаться правильно, а старый — постепенно переводиться на новую архитектуру
Пока часть тестов работает на старом подходе, новые модули уже могут использовать улучшенную структуру
Хороший AQA-фреймворк — это не тот, который написали один раз
Это система, которая может развиваться вместе с продуктом, оставаться стабильной и не превращать каждое изменение в риск для всего регресса | 773 |
