TGViewer
Channel Public Channel
Граничные Эквивалентности

Граничные Эквивалентности

@qa_hub_2gis

Авторский канал тестировщиков 2ГИC: QA, автоматизация, инженерная культура.

Если интересно, как делать качественные продукты и не страдать — добро пожаловать!
Subscribers
1.02K
Photos
280
Videos
6
Links
85
Recent Posts 17 shown
Post #501 99
➡️ Lightpanda: headless-браузер на Zig вместо Chromium

Обычно, когда нужен headless-браузер, вариантов немного: Chrome, Chromium или что-то на их базе. И почти всегда это тяжело — по памяти, по времени старта, по ресурсам в CI.

Lightpanda — попытка сделать браузер для автоматизации с нуля, а не очередную обёртку над Chromium. Написан на Zig, без графической части, заточен именно под headless-сценарии: рендер не нужен, нужен быстрый разбор страницы и выполнение JS.

Чем интересен:

• Разработчики заявляют существенно более низкое потребление памяти и более быстрое выполнение сценариев, чем у headless Chrome. В их crawler-бенчмарке при 25 параллельных задачах Lightpanda показал 123 MB peak memory и 4,81 с против 2,0 GB и 46,70 с у Chrome. Это результаты самого проекта, поэтому перед внедрением их стоит воспроизвести на своих страницах, версиях Playwright/Puppeteer и CI-раннерах.

• Есть поддержка CDP, так что привычные Puppeteer/Playwright-сценарии можно подключить без переписывания всего с нуля.

• Запускается как обычный бинарь или в Docker — удобно встраивать в пайплайны и в агентские сценарии.

Где может пригодиться тестировщику:

• Массовые проверки страниц, где не нужен реальный рендеринг и пиксель-перфект.
• Быстрые smoke-прогоны и сбор данных в CI, где важна скорость и экономия ресурсов.
• Скрейпинг и задачи для AI-агентов, которым нужен «браузер», но не нужен полноценный движок.

Важный нюанс: это не замена Chrome для UI-тестов. Если тесты зависят от реального layout/paint-пайплайна, скриншотов, visual regression, canvas/WebGL или Chromium-специфичного поведения, оставляйте их на Chromium. Для кроссбраузерной проверки по-прежнему нужны и другие целевые движки, например Firefox и WebKit. Lightpanda скорее про другой класс задач: там, где браузер нужен как быстрый исполнитель, а не как полноценная среда.

Проект открытый, так что можно спокойно потрогать руками и посмотреть, где он реально выигрывает у привычного стека.

Ссылки:
🔗 https://lightpanda.io/
🔗 https://github.com/lightpanda-io/browser

Пробовали что-то подобное в своих пайплайнах — ❤️
Only Chromium, другого не предлагать — 🤔

#qahub_tools #qahub_automation
  • 👍 5
  • ❤ 2
  • 🔥 1
  • 🤔 1
Post #500 239
💻 pip или uv?
С Python-зависимостями часто одна и та же история: код меняется быстро, а окружение собирается медленно.

Поэтому рядом с привычным pip всё чаще смотрят в сторону uv.

Если коротко:
• pip — стандартный способ ставить пакеты
• uv — инструмент, который быстрее работает с зависимостями, lock-файлом и синхронизацией окружения
• с pip установка, фиксация версий и поддержание одинакового окружения часто живут в нескольких отдельных шагах
• uv пытается собрать это в более цельный сценарий: pyproject.toml, lock-файл и предсказуемая сборка

Что это даёт на практике:

➡️локальное окружение поднимается быстрее
➡️CI тратит меньше времени на пересборку
➡️проще держать одинаковые зависимости у всех
➡️меньше сюрпризов в стиле «у меня работает»

При этом pip никуда не делся: для простых сценариев его часто более чем достаточно.
Но если в проекте начинают болеть скорость сборки и воспроизводимость окружения, у uv быстро появляются сильные аргументы.

Совсем недавно мы это проверили на нашем проекте: перевели сборку на uv, и время подготовки e2e-окружения сократилось с 10+ минут примерно до полутора. При этом сам переход оказался довольно простым — большую часть текущего workflow удалось сохранить. А ещё заметили, что сборка на Ubuntu проходила быстрее, чем на Alpine, из-за различий в доступных Python wheels для glibc и musl.

Подробнее: https://github.com/astral-sh/uv

Если тоже устали ждать сборку зависимостей — 🔥
Если pip пока полностью устраивает — 💚

#qahub_tools #qahub_automation
  • 🔥 5
  • 👍 3
  • ❤ 2
Post #499 337
Эффект бабочки в программировании. Делимся историями, где, казалось бы, небольшая ошибка в коде привела к масштабным последствиям.

1️⃣ Ариан-5. 64-битное число, которое не влезло в 16 битную переменную.
64-битное значение горизонтальной скорости с плавающей запятой переполняло 16-битную переменную. В Ариан-4 такой скорости никогда не было и ошибка перетекла в Ариан-5. По итогу в программном обеспечении ракеты произошло целочисленное переполнение.
Из-за ошибки ракета-носитель была подорвана на 34-й секунде полёта, что стало одной из самых дорогостоящих компьютерных ошибок в истории.

Вывод: даже если в новой системе используется работающий код из старой, его всё-равно необходимо тщательно проверять

2️⃣ Cloudflare: регулярное выражение, которое съело все CPU
Инженер Cloudflare написал правило для WAF (Web Application Firewall). В нём было неудачное регулярное выражение, которое на определённых входных данных вызывало катастрофический возврат (catastrophic backtracking) — время выполнения росло экспоненциально На сложных запросах движок начинал перебирать миллиарды вариантов вместо одной проверки.
Последствия: 2 июля 2019 года CPU всех серверов Cloudflare по всему миру встали на 100%. 27 минут половина сайтов на Cloudflare возвращали ошибку 502. А защита от превышения CPU была случайно удалена за несколько недель до этого

Вывод: регулярки стоит тестировать в том числе на производительность, на длинных и сложных строках, а не только на валидных данных.

3️⃣ Knight Capital: старый тестовый код, который ожил Разработчики обновляли торговую систему SMARS. В одном из серверов случайно остался старый тестовый код Power Peg, написанный ещё в 2003 году. Этот код должен был проверять работу алгоритма, но никогда не использовался в реальной торговле. Ошибка в деплое: одна из восьми машин не получила новую версию и продолжила работать со старым кодом. А в старом коде была функция, которая не распознавала, когда заявки уже исполнены, и продолжала отправлять их снова и снова.
В результате 1 августа 2012 года, в 9:30 утра, бот отправлял заявки (скупал акции) быстрее, чем они исполнялись, и не видел, что они уже исполнены. За 28 минут Knight Capital потеряла $440 млн. Инженерам пришлось топорами выдергивать сетевые модули серверов в дата-центре, чтобы остановить алгоритм. Компания потеряла 53% капитализации и вскоре обанкротилась.

Вывод: Мёртвый тестовый код, оставленный в продакшене, — это бомба замедленного действия. Тщательно проверяйте, что именно уходит в деплой, и не храните старые версии там, где они могут случайно запуститься.
  • 🤯 4
  • 😱 3
  • ❤ 2
Post #498 422
Сегодня День программиста!

Поэтому на минутку забываем про «а у меня не работает» и поздравляем своих разработчиков💚

Любимых. Тех самых, которые говорят: «это не баг».

А если не сегодня - завтра тоже считается. Хороший понедельник сам себя не сделает 🏆
  • 🔥 11
  • 👍 5
  • 🎉 5
  • ❤ 1
Post #497 1.56K

This post (sticker, poll or similar) has no web preview. Open in Telegram

  • ❤ 5
  • 😁 5
Post #496 418
💚 Дайджест свежих релизов: август

➡️ Python
Документация Python официально на русском. Перевод опубликован на docs.python.org и сделан сообществом. Теперь джуниоры могут ссылаться на официальный русский источник. Также появился общий стандарт переводной терминологии. Перевод будет обновляться параллельно с оригинальной документацией.

➡️ Polars 1.44.0
Основные улучшения в SQL: кэширование общих табличных выражений, корректная обработка join и подзапросов. Поддержка Iceberg расширена за счёт эволюции схем и других возможностей. Исправлены проблемы с вложенными списками в Arrow. Частично deprecated устаревшие параметры.

➡️ pip 26.2
Теперь учитывается Cache-Control индекса, что влияет на обновление недавно опубликованных пакетов. Добавлены флаги для изолированных сборок, поддержка Python 3.15, а также исправления безопасности.

➡️ Playwright 1.63
Test Locks и новые API. Появилась возможность создавать именованные lock для тестов. Тесты с одним lock не запускаются параллельно. Улучшен поиск элементов во фреймах. Добавлен метод .visible() в локаторы, расширены параметры тестовых шагов и отчётов. Обновлены браузеры и исправлены баги.

Кто уже попробовал работать с lock в Playwright? А кто впервые увидел python docs на русском? Дайте знать, что оказало влияние именно на вашу практику!

#qahub_tools #qahub_automation #qahub_rubrics
  • 👍 3
  • 🤩 1
Post #492 410
🤩Рубрика «Нетипичный QA», в которой мы рассказываем истории инженеров, чей путь в тестирование был далек от классического сценария, и показываем, что в этой сфере есть место творчеству, нестандартному мышлению и опыту из совершенно разных областей.

#qahub_rubrics
  • 👍 2
Post #491 493
🏆 Иногда лучшая оптимизация — это не новый тул, а пара хоткеев в старых добрых Confluence и Jira

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

📝 Confluence: редактирование и форматирование

Основное:
E — редактировать страницу
Ctrl + S — сохранить
/ — Поиск

Заголовки и текст:
Ctrl + 1..6 — заголовки H1–H6
Ctrl + B — жирный
Ctrl + I — курсив
Ctrl + K — ссылка

Навигация:
G, затем D — перейти на дашборд Confluence
Shift + ? — открыть встроенную подсказку всех хоткеев

⏱️ Jira: навигация и работа с задачами
Навигация:
G, затем D — дашборд
G, затем I — список задач (Issues)
G, затем P — проект
/ — фокус в поиске

Работа с задачей:
C — создать задачу
E — редактировать
A — назначить на пользователя
M — добавить комментарий L — добавить метку
S — поделиться
. (точка) — окно быстрых действий/Поиск (transition, assign, log work и др.)

Если вы уже пользуетесь хотя бы половиной из этого — 💚
Если открыли для себя что-то новое — 🔥

А какими хоткеями в Jira/Confluence вы пользуетесь чаще всего? Закидывайте свои must have в комменты — дособерём шпаргалку вместе

#qahub_tools #qahub_edu
  • ❤ 8
  • 🔥 5
  • 👍 1
Post #490 415
Подборка для ручного тестирования

В дополнение к предыдущему посту собрали расширения, которые помогают в рутине тестировщика и экономят время.

Скриншоты и запись экрана
1️⃣ Scrnli — быстро зафиксировать баг с видео и сразу вложить в тикет.

Тестовые данные
2️⃣ Bug Magnet — граничные значения под рукой, не нужно каждый раз придумывать их в голове.
3️⃣ Fake Filler — заполняет форму с учётом типа поля. Спасает, когда полей много, а времени мало.
4️⃣ Fake File Generator — файл нужного размера за пару кликов. Проверка лимитов на загрузку перестаёт быть болью.

Нагрузка и безопасность
5️⃣ Catch Point — смотрим, как продукт ведёт себя под нагрузкой, до того как это заметят пользователи.
6️⃣ OWASP Penetration Testing Kit — тестовые атаки на продукт, чтобы не было сюрпризов в проде.
7️⃣ OWASP ZAP — ищем уязвимости, в том числе в промптах.

Чек-листы
8️⃣ TestPad — инструмент для создания чеклистов, он платный, но если ручных проверок много, окупается быстро.

Если выбирать одно — начните с Bug Magnet: оно экономит время с первого дня.

#qahub_tools
  • 🔥 5
  • 👍 4
  • ❤ 1
Post #489 337
👀 Открываем ваши закрома!

Какой инструмент, расширение или сервис вы используете в работе и теперь не понимаете, как жили без него?

Для тестирования, дебага, работы с API, тестовыми данными - вообще чего угодно.

Кидайте в комментарии: название (ссылка) + в двух словах чем полезен ↙️
Post #487 382
🏆 Разбор рубрики «Найди баг»: что сломалось в соцсети Looksy?

Вчера мы просили вас найти ошибки на экране новой соцсети. Вы отлично справились! В следующий раз сделаем посложнее.
Делимся ответами:

1️⃣ Z-Index и наложение в Stories (верстка)
В верхней панели сторис аватарка пользователя alinamoon наложилась прямо на соседний профиль. Сломался gap / margin в горизонтальном скролле.

2️⃣ Ошибка UX-логики (самоподписка)
Пост выложен от имени «Вы», но справа отображается активная синяя кнопка «Подписаться» - система позволяет подписаться на самого себя.

3️⃣ Баг видеоплеера (таймер)
Прогресс-бар показывает время 03:45 / 01:20. Текущее время воспроизведения превышает общую длину ролика.

4️⃣ Time-Travel / серверная ошибка
Под плеером написано: «Опубликовано через 2 часа». Метка времени ушла в будущее - похоже на сбой часовых поясов: сервер записал время в UTC, а клиент отобразил его в локальной зоне без конвертации.

5️⃣ Аномалия метрик (логика данных)
У поста 14.2 тыс. лайков, но при этом 0 просмотров. Асинхронный счетчик просмотров «залип» или отвалился микросервис аналитики.

6️⃣ Несовпадение аватарок (данные профиля)
В историях у текущего пользователя одна аватарка, а в публикации - другая. Профиль подтягивает данные из разных источников, и они не синхронизированы.

📝 Какой баг вы заметили первым и почему именно он бросился в глаза?
Ждём ваши версии в комментариях ↙️

#qahub_fun #qahub_rubrics
  • 🔥 5
  • 👎 2
Post #486 366
🔍 Сколько багов видишь на экране? | Выпуск #3

Представь: готовим к релизу соцсеть Looksy. Перед закрытым бета-тестом разработчики были уверены, что учли всё, и заверили: лента работает идеально.

Наш QA-инженер открыл приложение и на одном экране нашёл 6 багов.

📸 Скриншот ниже - это лента постов, ошибки спрятаны в ней.
Задача: найди все 6 багов на скриншоте. Код уходит на прод завтра - успеешь?

Пиши в комментариях, что нашёл 👇

Полный разбор с ответами выложим завтра.
Нашёл все шесть — 🔥 Нашёл меньше — 🤔

#qahub_fun #qahub_rubrics
  • 🔥 13
  • 🤔 4
  • 👎 1
  • 😱 1
Post #485 435
Сегодня — 20 августа — Международный день лени!

План был амбициозный: подготовить историю праздника, рассказать про пользу лени для изобретений, привести примеры «ленивых» инноваций…

Но нам лень.
Так что просто: с праздником.
Устали, пока печатали.
  • 😁 14
  • 🎉 6
  • ❤ 5
  • 👍 1
  • 🔥 1
Post #484 519
🤩Искали способ эмулировать движение пользователя — нашли его в Chrome

Если вы тестируете карты, маршруты, локализацию или любые сервисы, завязанные на геолокации, многие сценарии можно проверить прямо в браузере — без VPN, эмуляторов и помощи коллег из другой страны.

Для большинства задач достаточно встроенных возможностей Chrome.

В DevTools → More tools → Sensors можно:

• Выбрать готовую локацию или задать свои координаты;
• Сменить часовой пояс и регион;
• Настроить Accuracy (начиная с Chrome 138) и проверить, как приложение ведёт себя при неточном GPS. Это полезно для сценариев, где приложение реагирует на местоположение пользователя. Например, даже погрешность в несколько десятков метров может изменить работу геофенса или повлиять на определение ближайших объектов.
⚠️ Подмена геолокации работает только пока открыты DevTools.

Но если нужно проверить уже не одну точку, а движение по маршруту, встроенных возможностей становится недостаточно.

Для этого есть бесплатное open source-расширение DevTools Advanced Location Override. Оно позволяет:

• Загружать заранее подготовленные маршруты в форматах KML, GPX и GeoJSON;
• Воспроизводить движение по маршруту в реальном времени;
• Менять скорость движения — от 0.5× до 10×;
• Добавлять случайную погрешность GPS, скорости и высоты, чтобы приблизить сценарий к реальным условиям.
Например, можно загрузить GPX-трек маршрута, ускорить его воспроизведение и проверить, как приложение реагирует на вход в геозоны, перестроение маршрута или обновление ближайших объектов по мере движения.

Если узнали что-то новое — 💚
Если уже используете эти возможности в работе — 👍

#qahub_tools
  • 🔥 11
  • 👍 2
Post #483 463
💚QA + ИИ: как использовать нейросети для практики, а не только для поиска ответов

Часто нейросети используют как продвинутый поиск. Но для QA иногда полезнее другой режим: ИИ как наставник, который не дает готовое решение сразу, а ведет вопросами и дает практику под ваши пробелы.

Вот 4 идеи, как превратить ИИ в тренажер:

🟢Интерактивный код-ревьюер
Вместо запроса «напиши код» попросите ИИ работать как строгий тимлид. Отправьте свой вариант (например, обработка исключений или циклы), а ИИ пусть критикует архитектуру, читаемость и PEP 8, задает наводящие вопросы и не показывает финальный код сразу.

🥸 Капризный продакт-менеджер
Одна из сложных частей тестирования — находить «серые зоны» в ТЗ. Дайте ИИ описание фичи и попросите играть роль заказчика, который сам до конца не определился. Вы предлагаете эквивалентные классы и границы, а ИИ проверяет логику вопросами: «Что будет, если пользователь сделает вот так?».

🟢 Эмулятор «сломанной» базы данных
Написать учебный SQL просто. Сложнее — понять, почему в реальной консоли все падает. Попросите ИИ симулировать СУБД: вы присылаете запрос, а он возвращает ошибку или показывает «битую» выборку. Дальше чините запрос итеративно, как в реальной отладке.

😲 Симулятор технического собеса
Вместо статичных списков попросите ИИ провести интерактивный скрининг по QA, сетям или API. Пусть задает вопросы по одному, оценивает ответы и углубляется там, где вы плаваете — как это делает лид на интервью.

Лайфхак
В конце обучающего промпта часто помогает добавить:
«Не пиши готовый правильный ответ и код, пока я сама тебя об этом не попрошу. Задавай наводящие вопросы».
Обычно это переключает фокус с копирования на реальную тренировку мышления.

Если такой формат тренировки откликается — 💚
Если пока ближе классические разборы — 👍

#qahub_ai #qahub_edu #qahub_blogpost
  • ❤ 9
  • 👍 9
  • 🔥 3
Post #482
Граничные Эквивалентности pinned «😲 Навигация по каналу Если хотите найти посты на конкретную тему — просто нажмите на нужный хештег 🛠 Инструменты и технологии #qahub_tools — инструменты, библиотеки, IDE и полезный тулинг #qahub_automation — автоматизация тестирования #qahub_ai — AI, ML…»
Older posts →

About this channel

How can I read @qa_hub_2gis without a Telegram account?
TGViewer shows the public web preview Telegram publishes for Граничные Эквивалентности: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does Граничные Эквивалентности have?
Граничные Эквивалентности (@qa_hub_2gis) has 1.02K subscribers on Telegram, refreshed roughly every 30 minutes.
Does Граничные Эквивалентности know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →