Кейс из недавнего релиза мобильного приложения:
«После обновления логики авторизации приложение стало регулярно “выкидывать” пользователей из сессии. На тестовом окружении всё работало — QA проверили, токен обновляется, запросы к API корректные.
Но на проде через несколько часов после релиза — лавина жалоб: “Невозможно войти”, “Сессия истекла”.
Оказалось, что на боевом сервере оставалась старая конфигурация кэша, где TTL токена был меньше, чем ожидала новая версия клиента. Токен становился недействительным раньше, чем происходил автологин. Итог — тысячи принудительных разлогинов и падение рейтинга приложения в сторах.»
🔐 Согласование сроков жизни токенов между сервисами — не мелочь, а важная часть релиза.
👍 — Да, это в нашем чеклисте
🤩 — Обычно вспоминаем только когда всё падает
#разбор_полетов
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩7👍4🥰2
Открыть X → подписаться → не пожалеть
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🤩2👍1
🧩 Что такое консистентность данных
Когда у вас десятки микросервисов и баз, главное — чтобы данные не противоречили друг другу. Если один сервис говорит, что у пользователя💰 100 €, а другой — 120 €, значит консистентность нарушена.
➖ На картинке — та же идея: один человек перекладывает объекты между коробками, и если что-то потерялось по пути — данные уже не совпадают.
❔ Почему так бывает:
Данные хранятся в разных местах, а между ними — сеть.
Сеть иногда:
— теряет запросы,
— задерживает обновления,
— роняет соединения.
И вот уже один сервис успел обновиться, а другой — нет.
🐸 Библиотека тестировщика
#теория_на_пальцах
Когда у вас десятки микросервисов и баз, главное — чтобы данные не противоречили друг другу. Если один сервис говорит, что у пользователя
Данные хранятся в разных местах, а между ними — сеть.
Сеть иногда:
— теряет запросы,
— задерживает обновления,
— роняет соединения.
И вот уже один сервис успел обновиться, а другой — нет.
#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩4🔥3
mongoDB.jpg
645.2 KB
Тестируете бэкенд или API, где всё крутится вокруг MongoDB?
Эта шпаргалка пригодится, когда нужно быстро вспомнить: как сделать выборку, обновить документы или написать сложный запрос с фильтрацией.
$in, $exists, $and, $or и другие.#артефакт
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🤩2👏1
После инцидента на проде почти всегда начинается охота на виноватого.
Но в реальности всё сложнее: это сбой процесса, дырка в требованиях, отсутствующий мониторинг — или действительно недосмотр QA?
«Не заметил», «пропустил», «недотестировал» — знакомо?
— контракт-тесты,
— blameless RCA,
— shared KPIs,
— или что-то своё?
#стендап_qa
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥6🌚3🤔2🤩1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4🥰3🤩2
Как применять классические паттерны проектирования в автотестах, чтобы сделать их архитектуру гибкой, читаемой и легко поддерживаемой.
Исследователь безопасности случайно создала аккаунт с именем «NULL» и из-за ошибки валидации начала получать уведомления о действиях других пользователей, показав, к чему могут привести некорректные проверки системных значений.
Почему этот шаг повысил эффективность тестирования и сэкономил команде нервы.
Почему эта технология выглядит революционно, но пока остаётся экспериментом, пригодным скорее для pet-проектов, чем для продакшена.
Как «запахи» в модульных тестах мешают читаемости и поддерживаемости, и шаг за шагом демонстрирует, как их устранить
#release_notes
Please open Telegram to view this post
VIEW IN TELEGRAM
❤4🥰3🤩2
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9🥰5🤩2
BrowserStack — не только «запуск тестов в облаке». У него есть крутые скрытые фишки, которые заметно упрощают жизнь:
Скрывает пароли, токены и приватные значения прямо в скриншотах и видео отчётах.
Тест можно пометить как flaky, «новый баг» или временно исключить из метрик.
BrowserStack даёт доступ к биометрии, файлам, камере и платежным потокам.
Записываешь тест кликами, а ИИ сам дополняет сценарий API-шагами и проверками.
#тест_драйв
Please open Telegram to view this post
VIEW IN TELEGRAM
🤩3👏2👍1
Без какого инструмента вы не представляете свою работу ❓
Anonymous Poll
33%
Postman / Swagger
5%
Allure / TestRail
47%
Browser DevTools
14%
Jira / YouTrack
👍3🥰2
🧩 Что такое микросервисы — простыми словами
Микросервисы — это когда приложение разбито на множество маленьких самостоятельных частей (сервисов). Каждый отвечает за свою задачу: оплата, авторизация и т.д.
🏠 В монолите всё собрано в одном большом доме.
🏘️ В микросервисах — это квартал маленьких домиков, связанных сетью (через API).
➖ Плюсы:
• можно обновлять и тестировать каждый сервис отдельно
• сбой в одном не рушит всю систему
• масштабируешь только то, что нужно
➕ Минусы:
• сложнее настроить взаимодействие между сервисами
• важно следить за логами, задержками и зависимостями
• QA нужно тестировать интеграции, а не только UI
🐸 Библиотека тестировщика
#теория_на_пальцах
Микросервисы — это когда приложение разбито на множество маленьких самостоятельных частей (сервисов). Каждый отвечает за свою задачу: оплата, авторизация и т.д.
🏠 В монолите всё собрано в одном большом доме.
🏘️ В микросервисах — это квартал маленьких домиков, связанных сетью (через API).
• можно обновлять и тестировать каждый сервис отдельно
• сбой в одном не рушит всю систему
• масштабируешь только то, что нужно
• сложнее настроить взаимодействие между сервисами
• важно следить за логами, задержками и зависимостями
• QA нужно тестировать интеграции, а не только UI
#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6🤩3🌚2
🐧 nohup — спасатель при работе по SSH
Когда вы запускаете тесты или сборку через SSH, всё падает, если закрыть сессию. А вот команда nohup решает эту проблему — процесс продолжает работу даже после выхода с сервера.
🔴 создаёт архив
🔴 пишет логи в /var/log/tar.log
🔴 продолжает работу после выхода
➕ Что важно знать:
— nohup игнорирует сигнал SIGHUP (процесс не умирает при разрыве SSH)
— Без > log вывод пойдёт в nohup.out
— & в конце — запуск в фоне
— Завершить можно kill
➕ Альтернативы:
• disown — отвязать уже запущенный процесс
• setsid — новая сессия
• tmux / screen — можно вернуться к сессии
• systemd — для постоянных фоновых задач
🐸 Библиотека тестировщика
#артефакт
Когда вы запускаете тесты или сборку через SSH, всё падает, если закрыть сессию. А вот команда nohup решает эту проблему — процесс продолжает работу даже после выхода с сервера.
nohup tar -cf archive.tar file1 file2 > /var/log/tar.log 2>&1 &
— nohup игнорирует сигнал SIGHUP (процесс не умирает при разрыве SSH)
— Без > log вывод пойдёт в nohup.out
— & в конце — запуск в фоне
— Завершить можно kill
• disown — отвязать уже запущенный процесс
• setsid — новая сессия
• tmux / screen — можно вернуться к сессии
• systemd — для постоянных фоновых задач
#артефакт
Please open Telegram to view this post
VIEW IN TELEGRAM
❤3🥰2👍1
Иногда KPI закрытых задач важнее реального качества. Но если продукт ломается у клиента — никто уже не вспомнит, сколько тикетов вы закрыли.
👍 — Количество закрытых задач
❤️ — Количество довольных пользователей
#стендап_qa
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👍3🤩2🥰1
This media is not supported in your browser
VIEW IN TELEGRAM
В proglib.academy — Глобальная распродажа знаний ‼️
💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
👉 Успей забрать свой курс на proglib.academy
💥 Весь октябрь –40% на те курсы, которые выбирают чаще всего.
Курсы с практикой, без воды и пафоса.
Просто берёшь и делаешь апгрейд.
👉 Успей забрать свой курс на proglib.academy
😁4🤩3❤2
На собеседовании не проверяют, насколько вы помните синтаксис. Проверяют, понимаете ли вы, как система хранит и обрабатывает данные.
Эти карточки помогут:
#карьерный_трек #junior
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14🤩4❤🔥2
🧬 Что такое Mutation testing
Обычные метрики покрытия (coverage 90%) ничего не говорят о качестве тестов. Код можно покрыть, но не проверить. Mutation testing проверяет не код, а тесты.
〰️ Как это работает:
Инструмент специально вносит мелкие изменения (мутации) в код:
Если после этого тесты всё равно проходят — значит, они не ловят ошибку😬
💡 Пример:
〰️ Попробовать можно с инструментами:
—
—
—
🐸 Библиотека тестировщика
#теория_на_пальцах
Обычные метрики покрытия (coverage 90%) ничего не говорят о качестве тестов. Код можно покрыть, но не проверить. Mutation testing проверяет не код, а тесты.
Инструмент специально вносит мелкие изменения (мутации) в код:
🟣 > заменяет на <🟣 == на !=🟣 убирает строки, инвертирует условия
Если после этого тесты всё равно проходят — значит, они не ловят ошибку
def is_adult(age):
return age >= 18
Тест проверяет
age = 18.
Мутация меняет код на
>— тест всё ещё проходит.
Вывод: тест слабый, не покрывает граничные случаи.
—
mutmut (Python)—
PITest (Java)—
stryker (JS/TS)#теория_на_пальцах
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥4❤3🤩2