Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты
Ir al canal en Telegram
Все самое полезное для тестировщика в одном канале. Наши курсы: https://clc.to/wlBkTA По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/12538d6f Для обратной связи: @proglibrary_feeedback_bot
Mostrar más9 102
Suscriptores
-124 horas
-147 días
-2030 días
Archivo de publicaciones
📁 Кнопка «Удалить аккаунт», которая ломала сервер
Пользователь написал в поддержку:
"Пытаюсь удалить аккаунт, но вылетает ошибка. Уже 10 раз пробовал — не работает."Оказалось — запрос доходил до сервера, но падал с 500 ошибкой. 🔍 Суть проблемы:
UI отправлял запрос на удаление, но бэкенд не мог его обработать. Frontend показывал общую ошибку «Что-то пошло не так», а в логах — 500 Internal Server Error. Что происходило на сервере: — запрос приходил корректно — начиналось удаление связанных данных — падало на внешнем ключе (foreign key constraint) — откат транзакции → ничего не удалялось Почему падало: — не учли каскадное удаление из связанных таблиц — не обработали зависимости (комментарии, лайки, подписки) — забыли про данные в очередях и кэше — не протестировали на аккаунтах с реальной активностью Итог: пользователь не мог удалить аккаунт + данные оставались в системе + нарушение GDPR.👀 Почему так бывает: — тестировали на "чистых" тестовых аккаунтах — не проверили связи в БД перед реализацией — не добавили обработку cascade delete — пропустили проверку логов при тестировании ❓ Проверяете логи и ошибки на бэкенде: 👍 — Да, смотрю логи и статусы ответов ❤️ — Только если UI показал ошибку 😁 — Доверяю, что бэкенд работает 🔥 — Буду тестировать на «тяжёлых» аккаунтах с данными 🐸 Библиотека тестировщика #разбор_полетов
📌 Базовый чек-лист тестирования (core)
Этот список используют каждый день — вне зависимости от проекта, стека и роли. Если его нет в голове, всё остальное не имеет значения.
🔤 Что проверять всегда:
• Happy path и негативные сценарии Функция должна работать не только «как задумано», но и ломаться контролируемо. • Границы значений 0 / 1 / max / пусто / null — именно здесь чаще всего живут баги. • Валидация ввода Тип данных, длина, формат. Никакой веры фронту — только факты. • Ошибки сервера и сообщения пользователю 500-е, таймауты, сетевые ошибки. Пользователь должен понимать, что произошло. • Повторные действия Double click, refresh, кнопка Back. Приложения ломаются не от кликов, а от повторов. • Сохранение состояния Перезагрузка страницы, смена вкладки, возврат назад. Состояние не должно «исчезать».🐸 Библиотека тестировщика #артефакт #intern
❓ Что такое порт
Порт — это номер, который показывает, какому приложению на устройстве предназначен сетевой запрос.
Если по-простому:
IP-адрес — это дом, порт — конкретная дверь в этом доме.📦 Один сервер → один IP → тысячи портов Каждый порт может быть занят своим сервисом: • 80 / 443 — веб-сайты • 22 — SSH • 3306 — MySQL Когда браузер открывает сайт, он стучится не просто в сервер, а в конкретный порт, где слушает нужное приложение. ⚠️ Почему это важно для qa: — Сервис может быть доступен, но не на том порту — Баги «не открывается», «таймаут», «connection refused» часто связаны именно с портами — Разные окружения = разные порты 🐸 Библиотека тестировщика #теория_на_пальцах
Какой тип дефекта сложнее всего доказать команде?
🛠 Полезные фишки Chrome DevTools — часть 1
🟡 Скриншоты при загрузке страницы
Зачем:
Отлавливать баги при построении страницы: мигающие элементы, спиннеры, прогресс-бары, проблемы с initial render и CLS.
Как включить:
F12 → Network → ⚙️ → Capture screenshots → Ctrl+RРезультат: Лента скриншотов с таймкодами — видно, когда и в каком порядке появляются элементы. 🟡 Поиск неиспользуемого кода Зачем: Найти лишний CSS/JS, который замедляет загрузку и может маскировать баги. Как найти:
F12 → Ctrl+Shift+P → Show Coverage → Start instrumenting coverageРезультат: Таблица с процентом использованного и неиспользованного кода. Красным отмечен код, не выполнявшийся в текущем сценарии. Где помогает: — лишние стили и шрифты — подключённые, но неиспользуемые библиотеки — избыточный CSS после редизайнов ⚠️ Coverage показывает не «плохой код», а код, который не был задействован при проверке. 🟡 Сохранение изменений локально Зачем: Вносить правки в HTML/CSS/JS так, чтобы они сохранялись после перезагрузки страницы. Как настроить:
F12 → Sources → Overrides → Select folder for overrides → выбрать папкуКак сохранить файл:
Network → нужный файл → клик правой кнопкой → Save for overridesПример сценария:
Sources → найти файл → внести правку → Ctrl+S → обновить страницуИзменения применяются автоматически. ⚠️ Ограничения: — не сохраняет правки напрямую из вкладки Elements — работает только с файлами из Sources — CSS редактируется через Styles, если файл зафиксирован в Overrides ❗️ Полезные горячие клавиши
F12 — открыть DevTools Ctrl+Shift+C — инспектор элементов Ctrl+Shift+P — Command Menu Ctrl+Shift+M — Device Toolbar Ctrl+R — перезагрузка страницы Ctrl+S — сохранить изменения Ctrl+F — поиск🐸 Библиотека тестировщика #тест_драйв
🔍 Загрузилась ли картинка с сервера или браузер схитрил
Всё дело в кэше браузера — невидимом помощнике, который хранит копии файлов на вашем компьютере. Но как понять, что именно происходит «под капотом»? Откуда браузер взял эту картинку — скачал с сервера или достал из своих запасов?
В статье разбираем:
✅ Как увидеть в DevTools, откуда загрузился файл
✅ Где спрятан весь кэш браузера и как его посмотреть
✅ Что означают загадочные заголовки If-none-match, Etag и статус 304
🔗 Читать по ссылке
🐸 Библиотека тестировщика
#карьерный_трек
13.12 testerlib
🔎 16 декабря в 20:00 пройдет бесплатный урок, где мы расскажем про особенности тестирования браузерных игр и игр в социальных сетях. Весело и познавательно!
❗️Браузерные и соцсетевые игры — особый сегмент: они работают в ограниченных условиях, зависят от браузера и платформы, имеют специфичные механики монетизации и взаимодействия. На уроке разберём специфические для браузерных игр кейсы и отличия в тестировании игр в социальных сетях от тестирования веб игр.
🔥 Вы увидите реальные примеры багов, узнаете, какие инструменты экономят время. 🔥
📚 Что узнаем и изучим:
✅ краткая история развития браузерных игр;
✅ особенности тестирования браузерных игр
✅ особенности тестирования игр в социальных сетях
✅ примеры и кейсы
🕘 Запишитесь на бесплатный урок и проведите вечер с пользой:
https://clc.to/3-3ZXQ
Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576
Надеемся, у вас не так 🥺
🐸 Библиотека тестировщика
#прод_в_пятницу
📌 Postman добавил контроль синхронизации OpenAPI и коллекций
Можно управлять синхронизацией между OpenAPI 3.0 и коллекциями, выбирать, синкаются ли параметры и request body.
Почему важно QA:
🟡 автотесты не «ломаются» при обновлении спеки;
🟡 понятнее, что является источником истины: спека или коллекция.
📎 Источник
🐸 Библиотека тестировщика
#release_notes
📆😱 QA Advent 2025 — 31 день практики
Новогодний адвент-календарь для тестировщиков от Артёма Русова.
Уже открыто (дни 1–12):
📌 Каждый день декабря открывается новый материал.
🐸 Библиотека тестировщика
#карьерный_трек
💳 Шпаргалка по командам Linux
📁 Базовая навигация
pwd # где я нахожусь
ls -la # что тут есть
cd /path/to/folder # перейти туда
cd .. # назад
📝 Смотрим логи
tail -f app.log # смотреть лог в реальном времени
tail -100 app.log # последние 100 строк
grep "ERROR" app.log # найти ошибки
grep -i "error" app.log # без учета регистра
🔍 Ищем по файлам
grep "текст" файл # найти в файле
grep -r "текст" ./папка # найти во всех файлах папки
find . -name "*.log" # найти все логи
🌐 Проверяем API/сеть
curl https://api.example.com # GET запрос
curl -X POST url -d '{"key":"val"}' # POST запрос
ping google.com # проверить доступность
📊 Быстрый анализ
grep "ERROR" app.log | wc -l # сколько ошибок
cat log | grep "404" | wc -l # сколько 404
tail -f log | grep "ERROR" # следить за ошибками
🔧 Процессы и порты
ps aux | grep java # найти процесс
lsof -i :8080 # что на порту 8080
kill 1234 # убить процесс
💾 Диски и память
df -h # сколько места на дисках
free -h # сколько памяти
В 90% случаев хватит:
- tail -f для логов
- grep для поиска
- curl для API
- ps aux | grep для процессов
🐸 Библиотека тестировщика
#артефакт✨ Как happy-path спрятал критический баг
Команда протестировала весь позитивный сценарий — авторизация, запрос, ответ, успех. Всё зелёное. В проде — падение сервиса.
Что оказалось:
Один негативный кейс ломал весь поток:
🟡 API возвращал ошибку 422 при пустом поле
🟡 Фронт обрабатывал только 200 и 400
🟡 Клиентский код попадал в «подвешенное» состояние
🟡 Очередь запросов росла → сервис ложился под нагрузкой
Тестировали happy-path → ничего не взорвалось Добавили негативные → воспроизвели падение за 30 секунд.
Happy-path не тестирует систему — только вашу веру в неё 🥲
🐸 Библиотека тестировщика
#разбор_полетов
🧠 Frontend vs Backend — в чем разница
Представьте интернет-магазин. Вы открываете сайт, видите товары, добавляете их в корзину — всё выглядит просто. Но внутри работает два мира.
🔵 Frontend — красивая обёртка
Кнопки, формы, карточки, анимации, цвета. Он работает в браузере и отвечает за внешний вид и удобство. Как кузов и салон автомобиля — красиво, понятно, удобно.
🔵 Backend — мощный двигатель
Когда вы нажимаете «Купить», backend проверяет логин, уменьшает остаток товара, считает итоговую сумму и сохраняет заказ. Это всё происходит на сервере — как двигатель под капотом.
❓ Как они взаимодействуют:
Frontend: «Покажи товары». Backend: ищет в базе и возвращает данные. Frontend: отображает их пользователю.Это постоянный диалог между интерфейсом и внутренней логикой системы 💬 🐸Библиотека тестировщика #теория_на_пальцах
📌 Hoppscotch — браузерная альтернатива Postman
Тестируй API прямо в браузере без установки тяжёлых приложений.
🧽 Что умеет:
REST, GraphQL, WebSocket, MQTT — всё в одном месте. Коллекции, переменные окружения, совместная работа.
🧽 Почему круто:
Опенсорс, быстрый, можно хостить у себя. Работает как PWA — устанавливается одним кликом.
Ссылка на GitHub
🐸Библиотека тестировщика
#тест_драйв
📎📎
Материал от GetAnalyst — создан для системных аналитиков, но критически важен для понимания всей команды разработки, включая QA.
🐸Библиотека тестировщика
#артефакт
👨💻 Кэширование: must-know для каждого тестировщика
Кэш — причина, почему первый запрос «думает» 2 секунды, а следующий летит за 20 мс. Почему данные на разных серверах отличаются. И почему «обновили, но не обновилось».
📌 Что внутри материала:
🟡 Стратегии кэширования — где данные могут застрять
🟡 Инвалидация — почему кэш устаревает и как это ловить
🟡 Холодный vs горячий кэш — источник «плавающих» результатов
🟡 Eventual consistency — что норма, а что дефект
🟡 Алгоритмы вытеснения — как кэш ведёт себя под нагрузкой
➰ Что это даст вам:
→ Перестанете считать багами нормальное поведение кэша → Научитесь правильно планировать тест-кейсы с учетом кэширования → Сможете объяснить разработчикам, почему «у меня работает» — не аргумент → Улучшите качество нагрузочного и интеграционного тестирования🐸Библиотека тестировщика #артефакт
🔥 Философский вопрос дня
Тестировщик нашел 0 багов за спринт. Он молодец или бездельник?🟢 Версия А: Команда крутая, разработка качественная, процессы отлажены. QA сделал свою работу ещё на этапе планирования и ревью. Это идеал! 🟢 Версия Б: Тестировщик плохо искал, не копал вглубь, прогонял только хэппи-пасы. Риск пропустить критические баги в прод. 🟢 Версия В: Баги есть, просто они не "багорепорт-worthy" – мелкие косяки, которые QA решил не засорять трекер. А теперь вопрос: Как ваш тимлид/менеджер отреагирует на такой спринт ❓ Голосуйте в комментах: 🤩 — Это успех 🌚 — Это подозрительно ❤️ — Зависит от контекста 🐸 Библиотека тестировщика #стендап_qa
🤔 Вопрос с собеседования
«Где взять ожидаемый результат для тестирования?»
📌 Ожидаемый результат берём из:
— требований и acceptance criteria,
— макетов и спецификаций,
— API-контрактов,
— бизнес-правил,
— поведения текущей версии,
— уточнений аналитика/заказчика.
Если документа нет — фиксируем предположение и согласовываем.
🐸Библиотека тестировщика
#карьерный_трек
🛫 REST API Generator — моментальное создание тестовых API-эндпоинтов
С его помощью можно быстро создать, не занимаясь настройкой и установкой:
— GET, POST, PUT и DELETE запросы;
— автоматически сгенерированные данные для тестирования;
— работу через HTTPS с поддержкой CORS.
📎 Добавляйте в закладки
🐸 Библиотека тестировщика
#тест_драйв
