Когда на новом проекте менеджер попросила меня провести эстимацию тестирования, я сначала растерялась, ведь это вроде как задача менеджера или старшего тестировщика. А потом вспомнила, что я – единственный тестировщик на проекте. И понеслось…

☑ Что случилось?

Немного о методах эстимации

Что у меня получилось?

На сколько <лет>часов я ошиблась?

Какие ошибки я допустила

Если вы впервые столкнулись с ЭсТИМацией

Что случилось?

Вспомнила я об этой истории недавно, когда помогала сориентироваться в теме молодой коллеге. Она попала в подобную ситуацию – приложение с нуля, маленькая команда, один QA, есть ТЗ и больше ничего, клиент желает выйти в прод через 3 месяца. Она паникует и не понимает, с чего начать.

Сейчас я спокойно предложила коллеге выдохнуть. Но вот тогда, несколько лет назад, я сама знатно стрессанула, когда поняла, что теория и практика – опять (вот сюрприз!) расходятся. Учить определение и рассказывать о методах эстимации на собеседовании – это одно. Но оценивать задачи на реальном проекте, да ещё когда ты там сам себе старший и младший тестировщик, да ещё впервые – это, знаете ли, для неокрепшей психики новичка такое себе.

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

Из плюсов – у меня были требования.

Из минусов – не было ничего, кроме требований. Тестовую документацию предстояло тоже писать самой.

Немножко о методах эстимации

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

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

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

Нужное время = (О + (4 * НВ) + Х) / 6 ,

где 6 – это стандартное отклонение. Сложновато – первые три варианта тоже надо откуда-то взять. Я скипнула этот метод.

Метод Дельфи. Тут нужна группа экспертов, которая соберётся, заполнит анкеты или сразу всё обсудит и вынесет вердикт, придя к консенсусу. Ну где ж их взять чаще всего, если надо ответить "ещё вчера"?:)) Тоже мимо.

Процентное отношение к разработке. Достаточно популярный метод. Берём время разработки и в зависимости от количества тестировщиков и разработчиков на проекте, умножаем время разработки на процент. Если на два разработчика один тестировщик, время на 0,5 умножаем. Для меня разницы никакой, так как о сроках на разработку мне всё равно не сказали.

UPD Некоторые эксперты мне написали в ЛС, что обычно 60% от разработки берут. Или 80%, если с рисками.

А как у вас?

Опыт. Полезный метод. Очевидный, как то, что…да как что угодно. Я, конечно, использовала.

Метод Пальцем в небо. Как ни странно, он так и называется. Хотя, как по мне, то если в начале работы сразу пытаться использовать умные формулы вышеуказанных методов, то примерно ПВН и получается, потому что ты совершенно не понимаешь, как эти штуки применить без опыта.

Что у меня получилось

Повторюсь – мне очень повезло, что я пришла на проект с готовыми требованиями. Была чётко оформленная документация и аналитик на связи. Мне предоставили время для ознакомления с требованиями (хотя фактически это оказалось тестированием требований) и составления плана тестирования.

Итак, ДО начала проекта я:

ツ провела тестирование требований, после чего аналитик внёс несколько изменений и можно было начинать работу;

ツ выбрала (не сразу, к сожалению) оптимальный для себя метод оценки времени на тестирование, совместив три в одном: опыт+сама себе эксперт+декомпозиция;

ツ нашла и установила на свой смартфон приложение, в котором были схожие функции с нашим приложением, по некоторым у меня не было опыта тестирования тогда;

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

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

ツ в риски я заложила 30%.

Цифра, которую я трясущимися руками напечатала менеджеру – 110 часов. Мне казалось, сейчас меня сразу уволят, я ведь так много насчитала. 

На сколько <лет>часов я ошиблась?

По окончании работы на проекте я сравнила затраченные часы и увидела, что в запасе осталось ещё 26 часов. То есть мои расчёты оказались немного(немного ли?) преувеличены, учитывая даже риски, написание тестовой документации и то, что в это время вошло тестирование на iOS, которое не планировалось.

Какие ошибки я допустила:

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

– подготовительные мероприятия типа тестирования требований и самой оценки тестирования я не внесла НИКУДА (рукалицо, знаю). Фактически, я просто личное время потратила. А могла бы получить оплату за эти 4 дня…

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

Я знаю, что тут в основном люди опытные, но всё же. 

Если вы впервые столкнулись с ЭсТИМацией,

…то первым делом – не паникуйте. Или ещё лучше – поставьте таймер на 15 минут и попаникуйте. А потом выключите таймер, выдохните и подумайте, где можно найти ответ/совет (спойлер – у коллег, куратора, в гугле, в этой статье немного тоже есть)…

А если ещё не сталкивались, но уже работаете QA, то, даже если вас не просят, перед тем, как приступить к задаче, навскидку прикиньте, сколько она может занять. Засеките время и, когда закроете таску и/или оформите по ней баги, отметьте, насколько вы были близки к реальному времени. Это очень поможет вам не только в эстимации, но и в элементарном планировании рабочего времени.

Если у вас есть лайфхаки по эстимации тестирования или другого процесса, поделитесь, пожалуйста, в комментариях. Есть ощущение, что мой рассказ далеко не всё охватил. Мария, специалист по тестированию ЛК.

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

Комментарии (26)


  1. YuryZakharov
    26.08.2024 22:57
    +4

    Скажите, а что является результатом процесса эстимации?


    1. QualityLab Автор
      26.08.2024 22:57
      +7

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

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


  1. dskonev
    26.08.2024 22:57
    +7

    Как правило, на одного разработчика два тестировщика

    А где такие правила есть? Я как-то привык к тому, что стремятся к отношению "один тестировщик на 3|4 разработчика"


    1. QualityLab Автор
      26.08.2024 22:57
      +7

      Да нет таких правил прописанных, конечно. Всё зависит от проекта. Я исходила из своих, когда было удобно работать. Вот 1 к 4 пока не приходилось.


      1. DragonSlayer2021
        26.08.2024 22:57
        +6

        Сейчас начальство прочитает,что не приходилось, и 'будет вам счастье '


    1. vshopin
      26.08.2024 22:57
      +4

      У нас вообще 1 тестировщик примерно на 7-10 разработчиков :(


      1. QualityLab Автор
        26.08.2024 22:57
        +2

        Оу. Сочувствую.


    1. shark14
      26.08.2024 22:57

      У нас 1 тестировщик на 5-6 разработчиков.

      Где-то 70% работы тестировщика - проверка задач, которые сделали разработчики (перед ежедневным релизом). За день 2-3 задачи проверяются. Остальные 30% работы - написание и правка UI-тестов.

      Разработчик в среднем за неделю делается 2-3 задачи. Соответственно, команда делает порядка 10-15 задачек за неделю, что как раз примерно соответствует «производительности» тестировщика.

      При этом на проекте непрерывный релизный цикл, поэтому нагрузка относительно равномерная от недели к неделе.

      Вопрос, почему у кого-то в проекте на 1 разработчика 2 тестировщика? Разработчик больше задач за неделю делает или тестировщик меньше может протестировать?


      1. StupidityIncarnate
        26.08.2024 22:57
        +1

        Может, зависит от сложности проекта? Если проект связан с проведением финансовых платежей, уровня mission critical и категорически нельзя допустить ошибок, иначе будут неприятные разборы полетов от других участников проекта. У нас похожий проект и здесь на 1 погруженного тестировщика приходится 2 разработчика. Всего чуть больше десятка человек в команде, разрабы + тестировщики.

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


        1. shark14
          26.08.2024 22:57
          +2

          Если вы пишете про регрессию - вероятно, у вас она делается вручную и это по логичным причинам занимает много времени?

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


  1. gun_dose
    26.08.2024 22:57
    +1

    запасе осталось ещё 26 часов

    А сколько всего часов было? 26 из 50 и 26 из 150 - это две большие разницы. Ну и ещё неплохо иметь небольшой запас на случай, если вдруг клиент (ну или кто-то в цепочке после QA) найдёт что-то, что вы упустили - можно будет спокойно пофиксить за оставшиеся часы.


    1. vs39
      26.08.2024 22:57
      +4

      Так вот же: «Цифра, которую я трясущимися руками напечатала менеджеру – 110 часов


      1. gun_dose
        26.08.2024 22:57
        +3

        А, действительно, это я ещё не проснулся просто))) В целом очень даже не плохо. У меня на позапрошлой работе директор может написать эстимэйт 100 часов, а по факту выйдет 400 - вот это страшно.


  1. ozzyBLR
    26.08.2024 22:57
    +4

    Сразу скажу, что QA не являюсь и богатого опыта самостоятельной оценки затрат времени на тестирование не имею. Возможно из-за этого вопросы и возник)

    А можно хотя бы грубо раскладку по часам? Что сколько времени заняло? Тут грубо говоря получилось, что один-единственный тестировщик затащил разработку мобильного приложения с нуля (ну ок, при готовых требованиях) за три месяца, работая на 0.2 ставки 0_о


    1. QualityLab Автор
      26.08.2024 22:57
      +8

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

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

      Но как я написала в ошибках -- я по неопытности потратила на оценку личное время, которое никуда не затрекалось.


  1. Harry87
    26.08.2024 22:57
    +2

    О, эстимация. Как вспомню как я делал её - так в холодный пот бросает. И полностью согласен, что всегда надо закладывать время на форс-мажоры.


    1. Kerman
      26.08.2024 22:57

      Тут самый главный вопрос: на какие форс-мажоры и сколько.


      1. MarijQA
        26.08.2024 22:57
        +4

        Ну вот форс-мажоры - это уж точно пусть менеджер просчитывает.


      1. remzalp
        26.08.2024 22:57

        π (pi) чудесный коэффициент неопределённости, особенно когда вообще не ясно.
        Первая оценка будет всё-равно оптимистичной, но при ближайшем рассмотрении всё будет не настолько радужно - теория *оп в помощь