Идеальное соотношение – сколько тестировщиков нужно команде проекта? |
05.08.2025 00:00 |
Наверное, все ИТ-специалисты сталкивались с ситуацией, когда непонятно, почему именно столько человек работает над проектом. Или почему связка тестировщиков и разработчиков не работает как слаженный механизм? В этой статье разберем сколько QA-инженеров нужно проекту, от чего это зависит и есть ли корреляция количества тестировщиков с количеством разработчиков. Эта статья будет полезна тестировщикам, разработчикам, проектным менеджерам и руководителям команд, чтобы определить нужны ли команде проекта новые люди. В статье рассмотрим:
Цель статьи – найти идеальный баланс количества людей в команде, отталкиваясь от сути проекта. Идеальное соотношение – это когда состав команды сбалансирован настолько, что на проекте не возникает никаких «бутылочных горлышек». Тестирование является последним этапом жизненного цикла производства ПО и отвечает за качество произведенного ПО. Нужно создать такой баланс, чтобы тестирование было очень качественным «фильтром-горлышком» и успевало за всеми процессами разработки ПО: анализом, проектированием и разработкой. Я провел опрос по соотношению тестировщиков и разработчиков в проектах других ИТ-специалистов. Чаще всего в проектах на 1 тестировщика приходится 3 разработчика. Есть и такие, где соотношение составляет 1 к 1. Отчего же это зависит? И какое оно – идеальное соотношение? В некоторых ИТ-проектах вообще не предусмотрены тестировщики. Там тестированием занимаются аналитики, проджект-менеджеры или пользователи, такие мы даже рассматривать не будем. Один из процессов тестирования — это проверка функционала, реализованного разработчиками. Конечно, разработчики и сами пишут тесты на свой код, но почему-то всегда находятся баги — для этого и существует профессия тестировщика. При создании таких соотношений в команде, учитываются разные аспекты. Перечислю основные: Аспект №1 – тип приложенияОт количества программных составляющих проекта зависит степень сложности проекта. Рассмотрим виды и их ключевые особенности: 1. Веб-приложение. Чаще всего оно состоит из бэкенда, фронтенда и базы данных. Данное приложение может быть архитектурно как и монолитным, так и микросервисным. 2. Мобильное приложение. Разновидностей таких приложений очень много, но чаще всего у них есть бэкенд, база данных и сама «визуальная часть». Приложение может быть нативным, прогрессивным или веб. 3. Чистый бэкенд. Это может быть интеграция или просто обработка данных. Исходя из этого уже можно понять количество будущих проверок в зависимости от количества устройств. Аспект №2 –этапы разработки1. MVP –минимальный жизнеспособный продукт, ещё его можно назвать стартапом. На этом этапе функциональность приложения ограничена, поэтому требуется небольшое количество проверок. 2. Продукт уже выпущен или внедрен в пользование, осуществляется его поддержка. На этом этапе остаются только мелкие доработки, если только это не процесс рефакторинга или перехода на новый стек. 3. Продукт в активной работе и его функционал регулярно расширяется. На этом этапе поддерживается существующий функционал и процесс разработки новых фич. 4.* Этап, когда у разработчиков не горят сроки. Они начинают писать unit-тесты, которые тоже могут ловить ошибки. Да-да, это отсылка к пирамиде тестирования, не стоит о ней забывать. Аспект №3 – сложностьПод сложностью я имею ввиду количество возможных аффилированных объектов и общей логики. Например, в работе может быть одностраничный сайт, где ничего не задето, то есть проверяется только отображение и существующий функционал на сайте. А может быть огромный сайт, где много интеграций и функционала на бэке и фронте. Все это влечет кратное увеличение проверок. Почему именно кратное? Допустим, в карточке клиента есть 3 поля, каждое из которых принимает по 3 возможных значения — это 9 возможных комбинаций. Добавим четвёртое поле с аналогичной бизнес-логикой. Для разработчика это влечет увеличение трудозатрат на 33%. Но в тестировании количество комбинаций увеличивается с 9 до 27. Следовательно, рост затрат не на 33%, а на все 200%. Аспект №4 – требования к тестированию или критичностьВ каких-то проектах пропустить баг – это нормально, а в каких-то такой пропуск критичен. Какие-то проекты – это процесс обработки данных, а какие-то – это все вместе взятое, включая обработку данных. Где-то допустимо писать чек-листы, а для каких-то проектов нужна полная тестовая документация и высокий процент покрытия тест-кейсов автотестами. Если тестировщиков будет мало, то количество непокрытого функционала будет расти, скорость тестирования будет падать, а качество снижаться. Сами тестировщики будут ходить уставшие. Из личного опытаМы с коллегами сталкивались с различными проектами. Расскажу о трёх наиболее интересных, в которых соотношение тестировщиков и разработчиков было разным. Проект №1Проект с чистым бэком, где нет уровня представления UI/визуального отображения. Есть только методы и функции внутренней обработки данных, которые участвуют в других больших проектах. Так устроен, например, проект выдачи карты, куда, в зависимости от условий, приходят данные, генерируется необходимая карта и отдается обратно. В этом проекте участвуют 2 тестировщика и 11 разработчиков. Интересное соотношение! Вы спросите, а как они успевают с соотношением ~1/5? Особенность состоит в том, что это чистый бэк, стоимость и сложность автоматизации средняя (смотри пирамиду тестирования). Время проверки задачи гораздо ниже, чем время разработки, поскольку часть проверок уже автоматизирована. Проект №2Веб-приложение, в котором соотношение тестировщиков и разработчиков составляет 1 к 6 соответственно. Почти тоже самое, что и в примере выше, но тут есть фронт (UI/визуал/картинка, чтобы было понятнее). А тут как тестировщики успевают? Особенность кроется не в автоматизации, как в примере выше, а в небольшом функционале, который можно проверять совместно. Связку фронт-бэк-база данных тестируется со стороны фронта и проверяет методы бэка. В таком проекте один тестировщик может выстроить процессы так, как ему удобно или усовершенствовать способы проверки, провести регресс при выпуске новой версии – протестировать и убедиться, что ничего не сломалось. Проект №3Расскажу о собственном проекте, над которым работаю сейчас. Речь об огромном веб-приложении для обслуживания клиентов банка, в котором много микросервисов и интересного функционала. Так какое там соотношение? 21 ручной тестировщик, 7 автотестировщиков и 26 Front-end и Back-end разработчиков. То есть даже больше, чем 1 к 1, почему так? Основная причина в критичности и важности этого веб-приложения для банка, соответственно у команды максимальный приоритет на обеспечении близкого к идеалу качества и минимального простоя. При таком соотношении получается грамотно составлять тестовую документацию, имея большое покрытие и фокус на выпуске новой фичи. А еще получается оставлять много информации после выпуска фичи и делиться ею с коллегами. И на развитие, чтобы повышать качество и скорость тестирования, немного времени тоже остается. Таким образом, количество тестировщиков зависит в основном от:
Важно понимать и анализировать каждый из параметров, чтобы найти идеальное соотношение. Подведем итогиУниверсального ответа на вопрос «какое должно быть соотношение тестировщиков и разработчиков?» нет, все зависит от проекта, окружающих факторов и даже опыта членов команды. Но попробуем все-таки вывести усредненную формулу. Как пользоваться коэффициентамиРассмотрим пример: приложение на чистом бэке, которое находится на фазе разработки и поддержки, количество логики среднее, допускаются минорные баги: 1.5*1.5* 1.5 1.5 = 5.0625 – в таком приложении будет оптимальным отношение QA к разработчикам 1 к 5 соответственно. Другой пример: веб-приложение, где много логики, активная фаза развития и допускаются минорные баги: 1*1*1*1.5 = 1.5 – в таком ПО допускается соотношение 2 тестировщика на 3 разработчика. Самое важное в этом деле — это участие каждого члена команды в процессах и качество исходного продукта. Тестированию в компании «Совкомбанк Технологии» отводится большое внимания – мы используем максимальный гибкий подход к количеству QA на проекте, при котором у нас получается создавать устойчивые команды, способные эффективно работать с высоким качеством. Если тебе тоже интересно развиваться в тестировании, разработке или других направлениях ИТ, смотри актуальные вакансии на сайте Совкомбанк Технологий. |