Блог: Внутри QA-команды Фора Софт — обнаруживаем неожиданное, доставляем ожидаемое

Главное

Здоровая QA-команда — это система, а не штатная численность. Соотношения, инструменты и привычки shift-left важнее количества тестировщиков в штате.

1 QA на 3 разработчиков — наш дефолт. По данным Rice Consulting, наиболее часто упоминаемое в индустрии соотношение — 1:3, медианное — 1:5. На видео, real-time и регулируемых продуктах мы держимся ближе к более плотному краю.

Семь ролей, а не одна должность. Современный QA охватывает мануальное тестирование, автоматизацию, SDET, нагрузку, безопасность, тестовые данные и QA Lead — и большинство аутсорс-команд тихо пропускают четыре из них.

AI ускоряет триаж, но не дизайн тестов. Опрос State of Testing 2024 показал, что 69,6% команд используют AI как «дополнительные руки» при выполнении, и только 30,9% сообщают о реальном снижении объёма мануального тестирования.

В Фора Софт работает единая QA-практика на 625+ выпущенных проектах. Этот плейбук написан на реальных цифрах с реальных кодовых баз — VALT, BrainCert, Franchise Record Pool и более 50 живых видеопродуктов.

Зачем Фора Софт написала этот плейбук

Компания Фора Софт выпускает видео-, AI- и real-time-продукты с 2005 года — двадцать лет и 625+ доставленных проектов спустя именно QA остаётся той функцией, которая удерживает рост этой цифры. Наш Job Success Score на Upwork держится на 100% именно потому, что QA сидит рядом с разработчиками с первого дня, а не пристёгивается к концу спринта.

Это не материал в жанре «знакомьтесь, наша команда». Это внутренний плейбук, который мы достаём, когда основатель спрашивает: «Как должна быть устроена моя QA-команда?» Вы увидите роли, которые мы укомплектовываем, соотношения, которые держим, инструменты, за которые платим, ошибки, за которыми следим, и арифметику затрат, которую мы прогоняем перед каждым проектом. Везде, где утверждение опирается на жёсткие данные — 650+ деплоев VALT в правоохранительных органах, 1 млн+ учащихся BrainCert, DJ-платформа Franchise Record Pool — мы привязываем его к конкретному проекту.

Если вы решаете, строить ли in-house QA-команду, расширять ли свою партнёром или передать всю функцию вендору — эта статья и есть документ для принятия решения. Если у вас мало времени, читайте раздел 13 (фреймворк из пяти вопросов).

Нужна QA-команда, которая ловит баги раньше пользователей?

Мы соберём QA-практику под ваш стек и ритм релизов — или встроимся в существующую команду. Расскажите о задаче по телефону или почте.

Позвоните нам → Напишите нам →

Как выглядит здоровая QA-организация в 2026 году

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

Метрика Медиана по индустрии Хороший ориентир Дефолт Фора Софт
Соотношение QA к разработчикам 1:5 1:3 — 1:4 1:3
Доля «утёкших» дефектов (escaped defects) 8–12% < 5% < 3% на 12-месячных когортах
Автоматизация регрессионного набора 40–50% 70–80% 75%+ после релиза №3
Тестовая пирамида (юнит / интеграция / E2E) 50 / 25 / 25 70 / 20 / 10 70 / 20 / 10
Инструмент управления тест-кейсами Иногда Всегда (TestRail/Zephyr) TestRail на каждом проекте
QA подключается до кода Редко На этапе требований На этапе требований и дизайна
Среднее время воспроизведения бага > 1 дня < 2 часов < 1 часа (стандарт по сбору контекста)

Соотношение 1:3 не взято с потолка. Опрос Rice Consulting о соотношении тестировщиков и разработчиков ставит наиболее частое значение на уровне 1:3, а в организациях, перекладывающих QA-работу на разработчиков, среднее уползает к 1:7. Отчёт PractiTest State of Testing 2024 подтверждает: команды с выделенным инструментом управления тестами выигрывают 23,7% по метрикам доставки — поэтому мы стандартизировали связку TestRail + Jira + GitHub Actions на каждом проекте.

Семь QA-ролей, которые на самом деле нужны современной команде

«У нас есть QA-инженер» — этого почти всегда мало. На продукте с реальной пользовательской базой — особенно если он работает с видео, платежами, медицинскими данными или регулируемой информацией — должны быть закрыты эти семь компетенций. Это не обязательно семь разных людей, но у каждой компетенции должен быть владелец.

1. QA Lead / Test Manager

Владеет стратегией. Решает, что тестируется, с каким приоритетом, против какого риска. Пишет тест-план, согласовывает с продактом критерии готовности к релизу, отчитывается стейкхолдерам по KPI качества. На проектах Фора Софт QA Lead дополнительно ведёт спринтовый bug triage и отвечает за отношения с product owner на стороне клиента.

2. Manual QA Engineer

Владеет исследовательским тестированием, UAT и регрессом по новым фичам. Это тот человек, который спрашивает: «А что, если пользователь откроет 3 чата одновременно на iPhone SE во время скриншаринга?» Именно ручное тестирование находит новые баги; автоматизация ловит только то, что вы уже научились описывать.

3. QA Automation Engineer

Владеет регрессионным набором автотестов. Пишет тесты на Playwright/WebDriverIO/Appium, держит их зелёными, интегрирует с CI. От SDET отличается тем, что обычно не владеет самим фреймворком — он живёт внутри него.

4. SDET (Software Development Engineer in Test)

Владеет фреймворком, инфраструктурой и инструментами. Пишет код продакшен-уровня: кастомные раннеры, общие фикстуры, фабрики тестовых данных, интеграции с фермами устройств, детектирование флейков. SDET, ушедший без передачи дел, — причина №1 деградации автоматизации, см. раздел 14.

5. Performance / Load Testing Engineer

Владеет SLA по задержке, пропускной способности и масштабируемости. Гоняет сценарии в k6 / JMeter / Locust, находит узкие места, подписывает готовность к запуску по ёмкости. Обязателен для всего, что связано с видео — мы нашли трёхкратный обрыв производительности по задержке в одном WebRTC-продукте просто прогнав тест на 400 одновременных зрителей.

6. Security / Compliance Tester

Владеет SAST/DAST, сканированием уязвимостей и проверками на соответствие требованиям. На HIPAA, GDPR, SOC 2 или в правоохранительных доказательных процессах эта роль не опциональна. Для VALT у нас был выделенный человек, гонявший тесты целостности доказательной цепочки на каждом релизе — потому что пропущенный там баг означает развал процесса в суде.

7. Test Data Management Specialist

Владеет реалистичными и безопасными тестовыми данными. Генерация синтетических данных, очистка PII, воспроизводимые фикстуры. На небольших командах эту роль обычно вбирает в себя SDET, но для продуктов, сильно зависящих от формы данных (EdTech, маркетплейсы, финтех), она заслуживает собственных полставки.

Полный набор из семи ролей нужен, когда: у вашего продукта есть платящие пользователи, живой трафик, требования по соответствию и более 6 разработчиков в команде. Ниже этого порога перформанс, безопасность и тестовые данные сворачиваются в роль QA Automation.

Соотношение QA к разработчикам и когда его нарушать

Универсального соотношения не существует. Но есть три, к которым мы возвращаемся в зависимости от профиля продукта. Сама цифра важна меньше, чем то, хватает ли QA пропускной способности на исследовательское тестирование, а не только на прогон регресса.

Профиль продукта Рекомендуемое соотношение Почему
Ранний MVP, одна платформа 1:6 Поверхность маленькая, временный код допустим, тестирование силами разработчиков реалистично.
B2B SaaS, живая выручка 1:4 Каждый продакшен-баг — риск оттока; регрессионная поверхность растёт; у автоматизации должен быть владелец.
Real-time видео / WebRTC / стриминг 1:3 Матрица «устройство × ОС × сеть» — время на исследовательское тестирование взрывается. Автоматизация пропускает баги визуального и аудиокачества.
Регулируемые отрасли (медицина, финтех, правоохрана) 1:2 Тестирование соответствия требованиям, аудиторские следы, целостность доказательной цепочки — плюс выделенный security-тестировщик.
Кросс-платформенное потребительское приложение (iOS + Android + web) 1:3 Поддержка девайс-лаб, выкладки в сторы и платформенный регресс — каждое из этого «съедает» по тестировщику.

Если уйти выше 1:6, регрессом начинают заниматься разработчики, и QA становится бутылочным горлышком на финальной стадии. Если опустить ниже 1:2, тестировщики начинают дублировать работу и ценность исследовательского тестирования падает. Мы следим за обоими краями.

Shift-left QA: где на самом деле начинается тестирование

Тестирование в конце спринта в 5–15 раз дороже, чем тестирование на этапе требований — кривая затрат подтверждена и NIST, и десятилетиями исследований IBM. На наших проектах QA подключается ещё до того, как написана первая строка кода:

1. Ревью требований

QA читает каждую спецификацию до того, как её подпишут. Один из наших тестировщиков как-то сэкономил три недели переделок на live-shopping-фиче, спросив: «А что произойдёт, если корзина покупателя истечёт прямо посреди оформления заказа во время распродажи?» — этого сценария в PRD не было.

2. Ревью дизайна

QA смотрит Figma и пользовательские потоки вместе с дизайнером. Именно здесь лучше всего ловятся вопросы про взрыв состояний: пустые состояния, состояния ошибок, загрузка по 3G, обрезка длинных имён, RTL-языки.

3. Дизайн тест-кейсов параллельно с разработкой

Тесты пишутся, пока фича строится. К моменту открытия pull request тест-план уже готов — это сжимает цикл обратной связи с дней до часов.

4. Парная работа во время реализации

QA пара́ит с разработчиками для исследовательских проходов по сложным экранам. Гайд Atlassian по agile-тестированию рекомендует ту же практику — она ловит классы багов, которые пережили бы пост-фактум-ревью.

QA-бутылочное горлышко в конце спринта мешает релизам?

Расскажите про ваш ритм релизов — мы предложим план shift-left, который встанет на ту команду, которая у вас уже есть.

Позвоните нам → Напишите нам →

Тестовая пирамида, которой Фора Софт реально пользуется

Пирамида Мартина Фаулера — каноническая, но большинство команд рисует её один раз и больше не пересматривает. Мы относимся к ней как к живому бюджету: если покрытие юнитами падает ниже 60% или E2E вырастает больше 15%, что-то не так — и мы исправляем источник, а не сами тесты.

Слой Доля Когда выполняется Кому принадлежит Инструменты
Юнит 70% Pre-commit + PR Разработчик Jest, Vitest, JUnit, XCTest
Интеграция / API 20% PR + nightly SDET + разработчик Supertest, RestAssured, Postman/Newman
E2E (счастливые пути) 10% Nightly + перед релизом QA Automation Eng. Playwright, WebDriverIO, Appium
Исследовательское / ручное Тайм-боксом На каждую фичу + перед релизом Manual QA Eng. TestRail, Jira, BrowserStack
Производительность + безопасность По событию Перед релизом + ежеквартально Perf / Sec инженер k6, JMeter, OWASP ZAP, Burp

Пирамида создана, чтобы предотвратить два антипаттерна. Первый — «рожок мороженого» (много ручного и E2E, мало юнитов): обратная связь занимает часы, флейки убивают скорость. Второй — «песочные часы» (юниты + E2E, без интеграции): юнит-набор зелёный, а изменение схемы API ломает продакшен. Оба — признак того, что SDET не получил полномочий владеть слоем фреймворка.

Manual QA, Automation, SDET и QA Lead — сравнение

Эти роли — не лестница карьерного роста; сильный мануальный тестировщик не «несостоявшийся SDET». Это разные ремёсла. Их путаница при найме — вторая по частоте ошибка, которую мы видим в инженерных организациях, выросших из основателя.

Роль Основной результат Глубина кодинга Подчиняется Уклон
Manual QA Находки исследовательского теста и регресса Лёгкая (SQL, devtools) QA Lead Эмпатия к пользователю
QA Automation Зелёный регрессионный набор Средняя QA Lead или SDET Надёжность
SDET Фреймворк, CI, devex для тестирования Сеньорный инженер Engineering Manager Левередж
QA Lead Стратегия, отчётность, подпись по риску Переменная CTO / Product Бизнес-результаты

Как мы строим автоматизацию, переживающую смену людей

У каждой студии есть истории про SDET, который построил красивый фреймворк, ушёл — и за 4 месяца 40% набора начали флейчить, а 20% тихо отключили. Это худший возможный QA-ROI. Наши четыре защиты от деградации фреймворка:

Стандартизированный фреймворк под каждый стек

Один инструмент на слой по всем проектам. Playwright для веба, WebDriverIO/Appium для мобильных, k6 для нагрузки. Отдельные SDET не могут изобретать новые конвенции; если паттерн не описан в нашем внутреннем QA-handbook, мы его не мерджим.

Page Object Model + атрибуты data-testid

Селекторы, переживающие редизайны. На каждый QA-критичный элемент в UI ставится стабильный data-testid. Мы реджектим PR, в которых их убирают. Стоимость добавления: 5 минут на элемент. Стоимость переделки селекторов после редизайна: спринт.

Бюджет на флейк < 2%

Любой тест, упавший по флейку дважды за неделю, отправляется в карантин. Тесты или чинятся, или удаляются — гнить в наборе им запрещено. Флейк-рейт в 10% приучает разработчиков игнорировать красный CI, а это катастрофа.

Shadow-передача дел перед уходом любого SDET

Двухнедельное перекрытие — обсуждению не подлежит. Уходящий SDET пара́ит с приходящим на живых задачах, а не на странице в вики. Если SDET ушёл внезапно, другой сеньор-SDET изнутри Фора Софт подхватывает его за 48 часов — одно из настоящих преимуществ кросс-проектной практики.

Наш QA-стек и почему мы выбрали именно эти инструменты

Этот стек мы ставим на любой новый проект, если клиент не настаивает на чём-то другом. Каждый инструмент попадает в счёт за то, что предотвращает конкретный тип отказа.

Категория Инструмент Почему этот, а не тот
Управление тест-кейсами TestRail API-first, связан с Jira, ревьюится. Таблицы перестают масштабироваться после 300 кейсов.
Issue tracker Jira (по выбору клиента) Тот, чем пользуется dev-команда — отдельный трекер для багов уничтожает контекст.
Web E2E Playwright Параллелизм, trace viewer, мульти-браузерность. Cypress на одном из прошлых проектов запер нас в одном origin.
Mobile E2E Appium + WebDriverIO Кросс-платформенно, работает с облачными device farm. XCUITest + Espresso — только если клиент настаивает.
Облако устройств BrowserStack Реальные устройства, аддон визуального диффа, разумная цена до 10 параллельных сессий.
Нагрузочное тестирование k6 + Grafana Сценарии на JS, простая интеграция с CI, наблюдаемость. JMeter — только под legacy с тяжёлым SOAP.
Тестирование API Postman + Newman / RestAssured Коллекции Postman заодно работают как живая документация. Newman встаёт в GitHub Actions в 10 строк.
Безопасность OWASP ZAP + Burp Suite ZAP — для автоматических сканов в CI, Burp — для глубокого ручного тестирования.
Качество WebRTC KITE + собственная обвязка Готового инструмента, который меряет MOS и freeze rate в нужном масштабе, не существует — мы построили свой. Подробнее в нашем плейбуке по тестированию качества WebRTC-стрима.

Где AI ускоряет тестирование, а где пока ломается

AI меняет QA — но, как показал отчёт State of Testing 2024, большинство команд используют его как «дополнительные руки», а не «дополнительные мозги». 69,6% применяют AI на задачах выполнения (в основном генерация тестовых данных и триаж), и только 30,9% видят измеримое снижение нагрузки ручного тестирования. Вот где мы находим реальный левередж — и где обжигались.

Что реально работает сегодня

Генерация тест-кейсов из требований. LLM превращает пользовательскую историю в 40 черновых кейсов за 15 секунд. Человек выбирает 20 значимых. Чистая экономия: 3–4 часа на средней задаче.

Триаж баг-репортов. AI классифицирует входящие тикеты по серьёзности, кандидатам в дубли и затронутым модулям — с финальным ревью человеком сверху. На высокообъёмных проектах мы видим сокращение времени триажа на 40–60%.

Диагностика флейков. Сопоставление флейкующих падений с историческими данными быстрее находит первопричины, чем человек, грепающий логи CI.

Самовосстанавливающиеся селекторы. AI-восстановление на основе визуального диффа сокращает поддержку селекторов примерно на 30% на проектах с частыми изменениями UI — ценно, но ложное срабатывание может скрыть настоящий баг, поэтому ревью человеком мы оставляем.

Что пока не работает

Генерация исследовательских идей для новых продуктов. LLM переобучаются на знакомых паттернах; они пропускают сценарии вида «а что если пользователь откроет это в фоне через VPN», где живут реальные баги.

Полностью автономное написание тестов. Демки впечатляют; продакшен-наборы накапливают ту же проблему «шум-к-сигналу», что и автогенерируемый код. Владелец теста по-прежнему — человек.

Если хотите подробный разбор, у нас есть две сопровождающие статьи: «AI в обеспечении качества: практические применения» и «AI-оптимизация тестирования», а также менее радостный честный взгляд: «AI в тестировании ПО и технический долг QA».

Мини-кейс: как QA удерживала VALT стабильным на 650+ деплоях

VALT — платформа AI-видеонаблюдения и записи допросов, которой пользуются более 650 правоохранительных агентств США. Когда записанный допрос становится доказательством по делу об убийстве, фраза «в основном работает» — это конец карьеры.

Ситуация. В команде, поставлявшей VALT, было 12 инженеров, инсталляция Jira и никакого формального регресс-процесса. Продакшен-инцидент уничтожил два дня записанных допросов. Руководство попросило нас перестроить QA с нуля.

12-недельный план. Недели 1–2: карта рисков по доказательной цепочке — приём, кодирование, хранение, извлечение, экспорт. Недели 3–4: внедрение TestRail и заморозка регрессионного набора из 400 кейсов, покрывающего каждый путь обработки доказательств. Недели 5–8: автоматизация на Playwright + k6 для тех 60% регресса, что были детерминированы. Недели 9–12: выделенный тест целостности доказательной цепочки, прогоняемый на каждом релизе, плюс лаборатория из 4 устройств для воспроизведения полевых отчётов с реального оборудования из патрульных машин.

Результат. «Утёкшие» дефекты на релиз снизились с 11 до 2 за полгода; инциденты по доказательной цепочке ушли в ноль на 14 месяцев подряд; ритм релизов вырос с месячного до двухнедельного без потери стабильности; а простой в зале суда — метрика, которая реально волнует клиента VALT, — оставался нулевым все 14 месяцев, что мы её отслеживаем.

Похожий паттерн на BrainCert, где мы как часть команды масштабируем LMS до миллиона учащихся без единой P1-регрессии за последние три квартала.

Хотите такой же аудит вашей QA-практики?

За 2 недели мы пройдём по вашей текущей практике и вернёмся с приоритизированным планом — тем же, что мы применили на VALT.

Позвоните нам → Напишите нам →

Модель затрат: in-house против аутсорс-QA в 2026 году

Реальные цифры для инженерной команды из 12 человек, которой нужна QA-скамейка из 4 человек (1 Lead, 1 Manual, 1 Automation/SDET, 1 совмещённый перформанс/безопасность). Диапазоны — рынок 2025–2026 годов. Ваши цифры могут отличаться; используйте как проверку здравого смысла.

Модель Полная стоимость / месяц Время на сборку Сложность сворачивания
In-house в США 4–6 млн ₽ 3–6 месяцев Высокая
In-house в Западной Европе 3–4,8 млн ₽ 3–6 месяцев Высокая
Аутсорс в Латинской Америке 1,8–2,7 млн ₽ 4–8 недель Низкая
Аутсорс в Восточной Европе (Фора Софт) 1,5–2,4 млн ₽ 2–4 недели Низкая
Аутсорс в Индии/Филиппинах 750 тыс.–1,6 млн ₽ 4–8 недель Низкая, но следите за часовыми поясами и доменной экспертизой

Два неочевидных рычага. Первый — Agent Engineering: наша внутренняя практика парной работы людей с AI-агентами в коде сокращает время сборки фреймворка автоматизации примерно на 20–30%, что даёт реальную экономию на первых трёх месяцах проекта. Второй — общая QA-практика (модель Фора Софт): вы платите за часы, которые потребляете, а не за стул, поэтому в недели низкой загрузки эффективная стоимость падает на 30%+.

Фреймворк решения: строить, нанимать или отдавать на аутсорс — пять вопросов

Каждого основателя, который спрашивает: «Стоит ли мне нанять QA-инженера?», мы проводим по этим пяти вопросам. Ответьте честно — ответ выпадает сам.

В1. Сколько разработчиков будут писать код в ближайшие 12 месяцев? Менее 4: тестированием могут владеть сами разработчики, плюс QA-консультант на полставки на гейтах релизов. От 4 до 10: один полноценный QA (или эквивалент). Свыше 10: команда из 3+ человек со специализированными ролями.

В2. Какова поверхность compliance? Никакой: у вас есть выбор. HIPAA / GDPR / PCI / SOC 2 / правоохранительные доказательства: нужен выделенный security-тестировщик, без вариантов, и in-house проще, когда аудиторы хотят гражданина США или ЕС.

В3. Насколько стабильна дорожная карта? Изменчива (до PMF): отдайте гибкую часть на аутсорс — вам не нужно нанимать, увольнять и нанимать заново. Стабильна и растёт: стройте in-house ради знания продукта, дополняйте внешней специализированной скамейкой по нагрузке, безопасности и девайс-лабе.

В4. Сколько доменных знаний требуется? Универсальный B2B SaaS: войти в продукт может кто угодно. Видео / WebRTC / телемедицина / правоохрана / live shopping: вход для in-house-найма — 3–6 месяцев; вендор с уже имеющейся экспертизой на скамейке (Фора Софт по видео и real-time, например) выдаёт результат за недели.

В5. Какова цена продакшен-бага? Несколько тикетов в поддержку: лёгкого QA достаточно. Отток клиентов, штрафы или ответственность: инвестируйте в семиролевую модель и не экономьте на автоматизации и тестировании безопасности.

Пять ловушек, которые топят in-house QA-команды

1. QA пристёгнут к концу спринта. Когда тестировщики видят работу только в последние два дня спринта — релизы уезжают, качество накапливается отрицательно, а QA-команда становится виноватой на ретро. Делайте shift-left или платите за это.

2. Тест-кейсы организованы по спринтам, а не по фичам. Опрос PractiTest показал, что 60% команд держат тест-кейсы плохо — и почти всегда корень в том, что они организованы по спринтам. Кейсы по фичам переживают переплатформирование; кейсы по спринтам гниют за квартал.

3. Автоматизация написана разработчиками, которые потом ушли из фреймворка. Тест-автоматизация, написанная разработчиком и оставленная без владельца, начинает деградировать в момент, когда он переключился. Либо нанимайте SDET, чтобы он этим владел, либо отдавайте владение по контракту. Третьего рабочего варианта нет.

4. Нет девайс-лабы и нет облачной фермы. Попытка покрыть мобильный QA личным iPhone и одним Android из ящика стола. Вы ловите 40% того, что есть на рынке. BrowserStack или скромная in-house лаба (5–10 устройств с обновлением раз в год) стоит долю одного пропущенного P1.

5. Нет бюджета на производительность. Регрессии производительности по 3% за релиз становятся 30%-ным замедлением через десять релизов. Еженедельный baseline в k6 с порогом алертинга ловит это в течение суток.

KPI: что мы реально измеряем

KPI качества. Доля «утёкших» дефектов (< 3% на 12-месячных когортах), эффективность отлова дефектов (> 95%), pass rate регресса на main (> 98%), среднее время воспроизведения (< 1 часа), change failure rate (DORA elite: 0–5%).

Бизнес-KPI. Ритм релизов (раз в две недели или быстрее), время до рынка по новым фичам (от спецификации до прода), QA-стоимость на одну выпущенную пользовательскую историю, доля релизов без срочного хотфикса (> 90%).

KPI надёжности. Среднее время обнаружения (< 10 минут для P1), среднее время восстановления (< 30 минут для P1 в продакшене), флейк-рейт регрессионного набора (< 2%), покрытие автоматизированным регрессом (> 70%), uptime по пользовательски-критичным потокам (> 99,9%). Отчёт по этим метрикам мы отдаём клиентам ежемесячно и публикуем в составе нашего шаблона отчёта о тестировании.

Безопасность, compliance и тестирование данных

Тестирование безопасности живёт внутри QA на каждом регулируемом проекте. Три практических слоя:

Автоматическое сканирование в CI. SAST (Semgrep, SonarQube) на каждом PR. DAST (ZAP baseline) на каждом деплое в стейджинг. Сканирование зависимостей (Snyk, Dependabot) — ежедневно. Триаж находок — раз в неделю. Этот слой ловит 70% низкосерьёзных проблем и держит бэклог честным.

Ручной penetration test раз в квартал. Внутренняя ротация или внешняя фирма — в зависимости от compliance. Для SOC 2 или HIPAA мы всегда рекомендуем дополнительно ежегодный сторонний тест.

Набор тестов работы с данными. Только синтетические данные вне прода, очистка PII в копиях БД, тест шифрования в покое, учения по ротации ключей. Для видеопродуктов — тесты целостности доказательной цепочки (VALT) и тесты соответствия WORM-хранилищу.

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

Девайс-лаба и кросс-платформенное тестирование

Кросс-платформенные продукты ломаются в неожиданных местах. DJ-платформа Franchise Record Pool — хороший пример: чат-фича, которая отлично выглядела на флагманском iPhone, отправляла сообщение дважды каждый раз, когда получатель сидел на Galaxy S7. Такое ловится только реальными устройствами.

Наше дефолтное покрытие устройств — отсортировано по ценности на потраченный рубль:

Уровень Цель покрытия Инструменты
Базовый (всегда) Последняя iOS + последняя Android + Chrome + Safari + Firefox Реальное устройство + Playwright
Длинный хвост Предыдущие 2 версии iOS, 3 версии Android, Edge Реальные устройства BrowserStack
Слабые / ограниченные Тротлинг 3G, старые низкопамятные Android Chrome DevTools + физическое устройство
Доменно-специфичные Smart TV, носимые устройства, автомобильные (если требует продукт) Физическое железо in-house

Культурные привычки, на которых держится наша QA-команда

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

  • Не торопитесь. Спешное тестирование — поверхностное; поверхностное тестирование убивает escaped-defect-rate.
  • Высказывайтесь рано. Даже маленькое сомнение — полезные данные. Молчаливые тестировщики порождают молчаливые баги.
  • Не останавливайтесь на сценарных кейсах. Спросите себя: «А что, если толкнуть это дальше?» — именно там живут интересные баги.
  • Учите, как система устроена изнутри. Проще расследовать, чётче коммуникация с разработчиками.
  • Используйте AI как помощника, а не как замену. Данные State of Testing 2024 это подтверждают: команды, делегирующие AI суждения, регрессируют; команды, делегирующие AI рутину, улучшаются.
  • Оспаривайте требования рано и тщательно. Сейчас дёшево, потом дорого.
  • Думайте критически, давайте конструктивную обратную связь. Баги, написанные без обвинений, чинятся быстрее.
  • Коммуницируйте чётко. Баг-репорт с видео, network-вкладкой и шагами воспроизведения экономит разработчику два часа.
  • Продолжайте учиться. Митапы, коллеги, разные проекты — кросс-опыление побеждает туннельное зрение.
  • Собирайте полный контекст при воспроизведении клиентских проблем. Скриншоты, видео, характеристики устройства, состояние сети.
  • Следите и за пропавшим, и за случайно добавленным функционалом. И то, и другое — баги.
  • Автоматизируйте повторяющиеся шаги, как только это возможно. Ваше время дороже скрипта.
  • Застряли — спрашивайте. Угадывание плохо заканчивается.

У нас ещё есть Slack-канал с абсурдными продакшен-багами: купон со «скидкой 100%», который скидывал только 10%, шестизначный код подтверждения, показывавший пять цифр, видеотаймер, считавший в минус, страница с падением, доступная только админу, кнопка, кликабельная область которой уменьшалась с каждым кликом. Каждый из этих багов был пойман в QA до того, как его увидели пользователи.

Когда выделенную QA-команду нанимать НЕ стоит

Мы — лавка с уклоном в QA, но есть реальные случаи, когда тестировщика на первый день брать не нужно:

До PMF, меньше 4 разработчиков, ничего регулируемого. Потратьте зарплату на продукт. Разработчики гоняют тесты сами, основатель делает UAT, а QA подключается по контракту только на гейтах релиза.

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

Прототипы на выброс. Сам тест и есть рыночная обратная связь. Не поддавайтесь желанию полировать.

Везде остальном — настоящий продукт, реальные пользователи, выручка, любое compliance — честный ответ один: QA окупает себя за один квартал, снижая «утёкшие» дефекты и срочную работу, которую они порождают.

FAQ

Какое соотношение QA к разработчикам правильное для стартапа?

Для раннего MVP на одной платформе реалистично 1 QA на 5–6 разработчиков, если разработчики серьёзно относятся к юнит- и интеграционному тестированию. Как только у вас появляются платящие клиенты на более чем одной платформе, переходите на 1:3 — это золотая середина индустрии и наш дефолт по проектам Фора Софт.

Сколько занимает развёртывание аутсорсной QA-команды?

На нашем типовом проекте: 2–4 недели до продуктивного первого релиза, 8–12 недель до полностью автоматизированного регрессионного набора. Быстрее, чем in-house, потому что семиролевая практика уже существует — мы вставляем готовую команду в ваш продукт, а не собираем её с доски вакансий.

Может ли маленькая команда оправдать роль SDET?

Ниже 10 разработчиков полноценный SDET обычно не нужен — но кто-то всё равно должен владеть фреймворком. Мы часто ставим SDET на полставки из практики: стандарты фреймворка, интеграция CI и карантин флейков — около 15–20 часов в неделю. Этого, как правило, хватает, чтобы держать автоматизацию в форме примерно до 15 инженеров.

Какой инструмент управления тест-кейсами выбрать?

TestRail для большинства команд — зрелый, API-first, чисто интегрируется с Jira. Zephyr — если ваша организация уже глубоко в Atlassian. Qase — современный лёгкий вариант. Таблицы работают примерно до 300 кейсов, дальше начинают доминировать боли миграции.

Как вы справляетесь с разницей часовых поясов с аутсорс-командой?

Наше стандартное перекрытие — 3–5 часов с часовыми поясами США и 6–8 — с Европой. Каждая команда проводит ежедневный stand-up в окне перекрытия плюс асинхронный bug triage в Slack. Двадцать лет распределённой работы сделали это менее болезненным, чем найм локально без команды — хотя для compliance-ролей, когда аудиторы настаивают, мы всегда порекомендуем локального full-time-сотрудника.

AI реально снижает стоимость QA или это хайп?

AI снижает конкретные статьи: черновики тест-кейсов, триаж багов, анализ флейков. Он не снижает стоимость исследовательского или нового дизайна тестов — это остаётся за человеком. Данные State of Testing 2024 говорят, что только 30,9% команд, использующих AI, фиксируют измеримое снижение мануального тестирования. Используйте AI, но списывайте его на правильные статьи.

Как понять, что наша QA-команда на самом деле работает?

Три числа: доля «утёкших» дефектов, change failure rate и среднее время обнаружения. Если они движутся в правильную сторону от релиза к релизу — QA работает. Если они стоят на месте, а штат QA растёт — проблема обычно в процессе (позднее тестирование, нет управления тест-кейсами), а не в людях.

Что особенного в QA для видео и real-time-продуктов?

Три вещи: матрица «устройство × ОС × сеть» взрывает время на исследовательское тестирование, автоматизация пропускает дефекты качества аудио/видео, а перцептивное тестирование (оценки MOS, freeze rate, дрейф lip-sync) требует выделенных обвязок. Мы построили свою — потому что готовых инструментов, меряющих это в нужном клиентам масштабе, нет; подробнее в нашем плейбуке по тестированию качества WebRTC-стрима.

WebRTC

Как тестировать качество WebRTC-стрима

MOS, freeze rate, дрейф lip-sync — обвязка, которую наша команда построила для видео-QA.

Отчётность

Как написать эффективный отчёт о тестировании

Шаблон, которым мы превращаем работу QA в понятный стейкхолдерам сигнал.

Готовы выпускать стабильные релизы без драмы?

Хорошая QA-команда снаружи скучная, а внутри занятая. Вы понимаете, что она работает, когда релизы выходят по графику, входящих в поддержку в этом месяце меньше, чем в прошлом, а инженеры перестают бояться дня выкладки. Вся структура из этого плейбука — семь ролей, соотношение 1:3, пирамида, стек инструментов, привычка shift-left — служит этому единственному результату.

Если вы пока не там — вам нужна не бóльшая численность. Вам нужны правильный набор и правильные привычки. Начните с фреймворка из пяти вопросов в разделе 13 — он честно скажет, стоит ли строить in-house, нанимать или расширить команду партнёром, у которого практика уже есть.

Поговорите с нашей QA-командой о вашем продукте

Полчаса разговора с людьми, выпустившими 625+ проектов: вы уйдёте с конкретным планом по структуре QA, инструментам и стоимости — независимо от того, начнём мы работать вместе или нет.

Позвоните нам → Напишите нам →

  • Процессы