惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

Все публикации подряд на Хабре

Ловим музу за клавиатуру: как айтишнику стать автором Что умеет Midjourney в 2026? Мой немного грустный разбор этого шикарного инструмента Никто не любит писать тесты, но ИИ может исправить это IPv8 выглядит как мечта. Поэтому почти наверняка не взлетит Производители вернули в продажу материнки с DDR3. Что происходит? Управление агентом с телефона через Telegram теперь в KodaCode От координации к лидерству: как меняется роль руководителя разработки Я сделала родителям бизнес вместо пенсии: зарабатываем 70 тысяч, мама не даёт продать В три раза быстрее приемка товара и оптимизация трудозатрат на 73%: как «РСТ-Инвент» помог Gulliver Group ИИ-шечный мир победил? О влиянии искусственного интеллекта на игропром Кремль снижает давление на Телеграмм пока Европа строит интернет по паспорту Как CEO, CTO и CIO за 8 часов собрали ИИ-директора, который умеет держать позицию под давлением Как (не) потерять домен за выходные Вместо 8 разных VPS: как я организовал практику студентам на одном сервере Почему твой Open Source проект не замечают? R&D: искусство управления неопределенностью в разработке AI-дефляция: вакансий для разработчиков больше, а рост зарплат — худший за 15 лет Мы отдали управление роботами OpenClaw. Что из этого вышло Галактический ID: система идентификации для всех форм разумной жизни Шесть основ бизнес-анализа: начинаем с вопроса «Кто в игре?» Код-ревью, в котором дело не в коде Данные переехали. Команда — нет Системной подход к сдаче OSWE в 2025 Почему комната управления реактором покрашена в цвет морской пены 4 YAML-файла вместо PySpark: как аналитикам строить пайплайны без разработчиков LLM-агент для поиска свободных доменов: автоматизируем подбор Когда, зачем и как правильно начинать новую сессию в Claude Code? Как я заставил нейросеть писать макросы для FreeCAD Анатомия ИИ‑агента для подбора персонала. От тысячи резюме к топ‑10 за минуты Опыт разработчика как экономика внимания
Peer testing на основе Закона Линуса
Lendcore · 2026-05-22 · via Все публикации подряд на Хабре

Простой

5 мин

6.7K

"Given enough eyeballs, all bugs are shallow"

Вступление

Читая про Закон Линуса, нам понравилась идея о том, что при достаточном количестве независимых проверок большинство проблем становится быстро обнаруживаемым. Это натолкнуло нас на мысль адаптировать подобный подход в QA процессах с минимальными ресурсными затратами. Основная идея заключалась в том, чтобы перед стартом регресса версии, но после завершения работ разработки новых фичей (Фичефриза), новые фичи дополнительно проверялись другим тестировщиком, а не только ответственным за фичу QA.


Как мы решили это реализовать

На старте разработки формируется чек-лист проверки фичи на основе GDD и SLA. Далее процесс разработки продолжается без изменений вплоть до стадии фичефриза. Согласно нашим процессам, после завершения разработки версии остается отдельный день под балансные правки и финальную настройку межфункционального взаимодействия систем. Именно в это окно и удалось встроить подход без заметного влияния на сроки разработки.

Пример пайплайна:

  • На старте разработки, фича “Бег” была закреплена за мной

  • Изучаю требования, тестирую функциональность и составляю чек-листы

  • Тут стадия активной разработки

  • Версия уходит в фичефриз и формируется билд для плейтеста

  • Приступают к работе GD, где они плейтестят и шатают баланс

  • Определяются финальные даты Peer тестов

  • Я передаю свою фичу коллеге QA, который на основе чек-листа, описанных рисков и опасных зон формирует собственный тестовый набор.
    Его задача — независимо перепроверить сценарии, наиболее подверженные регрессиям и межфункциональным конфликтам.

  • После завершения формирования всех чек листов для Peer тестов формируется общий тестовый набор и отдел приступает к тестам за отведенное время

  • Каждый QA повторно проверяет функциональность с упором на менее очевидные сценарии и зоны риска.

  • Формируются артефакты тестирования. Баги в трекер, отчет в чат

Таким образом, Peer тесты выступают механизмом борьбы с замыленным взглядом.

Прим. Неочевидным бонусом является возможность подчистить за новым\неопытным специалистом, минимизируя риск отказа по этому фактору

"Безумие — это точное повторение одного и того же действия раз за разом в надежде на изменение "

Чтобы подход работал эффективно, важно избегать механического повторения уже известных сценариев. Иначе процесс быстро превращается в дублирование действий без заметного прироста качества.

Ограничения подхода

При росте команды и количества параллельных задач стоимость координации начинает заметно расти, стоимость подхода перестает перекрывать потенциальную выгоду от его использования

Высокая нагрузка на переключение контекста требует более качественного ведения документации и передачи контекста между QA.

На небольших проектах с коротким регрессом отдельный этап Peer тестов зачастую просто не оправдывает затраты времени.

Сильная зависимость от качества документации. Тут, как и описано выше, важно второму пилоту видеть что есть и что смотрелось, при поверхностном ГДД, недостаточном документировании QA, неописанных рисках, ничего не получится

Плюсы подхода

  • Снижаются риски замыленного взгляда со стороны ответственного QA

  • Повышается вероятность обнаружения регрессий, интеграционных и пограничных проблем

  • Проверка начинает охватывать менее очевидные зоны риска, связанные с легаси и параллельной разработкой

  • Знания о функциональности распределяются между несколькими QA

  • В краткосрочной перспективе снижается bus factor

  • Появляется дополнительная проверка качества тестовой документации

  • Подход относительно дешево встраивается в существующие процессы

Минусы подхода

  • Может увеличивать общее время разработки

  • Возможны дублирование проверок и размывание ответственности

  • Эффективность сильно зависит от качества документации и вовлеченности QA

  • При недостатке времени проверки могут становиться поверхностными

  • Требует постоянной актуализации тестовой документации

  • Может создавать ложное ощущение полноты покрытия

    Какие проблемы этот подход ловит лучше всего

    На практике наиболее заметную пользу подход показывает при поиске проблем, возникающих не внутри самой фичи, а на пересечении нескольких систем или после косвенных изменений в ходе дальнейшей разработки версии.

  • конфликты между фичами

  • скрытые зависимости

  • повреждение состояний

  • Проблемы конфигов

  • пограничные сценарии

Когда подход не нужен

Как правило, на небольших проектах с коротким циклом релизов и хорошо изолированными фичами дополнительный этап проверки не оправдывает затраты времени.

А почему у нас это применимо

В первую очередь это обусловлено особенностями пайплайна разработки. После завершения активной стадии разработки у нас остается отдельное окно, в рамках которого проходят балансные правки, плейтесты и финальная настройка межфункционального взаимодействия систем. Именно в этот этап удалось органично встроить Peer тесты без существенного влияния на сроки разработки

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

Также важную роль сыграл запрос на сокращение времени регресса. Ранее регрессионное тестирование включало в себя значительный объем проверок нового функционала, из-за чего занимало большое количество времени. Перенос части этих проверок в отдельный этап Peer тестов позволил разгрузить регресс без заметной потери качества проверки версии

Пример типичного кейса у нас:

Во время разработки фичи “Повар” вся функциональность проверялась в изолированном окружении и успешно проходила тестирование.

Позже, уже вне рамок задачи, были внесены небольшие изменения во фронтовую часть, затрагивающие обработку рецептов. В результате система перестала валидировать тип рецепта, из-за чего повару стало возможно передавать любые предметы вместо специальных поварских рецептов.

При этом основной пользовательский сценарий продолжал работать корректно — поварские рецепты принимались и обрабатывались без ошибок, поэтому дефект не был замечен разработчиком во время самопроверки.

Второй QA с большей вероятностью проверяет нестандартные сценарии вне уже сформированных ожиданий о поведении системы.

Про цифры

В среднем на версию у нас фиксируется около 70 дефектов.

После завершения активной стадии разработки и перехода версии в состояние фичефриза обычно остается около 30 нерешенных или поздно обнаруженных проблем.

Из них:

  • около 10 обнаруживается во время альфа- и бета-тестирования

  • около 15 находится во время дотестов задач, не успевших пройти полноценную проверку в активной стадии разработки

  • еще от 1 до 4 дефектов стабильно обнаруживаются во время Peer тестов

Несмотря на сравнительно небольшое количество найденных дефектов, в среднем речь идет примерно о 10% всех проблем, найденных после фичефриза, именно такие проблемы чаще всего имеют высокий шанс дойти до релиза

При этом подход практически не увеличил нагрузку на команду, так как был встроен в уже существующее окно балансных и интеграционных проверок. Дополнительным эффектом стало сокращение времени регресса примерно на 4 часа на каждого QA за счет вынесения части проверок нового функционала в отдельный этап.

Итого

Большинство найденных проблем возникали не внутри самой фичи, а на пересечении нескольких систем. И именно там подход оказался наиболее полезным.