Библиотека тестировщика | 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
🔥 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
🔍 10 эвристик юзабилити Нильсена за 14 минут

Быстрый ввод в базовые принципы UX, которые полезны при тестировании интерфейсов.

✍🏼 Эвристики помогают замечать типовые UX-проблемы, формулировать баги без субъективных оценок и структурировать UI-чек-листы.

Хорошая отправная точка для UI- и exploratory-тестирования.


🔗 Смотреть по ссылке

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

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

#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
3🤩2👍1
📌 Тренажёры для практики Git и GitHub

Подборка площадок, где можно безопасно и осмысленно прокачать Git-навыки — от первого PR до регулярной контрибуции в open source.

🟣 First Contributions

Простой и понятный вход в open source. Пошагово проводит через первый pull request без давления и токсичности.

🟣 GitHub Skills

Официальные интерактивные курсы от GitHub: Issues, Pull Requests, Actions, Pages. Всё в формате «сделал — увидел результат».

🟣 Up-for-Grabs

Каталог open source-проектов с задачами для начинающих. Удобно, если не знаете, куда идти контрибьютить.

Эти ресурсы помогают перейти от «я знаю Git в теории» к реальной работе с репозиториями, PR и ревью — спокойно и без стресса.


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

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

#release_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
5🥰3🔥2🤩1
📕 Тест на знание Git

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

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

🔗 На сколько вопросов сможете ответить вы?

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

#стендап_qa
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩3🥰2
👍 REST-вопрос, на котором ошибаются

В REST используются два направления передачи данных:

1️⃣ Клиент → сервер (Request)

Клиент отправляет данные в HTTP-запросе:

• URL (path parameters, query parameters)
• заголовки запроса
• тело запроса (POST / PUT / PATCH)


2️⃣ Сервер → клиент (Response)

Сервер возвращает результат обработки запроса:

• HTTP-статус
• заголовки ответа
• тело ответа (обычно JSON)


REST основан на модели request–response и не предполагает постоянной двусторонней связи.

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

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

#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
4🤔3🤩2🥰1
🐳 Docker для тестировщика

Docker считают инструментом «для DevOps». А это просто способ не возиться с настройкой окружений и забыть про споры

«у меня работает».


🔢 С ним поднимаете стенд за пару минут, воспроизводите баги в том же окружении, что у разраба, сразу видите, где косяк — в коде или конфиге. Плюс уверенно чувствуете себя с CI и релизами.

🔗 Шпаргалка по ссылке

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

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

#артефакт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42🥰2🤩1
Тест на внимательность: сегодня дешевле

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

Проверить курсы на прочность
🤩3🥰2
🎲 Задача дня: регистрация без дублей

Регистрация нового пользователя:

POST /api/register


Отправьте одинаковый запрос 5 раз одновременно (интервал 0 мс, один email).


{
"email": "test123@example.com",
"password": "Pass123!"
}


Что должно произойти:

👍 — создан ровно 1 пользователь
🥰 — первый запрос: 201, остальные: 409
❤️ — допустимо: все ответы 200/201, но с одним и тем же userId
🔥 — в БД одна запись с этим email

Это баг, если:

💀 — создано 2+ аккаунтов
💀 — все 5 запросов вернули 201 с разными userId
💀 — ошибка 500 или зависание

Проверка в бд:

SELECT COUNT(*) FROM users WHERE email = 'test123@example.com'


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

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

#стендап_qa
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰11🔥32👍2🤩1
Что такое KISS

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

KISS (Keep It Simple, Stupid) — принцип, согласно которому решения, код и тесты должны быть максимально простыми и понятными.

В QA это означает: писать тест-кейсы без лишних шагов, избегать сложных проверок там, где достаточно базовой, и не усложнять автотесты, если это не даёт дополнительной ценности.

Простые тесты легче поддерживать, они стабильнее и быстрее выявляют дефекты.


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

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

#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰6😁2🤩2