es
Feedback
Библиотека тестировщика | QA, тестирование, quality assurance, manual testing, autotesting, ручное тестирование, автотесты

Библиотека тестировщика | 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ás
9 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» часто связаны именно с портами — Разные окружения = разные порты 🐸 Библиотека тестировщика #теория_на_пальцах

Какой тип дефекта сложнее всего доказать команде?
Anonymous voting

🛠 Полезные фишки 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 и коллекциями,
📌 Postman добавил контроль синхронизации OpenAPI и коллекций Можно управлять синхронизацией между OpenAPI 3.0 и коллекциями, выбирать, синкаются ли параметры и request body. Почему важно QA: 🟡 автотесты не «ломаются» при обновлении спеки; 🟡 понятнее, что является источником истины: спека или коллекция. 📎 Источник 🐸 Библиотека тестировщика #release_notes

📆😱 QA Advent 2025 — 31 день практики Новогодний адвент-календарь для тестировщиков от Артёма Русова. Уже открыто (дни 1–12): 📌 Каждый день декабря открывается новый материал. 🐸 Библиотека тестировщика #карьерный_трек

💳 Шпаргалка по командам Linux 📁 Базовая навигация pwd # где я нахожусь ls -la # что тут есть cd /path/to/folder # перейти т
💳 Шпаргалка по командам 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 спрятал критический баг Команда протестировала весь позитивный сценарий — авторизация, запрос, ответ, успех.
Как happy-path спрятал критический баг Команда протестировала весь позитивный сценарий — авторизация, запрос, ответ, успех. Всё зелёное. В проде — падение сервиса. Что оказалось: Один негативный кейс ломал весь поток: 🟡 API возвращал ошибку 422 при пустом поле 🟡 Фронт обрабатывал только 200 и 400 🟡 Клиентский код попадал в «подвешенное» состояние 🟡 Очередь запросов росла → сервис ложился под нагрузкой Тестировали happy-path → ничего не взорвалось Добавили негативные → воспроизвели падение за 30 секунд. Happy-path не тестирует систему — только вашу веру в неё 🥲 🐸 Библиотека тестировщика #разбор_полетов

🧠 Frontend vs Backend — в чем разница Представьте интернет-магазин. Вы открываете сайт, видите товары, добавляете их в корзи
🧠 Frontend vs Backend — в чем разница Представьте интернет-магазин. Вы открываете сайт, видите товары, добавляете их в корзину — всё выглядит просто. Но внутри работает два мира. 🔵 Frontend — красивая обёртка Кнопки, формы, карточки, анимации, цвета. Он работает в браузере и отвечает за внешний вид и удобство. Как кузов и салон автомобиля — красиво, понятно, удобно. 🔵 Backend — мощный двигатель Когда вы нажимаете «Купить», backend проверяет логин, уменьшает остаток товара, считает итоговую сумму и сохраняет заказ. Это всё происходит на сервере — как двигатель под капотом. Как они взаимодействуют:
Frontend: «Покажи товары».
Backend: ищет в базе и возвращает данные.
Frontend: отображает их пользователю.
Это постоянный диалог между интерфейсом и внутренней логикой системы 💬 🐸Библиотека тестировщика #теория_на_пальцах

📌 Hoppscotch — браузерная альтернатива Postman Тестируй API прямо в браузере без установки тяжёлых приложений. 🧽 Что умеет: REST, GraphQL, WebSocket, MQTT — всё в одном месте. Коллекции, переменные окружения, совместная работа. 🧽 Почему круто: Опенсорс, быстрый, можно хостить у себя. Работает как PWA — устанавливается одним кликом. Ссылка на GitHub 🐸Библиотека тестировщика #тест_драйв

📎📎 Материал от GetAnalyst — создан для системных аналитиков, но критически важен для понимания всей команды разработки, включая QA. 🐸Библиотека тестировщика #артефакт

👨‍💻 Кэширование: must-know для каждого тестировщика Кэш — причина, почему первый запрос «думает» 2 секунды, а следующий лет
👨‍💻 Кэширование: must-know для каждого тестировщика Кэш — причина, почему первый запрос «думает» 2 секунды, а следующий летит за 20 мс. Почему данные на разных серверах отличаются. И почему «обновили, но не обновилось». 📌 Что внутри материала: 🟡 Стратегии кэширования — где данные могут застрять 🟡 Инвалидация — почему кэш устаревает и как это ловить 🟡 Холодный vs горячий кэш — источник «плавающих» результатов 🟡 Eventual consistency — что норма, а что дефект 🟡 Алгоритмы вытеснения — как кэш ведёт себя под нагрузкой ➰ Что это даст вам:
→ Перестанете считать багами нормальное поведение кэша → Научитесь правильно планировать тест-кейсы с учетом кэширования → Сможете объяснить разработчикам, почему «у меня работает» — не аргумент → Улучшите качество нагрузочного и интеграционного тестирования
🐸Библиотека тестировщика #артефакт

🔥 Философский вопрос дня Тестировщик нашел 0 багов за спринт. Он молодец или бездельник? 🟢 Версия А: Команда крутая, разраб
🔥 Философский вопрос дня
Тестировщик нашел 0 багов за спринт. Он молодец или бездельник?
🟢 Версия А: Команда крутая, разработка качественная, процессы отлажены. QA сделал свою работу ещё на этапе планирования и ревью. Это идеал! 🟢 Версия Б: Тестировщик плохо искал, не копал вглубь, прогонял только хэппи-пасы. Риск пропустить критические баги в прод. 🟢 Версия В: Баги есть, просто они не "багорепорт-worthy" – мелкие косяки, которые QA решил не засорять трекер. А теперь вопрос: Как ваш тимлид/менеджер отреагирует на такой спринт ❓ Голосуйте в комментах: 🤩 — Это успех 🌚 — Это подозрительно ❤️ — Зависит от контекста 🐸 Библиотека тестировщика #стендап_qa

🤔 Вопрос с собеседования «Где взять ожидаемый результат для тестирования?» 📌 Ожидаемый результат берём из: — требований и acceptance criteria, — макетов и спецификаций, — API-контрактов, — бизнес-правил, — поведения текущей версии, — уточнений аналитика/заказчика. Если документа нет — фиксируем предположение и согласовываем. 🐸Библиотека тестировщика #карьерный_трек

🛫 REST API Generator — моментальное создание тестовых API-эндпоинтов С его помощью можно быстро создать, не занимаясь настройкой и установкой: — GET, POST, PUT и DELETE запросы; — автоматически сгенерированные данные для тестирования; — работу через HTTPS с поддержкой CORS. 📎 Добавляйте в закладки 🐸 Библиотека тестировщика #тест_драйв