Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
9.11K subscribers
1.94K photos
237 videos
107 files
3.41K links
Все самое полезное для тестировщика в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/12538d6f

Работать у нас: https://job.proglib.io/

Для обратной связи: @proglibrary_feeedback_bot
Download Telegram
🕵️‍♂️ Как тестировать приложение без кода и документации

Нет кода. Нет документации. Нет онбординга. Зато есть прод и пользователи.

🆚 Это классический кейс black-box тестирования: вы видите только поведение системы и её результат для пользователя.

Ваша задача — не «угадать, как должно быть», а восстановить логику работы через наблюдение, гипотезы и эксперименты.


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

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤩3🥰2👍1
🔔 Разбираемся с вебхуками

Вебхук — это когда система сама отправляет HTTP-запрос при наступлении события. Вы не опрашиваете API постоянно, а получаете уведомление сразу.

Пользователь оплатил → платёжная система отправляет POST с `status: paid` → ваша система обновляет заказ.


Что проверять:

— корректность метода и формата (POST, JSON)
— обработку дублей (вебхук может прийти дважды)
— идемпотентность операций
— проверку подписи/токена
— таймауты и логирование


⚠️ Частые баги:

— двойная обработка события
— падение при неожиданных полях
— отсутствие валидации подписи

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5🥰3❤‍🔥2🙏1
Кейс: кнопка «Сохранить» нажата, данные пропали

Система отвечает 200 OK. Пользователь уверен: всё сохранилось. Обновляет страницу — изменений нет.

Что происходит на самом деле

🟡 Запрос уходит асинхронно
🟡 Пользователь сразу закрывает вкладку
🟡 fetch не дожидается ответа
🟡 Сервер не успевает обработать данные

Happy-path:
— медленный пользователь
— стабильный интернет
— вкладка не закрывается

Реальность:
— автозакрытие
— мобильная сеть
— свайп «назад»

💡 Если действие критично — UI должен блокировать выход или явно подтверждать сохранение.

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#разбор_полетов
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰5👍2👾2😢1
🔗 Appium: полезные фишки, которые редко используют

Большинство QA используют Appium как «кликалку». А вот что реально помогает в работе:

1️⃣ Поиск элемента по картинке

Когда локаторы ломаются (canvas, карты, кастомный UI) — Appium умеет искать элемент по изображению, а не по DOM.


Полезно, когда ничего другого не работает.

2️⃣ Выполнение ADB-команд прямо из теста

Из теста можно:
• очистить данные приложения
• включить/выключить сеть
• собрать логи


Без shell-скриптов и ручных шагов.

3️⃣ Менять поведение Appium во время теста

Не перезапуская сессию:
• увеличить ожидания
• изменить стратегию поиска
• стабилизировать flaky-тест


Это спасает в CI.

4️⃣ iOS: не используйте XPath

predicate и class chain:
• быстрее
• стабильнее
• меньше падений


XPath — почти всегда худший выбор.

5️⃣ Appium 2 — это плагины

Можно подключать только нужные возможности, а не «всё сразу». Проще поддерживать, меньше багов.


📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#тест_драйв
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰3🔥1😢1
🙂 Почему QA должен уметь говорить «нет»

«Нет» в тестировании — это не вредность характера. Это про то, чтобы не брать на себя чужую ответственность.

🟡 Когда «да» создаёт проблемы:

— фичу без требований невозможно нормально проверить
— «быстро протестируй, потом доделаем» превращается в вечный костыль
— релиз без времени на тесты — это рулетка
— баг называют minor, а он на самом деле ломает половину функционала

Как нормально отказать:

— «Без критериев приёмки я не пойму, что именно проверять»
— «Без логов я не смогу воспроизвести баг»
— «За это время я успею только smoke, полноценное тестирование не влезет»

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍4🥰2😢1
Roadmap: от автотестов к автономным агентам

Тестирование становится умнее. ИИ-агенты способны сами писать сценарии, находить баги и предлагать варианты исправления кода.

Ваш план развития:

🔹 основы работы с LLM и промпт-инжиниринг для QA;

🔹 создание агентов для автоматизированного поиска дефектов;

🔹 разработка мультиагентных систем для полного цикла тестирования;

🔹 внедрение ИИ в CI/CD пайплайны.

Курс «Разработка ИИ-агентов» поможет вам освоить инструменты будущего и создать реальные AI-решения.

🚀 Обновить свой стек

При покупке до 19 января — ещё два курса в подарок по акции «3 в 1»!
🤩4🥰1
Junior_Manual_QA_Interview_Questions.pdf
25.2 KB
🎯 Готовитесь к собеседованию на Junior Manual QA?

Составили полный список ключевых вопросов, которые чаще всего встречаются на интервью: от основ тестирования и техник тест-дизайна до инструментов и личных качеств.

➡️ Используйте его, чтобы:

— повторить базовые понятия,
— потренироваться в практических задачах,
— подготовить свои примеры и истории для собеседования.

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#артефакт
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4🤩3🥰2
🔥 Flutter + Appium: почему автотесты ломаются

Flutter всё чаще появляется в мобильных проектах — и почти всегда приносит вопросы для QA. Элементы «не находятся». XPath ломается. Inspector и реальное устройство ведут себя по-разному. Тесты зелёные, а прод нестабилен.

Проблема не в Appium и не во Flutter. Проблема — в стратегии тестирования.


🔤 В карточках:

— где Flutter усложняет автотесты
— почему Appium не решает всё
— какие приёмы реально работают
— как снизить флейки и сохранить контроль

📌 Сохраните, если тестируете Flutter-приложения или работаете с E2E.

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#тест_драйв
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
😍3🥰2👍1
🍿 «Но тесты же прошли!» — история бага, который E2E не заметили

🔴 Пользователь видел:

Нажал «Оплатить» → экран мигнул → снова корзина  
Решил «не нажалось» → тапнул ещё раз → опять ничего


🔴 Тесты видели:


Кнопка найдена
tap() выполнен
Переход на следующий экран
Test passed


🔤 Реальность:

Кнопка с анимацией + медленная сеть = race condition  
Второй клик отменял первый API-запрос
Backend возвращал 409, UI молча откатывался назад


💡 Почему тесты не поймали:

1. Проверяли экран, а не результат — смена UI ≠ созданный заказ
2. Не тестировали double tap — в тестах всегда один идеальный клик
3. Не ждали завершения запроса — только waitForElement
4. Flutter-специфика — кастомные виджеты с анимацией ≠ нативные кнопки

Что исправили:

→ Проверка через API: заказ действительно создан

→ Тест на double tap с задержкой 200ms

→ Network throttling в CI (slow 3G)

→ Debounce на кнопке + disabled состояние

💬 А у вас были случаи, когда тесты проходили, а баг уходил в прод?

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#разбор_полетов
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5🥰2😢2
💬 WebSocket на пальцах

☝️ Это HTTP-polling — клиент постоянно спрашивает «есть что-то новое?». Неэффективно и медленно.

WebSocket — это телефонный звонок:

Один раз соединился → канал открыт → оба могут слать данные когда угодно → пока кто-то не отключится


HTTP = SMS (запрос → ответ → конец)
WebSocket = открытая линия связи

🔴 Где встречается:

Чаты, уведомления, онлайн-игры, биржевые котировки, Google Docs Всё, где нужна мгновенная двусторонняя связь

🔤 Что тестировать:

 Обрыв связи — переподключается ли автоматически?  
Смена сети — WiFi → 4G → соединение живое?
Порядок сообщений — не перепутались ли?
Таймаут — долгое бездействие → отвалилось?


Проверка: Chrome DevTools → Network → фильтр WS

📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤔3🥰2
📕 Шпаргалка: HTTP-коды ответа

100–199

Запрос принят, сервер ещё работает. Результата нет.


200–299

Запрос выполнен.
⚠️ 200 OK — не гарантия корректной бизнес-логики.


300–399

Перенаправление. Клиенту нужно перейти по другому адресу.


400–499

Ошибка клиента. Запрос неверный или нет прав доступа.
Часто: 400, 401, 403, 404, 422.


500–599

Ошибка сервера. Запрос корректный, сервер не смог обработать.
Часто: 500, 502, 503, 504.


📍 Навигация: [Вакансии]

🐸 Библиотека тестировщика

#артефакт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🥰3😢1
Как в одной результирующей таблице получить среднюю зарплату работников

👇 Правильный ответ (нажми, чтобы прочитать):

Используйте агрегатную функцию AVG():

```
SELECT AVG(salary) AS avg_salary
FROM employees;```

📌 Такой запрос вернёт одну строку с общей средней зарплатой.

Если нужна средняя зарплата по отделам — добавьте группировку:

```
SELECT department, AVG(salary) AS avg_salary
FROM employees
GROUP BY department;```

— AVG() игнорирует NULL
— без GROUP BY — один результат
— с GROUP BY — несколько строк, но один результатный набор


🐸 Библиотека тестировщика

#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥53🥰2😢1
«Этот манёвр будет стоить нам 51 год...»

QA-инженер без знаний Python и алгоритмов рискует остаться на ручном тестировании навсегда. Не ждите, пока автоматизация закроет двери: время прокачиваться в AI и разработке.

Забирайте обучение в Proglib Academy по старой цене до понедельника:

— Разработка ИИ-агентов
— Математика для разработки AI-моделей
— ML для старта в Data Science
— Математика для Data Science
— Специалист по ИИ
— Алгоритмы и структуры данных
— Программирование на Python
— Основы IT для непрограммистов
— Архитектуры и шаблоны проектирования

Выбрать направление

⚠️ Цены вырастут 19 января
🥰3🤩1