9 декабря 2025 г.

Владислав Лаптев

У многих российских ИТ-вендоров и компаний с крупными подразделениями инхаус-разработки сложилась критическая ситуация с тестированием ПО: неоправданный рост команд тестировщиков приводит к излишним издержкам и снижению качества продуктов. О причинах и путях решения этой проблемы — директор по инновациям Fork-Tech Владислав Лаптев.

Оптимизация ресурсов на разработку — требование рынка

Сегодня для ИТ-компаний, с одной стороны, по-прежнему актуально требование к высокому качеству программных продуктов и их максимально быстрому выводу на рынок (Time to Market), а с другой — возникает задача повышения эффективности разработки и оптимизации затрат. Руководители начинают пристально изучать, на каком этапе какое количество ресурсов расходуется. В такой ситуации тестирование — это, пожалуй, первое, на что они обращают внимание: ведь во многих компаниях штат тестировщиков превышает сотню человек, при этом уровень автоматизации крайне низкий — большинство тестов проводятся вручную.

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

На Западе ведущие вендоры эту проблему решили. Там у разработчиков есть правило: если я пишу код, то я его и покрываю автотестами. Роль тестировщиков при этом изменилась, а квалификация — выросла: теперь это специалисты по контролю качества (QA, Quality Assurance). Они подбирают оптимальные методологии и фреймворки, контролируют дисциплину проектных команд, отслеживают метрики эффективности, формируют отчеты. На российском рынке специалистов такого уровня пока очень мало. Это связано не с нехваткой их квалификации, а, скорее, с тем, что российский ИТ-рынок находится в позиции догоняющего: сегодня мы как будто наступаем на те грабли, которые зарубежные вендоры прошли 5–10 лет назад. И этот болезненный этап нужно преодолеть как можно скорее.

Традиционный подход к тестированию связан с высокими рисками

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

Основные финансовые риски здесь такие:

  • Высокие затраты на содержание команды. Если компания стремится не потерять в скорости, то при ручном тестировании появление нового функционала ПО требуется нанимать больше тестировщиков — линейный персонал, не обладающий высокой квалификацией. Количество программистов и бизнес-стримов при этом не увеличивается.
  • Расходы на разработку растут с каждым новым релизом независимо от того, нанимает компания больше людей, или нет. Вместо расширения штата можно, например, изменить подход к проектированию архитектуры решения, сделать его модульным. Но это тоже длительный и дорогостоящий процесс, который без автоматизации не несет большого смысла.
  • Потеря прибыли из-за дефектов на продакшене. Это и недополученная прибыль, и необходимость тратить ресурсы на доработку приложений, выискивая дефекты, которые гораздо проще было бы устранить заранее.

Основные операционные риски:

  • Сложность управления большими командами. Часто организационная структура раздутой команды разработки содержит избыточное количество звеньев: «лид над лидом, и над ним еще один лид». Это, во-первых, снижает продуктивность, а во-вторых, — влечет за собой дополнительные расходы.
  • Отсутствие задокументированных процессов. Опытный, давно работающий в компании тестировщик, скорее всего, может проверить код «по памяти». Но если он уйдет, онбординг новых сотрудников, их погружение в проект станет головной болью для руководителей. Это особенно актуально, если в компании не внедрена система управления тестированием (TMS, Test Management System), что мы наблюдаем очень часто.
  • Проблемы с обслуживанием legacy-систем. В крупных компаниях много приложений, чаще всего самописных, которые были разработаны много лет назад, ответственные за них специалисты давно ушли, а документация не сохранилась. Такие системы часто используются по принципу «работает — не трогай», вносить в них изменения, исправлять ошибки очень сложно. Наличие автоматизации позволило бы как минимум упростить реверс-инжиниринг.

Решение — инвестиции в автоматизацию

Контроль качества приложений — неотъемлемая часть процесса разработки. Инвестировать в качество — необходимо. Но если полагаться только на ручное тестирование, то с каждым релизом таких вложений будет требоваться все больше. Автоматизация же позволяет добиться оптимального соотношения масштаба программного продукта и стоимости его разработки и поддержки. В частности, автотесты могут проверять уже ранее внедренную функциональность, а ручные тестировщики — только новую. Такой гибридный формат позволяет добиться быстрого вывода в продакшен продукта высокого качества.

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

  • Обучение персонала и внедрение культуры автоматизации тестирования. Разработчики должны взять за правило: весь написанный код необходимо покрывать тестами.
  • Создание роли QA-специалиста — эксперта, который будет формировать методологию контроля качества, следить за метриками, определять, какой тип тестирования (ручной или автоматизированный) больше подходит в том или ином случае.
  • Использование передовых технологий. Помимо внедрения TMS-системы, компании стоит обратить внимание на инструменты на основе ИИ, которых на рынке уже множество. Они отлично справляются с написанием ряда тестов (API-тестирование, behavior-тестирование и UI-тестирование), созданием и верификацией тест-планов и тест-кейсов. Внедренный в систему поддержки разработки ИИ-агент может следить за изменениями в коде, принимать решение о необходимости добавления новых тестов, реагировать на ошибки при запуске тестов. Однако в некоторых случаях для автоматизации достаточно и более простых скриптов.

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

Источник: Владислав Лаптев, директор по инновациям Fork-Tech