Как понять, что пора автоматизировать тестирование

Качество IT-продукта помогают обеспечить QA-специалисты и инженеры по разработке в тестировании (SDET) . За счет автотестов команда в сжатые сроки охватывает множество необходимых проверок, чтобы сделать процессы тестирования лучше и проще. О задачах и инструментах мы рассказали в нашем подкасте, а сегодня рассмотрим, когда нужна автоматизация тестирования и что учесть при ее внедрении.

Как понять, что пора автоматизировать тестирование

Какие выгоды дает автоматизация тестирования

Сокращение time-to-market

Процесс «нахождение бага – регистрация – исправление – проверка» в ручном режиме занимает около дня, а в автоматизированном – 2 минуты. За счет этого от постановки задачи до релиза приложения проходит значительно меньше времени. Кроме того, автотесты зачастую планируются на ночное время и запускаются в несколько потоков, что также обеспечивает скорость разработки.

Уменьшение затрат на тестирование

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

Как понять, что пора автоматизировать тестирование

Повышение прозрачности и качества тестирования

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

Проверяем необходимость внедрения автоматизированного тестирования

Спрогнозировать на основании ряда параметров, в какой момент проекта автоматизированное тестирование становится выгоднее ручного, помогают калькуляторы ROI (Return on Investment) . При этом полученная оценка приблизительна, так как нельзя заранее предугадать все возникающие риски.

Вместе с этим предварительно мы проверяем проект на соответствие критериям, которые показывают, что пора автоматизировать тестирование.

Продолжительность проекта – 6 и более месяцев

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

Наличие продолжительных регрессионных тестов

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

Выявление большого количества багов на поздних этапах тестирования

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

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

За счет автоматизации можно охватить огромное количество проверок. Автотест не пропустит ни один участок, он выполнит весь необходимый объем. Одно из преимуществ автоматизации: можно написать один тест и настроить стенд так, что он сразу параллельно проверит, например, все версии браузера и разрешения экранов. Вся документация генерируется и заполняется автоматически. Это повышает ее точность, полноту и скорость создания.

Проблемы с производительностью и/или стабильностью работы систем

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

Что учитывать при переходе от ручного тестирования

Состав команды

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

Сроки проекта

Решение об автоматизации тестирования на том или ином проекте зависит от многих факторов, в том числе от сроков разработки. Практика показывает, что затраты на SDET начинают окупаться в среднем спустя полгода после начала работ. Еще через полгода экономия ресурсов в среднем составляет 140–150%, к концу второго года – может достигнуть 240%.

Соответствие тестов

Автоматизация тестирования эффективна при проверке функциональности, а не пользовательского опыта (UX). Также к потерям ресурсов приведет попытка автоматизации, когда в код постоянно вносятся изменения (исключая незначительные) или в ближайшей перспективе планируется изменение технологического стека.

Наличие актуальных тест-кейсов

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

Для автоматизации тестирования QA- и SDET-специалистам нужно написать или актуализировать тестовые сценарии. Если актуальные тест-кейсы уже есть, можно переходить к дальнейшим шагам.

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

С помощью автотестов мы сокращаем time-to-market, а значит, время от одного до другого релиза. ИТ-гиганты, такие как Амазон, нацелены на частый и даже ежедневный выпуск релизов. Если нет автоматизации, то в течение дня проверить функционал достаточно большого сервиса просто невозможно. Если это UI-тесты, то за 5 минут можно прогнать около двух десятков достаточно длинных сценариев. А если это API-тесты, число увеличивается до сотни.

Современные IT-решения, как правило, сложны, и цена ошибки в некоторых областях может быть высока – например, в медицине или финансовом секторе. Автоматизация тестирования позволяет снизить риски еще на этапе разработки

Евгений Барсуков, Руководитель направления SDET и DevOps

Делимся подробностями об обеспечении качества и расчете эффективности автотестов.

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

1515
2 комментария

Круто, интересно было читать 👍

1
Ответить

Статья про страну с радугами и розовыми единорогами

Ответить