Как оценить время на тестирование
Оценка трудозатрат в тестировании
Как правильно оценивать время на тестирование?
Оценка трудозатрат на тестирование — это время в часах, днях, необходимое для проведения работ по тестированию программного обеспечения.
Оценка нужна для определения трудозатрат по времени, которое необходимо для того, чтобы в полной мере провести все работы по тестированию программного продукта.
Оценка время — один из трех показателей, влияющих на качество выпускаемого продукта
Оценка времени на тестирование состоит из различных аспектов, таких как:
Если с 1-6 пунктов все более-менее прозрачно, то с риски — это отдельная проблема, требующая индивидуального анализа на каждом проекте.
Важно понимать специфику проекта и учитывать риски, которые могут сработать.
Для этого можно составить матрицу рисков, примерно оценить важность каждого риска, чтобы понимать, насколько сильно он может отклонить нас по времени от конечной цели.
Абстрактный пример матрицы рисков
Также отмечу, если оценка работает на одном проекте, то на другом проекте она может быть совершенно не применима.
Менеджеров в команде интересуют сроки поставки готового функционала на продуктивный стенд (заказчику).
Какие перекосы по оценке времени могут быть в команде:
Случай 1. Разработчики пишут код быстрее, чем тестировщики успевают тестировать код. В данном случае может возникнуть простой у разработчиков и большая нагрузка на тестировщиков. Эта ситуация встречается на большинстве проектов, особенное если в команде тестирование меньше человек, чем в команде разработчиков или не соблюдается баланс на 2 разработчиков 1 тестировщик. В данном случае необходимо увеличить трудозатраты по тестированию.
Случай 2. Тестировщики простаивают без новых задач на тестирование, так как разработчики занимаются написанием нового кода или исправлением дефектов. В данном случае можно направить силы команды тестирования на проведение регрессионных тестов или написание тестовой документации.
Случай 3. Аналитики не успевают писать техническую документацию по разработке системы, тогда простаивают и разработчики, и тестировщики. Здесь необходимо увеличить ресурсы по аналитике, так как без требований вся команда будет простаивать.
Случай 4. Приоритеты по задачам постоянно меняются, команда переключается с одной функциональности на другую, в итоге не выпуская ничего из запланированного на текущую итерацию. Необходимо четко сосредотачиваться на том, что важно для пользователя, приступать к новым задачам только после окончания текущих.
Оценку по тестированию можно и нужно формировать по различным видам тестирования:
Примеры оценок по видам тестирования:
Какую пользу приносит проекту оценка по тестированию:
Важно также понимать, что оценка не обязательно может выражаться в часах или раб.днях. Например, в методологии разработки Scrum применяется оценка в story-point с планнинг покером.
Оценка тестирования: как высчитать точное время на тестирование системы или «Когда тесты будут готовы?!»
Доброго времени суток всем! Меня зовут Денис, я руководитель службы тестирования в «БАРС Груп». Это мой первый пост на Хабре.
Прочитав очень много интересных статей и почерпнув оттуда много полезной информации, захотелось что-то дать взамен. Тогда я начал анализировать темы: одни были уже озвучены, другие слишком просты («как войти в IT?»). P.S. ничьи чувства задеть не хотелось 🙂
Как высчитать время на тесты – проблема и решение
Как руководитель службы, я постоянно сталкиваюсь с вопросом от менеджеров: «Когда будет готово?» или «Сколько времени надо на тестирование?». Казалось бы что тут сложного, бери оценку по предыдущему проекту и плюс-минус тоже самое… но нет. Я понял, что задача не тривиальна и требует детальной проработки. И хочу поделиться ее решением.
В нашей компании много бизнес-центров и в каждом свой подход к разработке — преимущественно это Kanban и Scrum. Поэтому выделены команды автоматизаторов-тестировщиков, которые синхронизированы с командой разработчиков с их методологией.
Из-за разных подходов по управлению разработкой возникают сложности в единообразии формирования задач и планирования. Применение Kanban и Scrum в чистом виде не давало ответа, сколько времени уйдет на тестирование. В проектных решениях приходится каждый раз проводить оценку новому функционалу и покрытию его тестами. У меня на это уходило много времени на расчеты. Поэтому я решил взять методы оценки временных затрат по разработке ПО (на автоматизацию тестирования) за основу и модифицировать под свои реалии. В основу лег принцип средневзвешенной оценки и подсчет на основе типизирования. В качестве оценок будут выступать временные показатели по автоматизации типовых элементов системы, а в качестве весов — уровень подготовки специалистов. При формировании значений весов я выбрал точность оценки при выполнении задачи, т. е., чем опытнее специалист, тем меньше погрешность оценки. Получились следующие значения:
Для подсчета взял два тестирования – функциональное и UI тестирование, потому что они суммарно составляют около 85%.
Для получения итогового результата нам нужно собрать средневзвешенную оценку по каждому элементу в более крупный объект для расчетов — категорию.
UI тестирование
При тестировании UI требуется эмулировать работу пользователя через framework Selenium.Webdriver. При использовании такого подхода существуют сложно конструируемые элементы на формах: вкладки, документы с онлайн редактированием, огромные гриды со строками, древовидная структура и т. д. Помимо этих элементов есть еще факторы, которые влияют на время разработки тестов:
В итоге я получил следующие результаты, которые представил в таблице:
Функциональное тестирование
Для функциональных тестов ситуация аналогична UI — выделены категории для систематизации кейсов. Помимо REST сервисов стоит сказать и о SOAP, он будет аналогичен 3 категории REST.
Интеграционное тестирование подразумевает тестирование нескольких методов в одном сервисе, для примерной оценки мы взяли наличие 5 методов из расчета на 1 сервис.
Аналогично UI таблице:
При интеграционном тестировании происходит проверка работы сервисов, построенных как на REST, так и на SOAP. При проектировании сервиса количество используемых методов внутри может разным. Для расчетов мы взяли среднее значение в 5 методов.
При таком подсчете временных затрат на проект процент попадания в эту оценку составил 81.
Вместо заключения
Чтобы провести подсчет первый раз, понадобилась неделя плотной работы. Поэтому оценку делал уже после проведения тестирования и затем сравнил результаты с реальными временными затратами.
Основную работу достаточно проделать один раз и в дальнейшем считать уже по готовой «формуле». Но нужно учитывать факт, что уровень сотрудников растет, поэтому необходимо понимать вес каждого работника, чтобы знать, нужно ли пересчитывать показатели.
Все выше описанное является моим опытом и не претендует на истину.
Как посчитать время на тестирование
… Или, другими словами, как посчитать время на тестирование так, чтобы все поверили? Ведь на самом деле у нас обычно — две цели. Первая — посчитать время так, чтобы не ошибиться и правильно распределить ресурсы — скорее всего, поначалу сделать это хорошо все равно не получится. Вторая цель более реальна: посчитать время на тестирование так, чтобы доказать кому-то, что вам нужны еще люди в команде, объяснить, почему вы не успеваете и т. д. Как ни странно, после того, как раз 50 сделаете второе, то и первое будет получаться!
Давайте теперь посмотрим, как считать время на тестирование, на конкретных примерах.
Случай 1: «Вот ТЗ, сколько времени уйдет на написание тестовых случаев?»
Допустим, приходит нам приходит объемная папка с хорошо прописанным техническим заданием (ТЗ). Нас спрашивают, сколько времени уйдет, чтобы написать тестовые сценарии (ТС) ко всему этому делу.
Прежде чем мы сможем ответить на этот вопрос, нам хорошо бы знать:
От ответов на все эти вопросы зависит, сколько времени уйдет на написание одного позитивного тестового случая — T1. Также стоит учитывать время на написание одного негативного ТС (он будет обозначаться как T-1). Мой опыт говорит, что негативные ТС обычно пишутся дольше — также их обычно нужно больше. Конечно, здесь бывает по-разному, но мне кажется, что, чем лучше мы знаем предметную область, чем лучше разбираемся в приложении, чем лучше понимаем, где и как оно может упасть, тем больше у нас будет негативных ТС. Если у вас, например, на три позитивных ТС приходится один негативный, возможно, вы недопонимаете приложение. Если на один позитивный вы можете придумать 500 негативных ТС, это — хорошая работа. У меня соотношение позитивных и негативных ТС — обычно от ½ до 1/5.
Т. ч. нам нужно посчитать время на написание позитивного ТС, прикинуть соотношение позитивных и негативных, и посчитать время целиком.
Варианты оценки:
X тестовых случаев на страницу, T1 минут на ТС, Y страниц (T-1 – негативный ТС)
Написание тестовых случаев Y времени от времени на тестирование
Пример
Давайте теперь посмотрим, как работают эти методики, на конкретном примере. Например, мы пишем социальную сеть для домашних питомцев. У нас есть ТЗ на эту соцсеть, всего 47 страниц. Допустим, мы его разбили на однородные части. Вот что мы в итоге имеем:
Комментарий: мы потратили час на аккаунт хозяина, успели покрыть половину страницы, а этих половин у нас 10 (1×10). Мы потратили 3 часа на профиль животного, за три часа покрыли одну страницу (3×15). Мы потратили 6 часов на покрытие одной страницы фото/видео (так много потому, что тут, допустим, всё очень сложно). 2 часа потратили на друзей и сделали за это время пол страницы (2×16). 1 час потратили на сообщения, сделали за час пол страницы (1×10). Нефункциональные требования мы тут решили смотреть не по страницам, а по самим требованиям: потратили 3 часа на одно требование (3×12). Всё это заняло у нас 16 часов — значит, за 2 дня мы оценили время в 205 часов.
Оценки у нас не сходятся, но это нормально — по крайней мере, мы сумели посчитать примерно. А если у нас достаточно времени на оценивание, можем сделать оценку несколькими способами.
Считаем время при использовании Agile
Теперь поговорим о гибких методологиях разработки, когда нет технического задания. Тут не очень понятно, как оценивать, но все же можно выделить кое-какие подходы. Например, можно:
Отступление для QA-менеджеров
Теперь небольшое отступления для QA-менеджеров, менеджеров проектов. Все действия по созданию и по запуску тестовых случаев мы можем разделить на следующие компоненты:





Оценка времени на работу – сложная задача и многое тут зависит от опыта. Однако, используя необходимые принципы и подходы можно оценить (хотя бы приблизительно) время на выполнение даже новой и неизвестной задачи. Существует множество различных методов оценки от применения математических моделей до комбинирования мнений экспертов. В этой статье я опишу алгоритм оценки, который сформирован на моем опыте работы в QA.
Итак, начнем с анализа и декомпозиции требований. Как это обычно бывает, не все требования явно прописаны в ТЗ, определенная часть условий будет являться следствием перечисленных. Что в итоге мы фактически должны проверить? Ниже я сразу буду указывать краткое описание, какие требования мы проверяем, какие для этого использует тесты и количество необходимых тестов:
Количество тестов мы получили, теперь нужно определить сколько времени потребуется на то чтобы:
На этом этапе нам необходимо спрогнозировать:
Оценка этого шага очень сильно зависит от специфики работы\системы\процессов и будет отличаться для каждого частного случая. Поэтому здесь я укажу только варианты направлений и областей, где может теряться дополнительное время:
Итак, теперь посмотрим, какие оценки у нас получились на каждом шаге: