This media is not supported in your browser
VIEW IN TELEGRAM
Новогодний адвент-календарь для тестировщиков от Артёма Русова.
Уже открыто (дни 1–12):
• День 1 — Эвристики и мнемоники
Практичные приёмы и модели мышления для поиска дефектов.
• День 2 — Песочница для AQA
Тренажёр для прокачки навыков автоматизации тестирования.
• День 3 — DevTools
Симуляторы и упражнения по работе с инструментами разработчика.
• День 4 — Генерация данных
Утилиты и шаблоны для создания корректных и крайних тестовых данных.
• День 5 — Собеседования
Авторские советы и разборы типовых вопросов.
• День 6 — TestOps
Бесплатные курсы для знакомства с DevOps-подходами в QA.
• День 7 — SQL Island
Интерактивная игра для освоения SQL на практике.
• День 8 — Web Elements
Примеры реализации HTML, CSS и JS-элементов, полезные для UI-тестирования.
• День 9 — База знаний
Технические термины и концепции без лишней абстракции.
• День 10 — UI/UX
Игра-тренажёр на выбор наиболее удобных интерфейсных решений.
• День 11 — Тесты по тестированию
Более 100 вопросов для самопроверки и повторения теории.
• День 12 — Postman
Симулятор для отработки ключевых сценариев работы с API.
#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
❤5🔥3🥰2🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰9😁5🤩2💯2
Можно управлять синхронизацией между OpenAPI 3.0 и коллекциями, выбирать, синкаются ли параметры и request body.
Почему важно QA:
#release_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
👏4🤩2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6🥰4🤩2
Всё дело в кэше браузера — невидимом помощнике, который хранит копии файлов на вашем компьютере. Но как понять, что именно происходит «под капотом»? Откуда браузер взял эту картинку — скачал с сервера или достал из своих запасов?
В статье разбираем:
#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥5🤩3🥰2
Зачем:
Отлавливать баги при построении страницы: мигающие элементы, спиннеры, прогресс-бары, проблемы с 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 — поиск
#тест_драйв
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6❤2🤩2🥰1
Какой тип дефекта сложнее всего доказать команде?
Anonymous Poll
10%
UX-баг без падений
45%
Нестабильный баг («иногда»)
3%
Performance-деградация
27%
Баг, который «не по ТЗ, но неправильно»
4%
Security-риск без явного эксплойта
12%
Регрессия, замаскированная под фичу
🤩6👏2
Порт — это номер, который показывает, какому приложению на устройстве предназначен сетевой запрос.
Если по-простому:
IP-адрес — это дом, порт — конкретная дверь в этом доме.
📦 Один сервер → один IP → тысячи портов
Каждый порт может быть занят своим сервисом:
• 80 / 443 — веб-сайты
• 22 — SSH
• 3306 — MySQL
Когда браузер открывает сайт, он стучится не просто в сервер, а в конкретный порт, где слушает нужное приложение.
— Сервис может быть доступен, но не на том порту
— Баги «не открывается», «таймаут», «connection refused» часто связаны именно с портами
— Разные окружения = разные порты
#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🥰2
Этот список используют каждый день — вне зависимости от проекта, стека и роли. Если его нет в голове, всё остальное не имеет значения.
• Happy path и негативные сценарии
Функция должна работать не только «как задумано», но и ломаться контролируемо.
• Границы значений
0 / 1 / max / пусто / null — именно здесь чаще всего живут баги.
• Валидация ввода
Тип данных, длина, формат. Никакой веры фронту — только факты.
• Ошибки сервера и сообщения пользователю
500-е, таймауты, сетевые ошибки. Пользователь должен понимать, что произошло.
• Повторные действия
Double click, refresh, кнопка Back. Приложения ломаются не от кликов, а от повторов.
• Сохранение состояния
Перезагрузка страницы, смена вкладки, возврат назад. Состояние не должно «исчезать».
#артефакт #intern
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🥰3🤩3👍1
Пользователь написал в поддержку:
"Пытаюсь удалить аккаунт, но вылетает ошибка. Уже 10 раз пробовал — не работает."
Оказалось — запрос доходил до сервера, но падал с 500 ошибкой.
UI отправлял запрос на удаление, но бэкенд не мог его обработать. Frontend показывал общую ошибку «Что-то пошло не так», а в логах — 500 Internal Server Error.
Что происходило на сервере:
— запрос приходил корректно
— начиналось удаление связанных данных
— падало на внешнем ключе (foreign key constraint)
— откат транзакции → ничего не удалялось
Почему падало:
— не учли каскадное удаление из связанных таблиц
— не обработали зависимости (комментарии, лайки, подписки)
— забыли про данные в очередях и кэше
— не протестировали на аккаунтах с реальной активностью
Итог: пользователь не мог удалить аккаунт + данные оставались в системе + нарушение GDPR.
— тестировали на "чистых" тестовых аккаунтах
— не проверили связи в БД перед реализацией
— не добавили обработку cascade delete
— пропустили проверку логов при тестировании
👍 — Да, смотрю логи и статусы ответов
❤️ — Только если UI показал ошибку
😁 — Доверяю, что бэкенд работает
🔥 — Буду тестировать на «тяжёлых» аккаунтах с данными
#разбор_полетов
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍6😁4🔥3🤩1
Покрой тестами свои пробелы в знаниях
Ручное тестирование — это хорошо, но автоматизация и знание кода открывают совсем другие зарплатные вилки. Хватит искать баги у других, пофикси свои скиллы.
Акция 1 + 2:
Берешь один курс, получаешь три. Платишь за самый дорогой лот в корзине, два других — за счет заведения.
Мастхэв для QA:
— программирование на Python (золотой стандарт автотестов);
— основы IT (чтобы говорить с девами на одном языке).
Обеспечить 100% покрытие
До 31 декабря.
Саппорт по выбору курсов: @manager_proglib
Ручное тестирование — это хорошо, но автоматизация и знание кода открывают совсем другие зарплатные вилки. Хватит искать баги у других, пофикси свои скиллы.
Акция 1 + 2:
Берешь один курс, получаешь три. Платишь за самый дорогой лот в корзине, два других — за счет заведения.
Мастхэв для QA:
— программирование на Python (золотой стандарт автотестов);
— основы IT (чтобы говорить с девами на одном языке).
Обеспечить 100% покрытие
До 31 декабря.
Саппорт по выбору курсов: @manager_proglib
🤩6
На QA-собеседованиях часто проверяют базу. Waterfall — классический пример: модель старая, но до сих пор используется в enterprise и проектах с фиксированными требованиями.
#карьерный_трек
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
🥰6🤩3❤2
IP-адрес — это числовой адрес устройства в сети, по которому его можно однозначно найти.
Формат IPv4 выглядит так:
192.168.0.101
Каждое число — от 0 до 255.
Это не случайно, а результат разбиения адреса на части.
На примере
192.168.0.101:• 192 — крупная подсеть (класс сети)
• 168 — подсеть внутри неё
• 0 — конкретная локальная подсеть
• 101 — номер устройства в этой подсети
Проще:
⚠️ Почему это важно для QA
— Один и тот же сервис в разных окружениях → разные IP
— Часто путают IP сервера и IP клиента
— Firewall, whitelist, API-доступы почти всегда завязаны на IP
— «У меня работает» ≠ «доступно по нужному IP»
Типичный кейс:
сервис запущен, порт открыт, но запрос идёт не в ту подсеть
``` • IP — куда идёт запрос
• Порт — кому именно
• DNS — как имя превращается в IP```
Без понимания IP — отладка превращается в угадайку.
#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰3🤩2❤1
Часть 1
Зачем: тестировать поведение сайта при слабом соединении
Как включить:
Network → No Throttling → выбрать Fast 3G / Slow 3G / Offline
Кастомный профиль:
```Add → Add custom profile → заполнить Download, Upload, Latency → Add```
Где помогает: проверить загрузку на слабом интернете, тестировать таймауты, оффлайн-режим
Зачем: воспроизвести запрос в cURL, Postman или Console
Как скопировать:
F12 → Network → выбрать запрос → ПКМ → Copy → выбрать формат (cURL, Fetch и тд)
Что можно:
✓ Запустить через cURL
✓ Импортировать в Postman
✓ Подправить во вкладке Console как fetch
✓ Отправить разработчику для воспроизведения бага
Зачем: проверить, что произойдет, если контент не загрузится (картинка, анимация)
Как заблокировать:
```F12 → Ctrl+Shift+P → Show Request Blocking
Network → выбрать элемент → Headers → скопировать URL
Network Request Blocking → Add Pattern → вставить запрос → Add
✓ Enable network request blocking → перезагрузить страницу```
Где помогает: проверить альтернативный текст для картинок, обработку ошибок загрузки, fallback-контент
Ctrl+F — поиск в Network
Ctrl+L — очистить Network
#тест_драйв
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🥰4🤩3
Система «работает». Тесты пройдены. Но пользователь пишет: «Товар есть, а поиск его не видит».
Что происходит на самом деле
Один ввод — и вся логика рассыпается:
ABC123 ≠ ABC123
Happy-path:
— ручной ввод
— без пробелов
— результат найден
Реальность:
— копипаст
— мобильная клавиатура
— Excel / почта / PDF
#разбор_полетов
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🥰2🤩2❤1
API Quick Reference cheat sheet.pdf
207.3 KB
Компактный справочник по всему, что нужно знать при тестировании API:
Держите под рукой — пригодится на каждом проекте!
#артефакт
Please open Telegram to view this post
VIEW IN TELEGRAM
👏5🥰2🤩1
Инженер по нагрузочному тестированию (от 130 000 до 180 000 ₽)
QA-тестировщик (до 120 000 ₽, Дубна)
QA Fullstack (C#) Middle+ (270 000 ₽)
Senior тестировщик в SRE-платформу (до 460 000 ₽)
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩4🥰2👏1