Перевод статьи подготовлен специально для студентов курса «Python QA Engineer»




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


Автоматизация тестирования, хотя и крайне выгодное мероприятие, но потенциально дорогостоящее. Стоит ли игра свеч? Это один из вопросов, с которым вы можете столкнуться, когда будете убеждать высшее руководство. По мере разработки веб-приложения, вам будет необходимо предоставить эффективный коэффициент окупаемости инвестиций (ROI) от автоматизации тестирования с Selenium, подчеркнув преимущества такой автоматизации для кроссбраузерного тестирования веб-приложений, а именно ускорение работы и уменьшение ручного труда.



В этой статье мы обсудим различные метрики для оценки ROI от автоматизации тестирования с Selenium, а также методы расчета ROI, начиная с основ и заканчивая продвинутыми методами.


Показатели для оценки ROI от автоматизации тестирования с помощью Selenium


Вы, как и члены вашей команды, можете отобрать определенные показатели и измерения, которые помогут вам проанализировать ROI от автоматизации тестирования с помощью Selenium, поскольку вы планируете начинать автоматизированное тестирование вашего веб-приложения с нуля. В разных организациях показатели могут отличаться. Почему? Это вопрос приоритетов, поскольку есть различные показатели, такие как количество обнаруженных дефектов (ошибок), затраты времени и покрытие тестами, которые напрямую влияют на риски, стоимость, качество и график поставки вашего продукта. Некоторые организации могут отдавать приоритет количеству обнаруженных дефектов, поскольку они полагают, что количество перетекает в качество. Некоторые думают иначе, поскольку для них основополагающее значение имеет именно качество. Что выбираете вы? Как вы считаете, что важнее: качество или количество? Можете написать свои мысли в комментариях.


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



Область автоматизации тестирования с Selenium


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


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


В случае, если вы хотите сократить время выполнения сложных наборов тестов, вы можете использовать параллельное тестирование с помощью Selenium Grid. Таким образом, вы сможете выполнять несколько тестовых сценариев одновременно. Однако здесь вам предстоит подумать о том, сколько одновременных или параллельных сессий будет достаточно, чтобы удовлетворять заданным требованиям. Вы можете посчитать это с помощью concurrency calculator.


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


Сколько времени вы сэкономите?


Для Agile характерны недельные и двухнедельные спринты и частое изменение требований. В таких условиях возрастает важность регрессионного тестирования. Внедрение автоматизированных регрессионных тестов сократит время, необходимое на проведение такого тестирования. Так увеличится количество времени на разработку или проработку другого спринта. Экономия времени является приоритетом для каждой организации, в особенности для стартапов, которым необходимо быстро масштабировать свое веб-приложение. Является ли время одним из ваших интересов при оценке ROI от автоматизации тестирования?


Пропускная способность ваших ресурсов


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


Инвестиционный бюджет ресурсов и инструментов


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


Общее количество дефектов


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


Определение правильного ROI для автоматизированного тестирования


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


ROI = (Стоимость Ручного Тестирования – Стоимость Автоматизированного Тестирования) / Стоимость Автоматизированного Тестирования

Однако с приходом на рынок Agile и DevOps классический метод больше не работает. Кроме того, такое измерение нереалистично, поскольку количество ручных тестов не сможет совпадать с количеством автоматизированных. Расчет правильного значения ROI от автоматизации тестирования в случае с применением Selenium на основе количества не является предпочтительным, однако его все еще используют.


Качество дефектов


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


Общие ошибки при расчете ROI от автоматизированного тестирования


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



источник


Вы же не игнорируете ручное тестирование полностью, не так ли?


Одной из самых распространенных ошибок является использование показателей только автоматизированного тестирования. Ручное тестирование всегда будет иметь особое значение. Когда мы говорим о кроссбраузерном тестировании, мы понимаем, что некоторые сценарии можно автоматизировать, но есть моменты, когда нужно взаимодействовать с веб-приложением в реальном времени, занимаясь кроссбраузерным тестированием вручную. Поскольку визуальные дефекты, например, легче обнаружить вручную, чем запускать автоматизированный сценарий. Такие вещи, как привлекательность внешнего вида сайта при отображении в различных браузерах или корректность работы навигационного меню, всегда проверяются вручную. Если вы попробуете автоматизировать тесты такого рода, они не принесут прироста ROI. Даже если вы не считаетесь с «ручным трудом», вам все равно придется учитывать выделенное на это время и деньги.


Представляйте себе общую картину


При измерении ROI от автоматизации тестирования с Selenium необходимо рассматривать более длительный отрезок времени. Проверка того, как определенная методология тестирования приносит пользу организации в течение короткого времени, не всегда дает полную картину. Вы должны узнать, как она повлияет на организацию и на команду в долгосрочной перспективе. Вместо того, чтобы брать месяцы, думайте о том как изменится ROI за 3-5 лет. Например, стоит ли применить в вашей практике shift-left тестирование? Shift-left тестирование – методология, которая сфокусирована на выполнении тестирования как можно скорее, начиная с этапа сбора требований. Идея заключается в том, чтобы задумываться об ошибках заранее и находить их как можно раньше, потому как считается, что ошибка, найденная на более позднем этапе жизненного цикла разработки системы, будет дороже, чем ошибка, которая была найдена на начальных этапах.


Вы оценили возможности вашей организации?


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


Поддержка тестов – это важно


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


Отсутствие документации надлежащего качества


Это достаточно распространенная ошибка, и не только с точки зрения автоматизации, но и с точки зрения управления. Документация должна отражать стандарты организации. Когда тестировщик пишет тестовый сценарий, он должен подготовить документ, объясняющий назначение сценария и принцип его работы. Общая база знаний должна быть доступна всем внутри организации и включать в себя документацию по каждому сценарию автоматизации, использующемуся в вашей организации. Такая база знаний послужит надежной опорой любому новичку в вашей команде. Также она поможет устранить проблемы, которые неизбежно возникают в отсутствие «старшего» по проекту или при уходе ценного тестировщика в другую компанию. Поэтому в следующий раз, когда будет рассчитывать ROI от автоматизации тестирования, убедитесь, что учли количество усилий, требуемых на поддержании одной такой базы знаний для внутренних сотрудников.


Что делать, чтобы увеличить ROI от автоматизации тестирования с Selenium


На данный момент мы осознаем распространенные ошибки и знаем показатели для расчета ROI от автоматизации тестирования. Что же дальше? Выполнение. Как найти наилучший способ получить максимальный ROI от автоматизации тестирования с помощью Selenium? Что ж, вот несколько примечательных практик, которые помогут вам получить максимальную выгоду от автоматизации тестирования.



Внедрение автоматизации для новых тестов


Это очень важный фактор, особенно если вы переходите от ручного тестирования к автоматизированному. Предположим, вы вводите в своей организации использование Selenium WebDriver для автоматического кроссбраузерного тестирования.


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

Приоритет процесса автоматизации новых тест-кейсов


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


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


  • При расчете ROI предполагайте, что каждый новый тест-кейс скоро станет частью регрессионного тестирования. Относитесь к ним как к части стратегии вашего регрессионного тестирования.
  • Рассортируйте тест-кейсы по сложности и проверьте, какие из них можно автоматизировать.
  • Как было сказано ранее, учитывайте затраты на поддержание старых тестов.

Почти 100% покрытие тестами в условиях различных конфигураций тестов для браузеров и ОС


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


Рекомендации по увеличению коэффициента охвата


Вы можете увеличить покрытие тестами, выполняя smoke-тесты, юнит-тесты, регрессионные тесты, которые укажут на источник ошибок.


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


Smoke-тесты. Параллельное выполнение smoke-тестов – это лучший способ покрыть тест-кейсы при отправке хотфиксов в приложение. Автоматизированные smoke-тесты – хороший способ ежедневного тестирования для вашего веб-приложения.


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


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


Попробуйте использовать методику тестирования shift-left. Она подразумевает под собой вовлечение тестировщиков в разработку. Разработчики тоже участвуют в нем, выполняя юнит-тесты после окончания разработки определенного модуля. Основная идея заключается в том, чтобы найти ошибку до того, как она себя покажет, и в итоге снизить ее стоимость.


Выясните количество повторяющихся и избыточных тест-кейсов


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


Расчет стоимости включает в себя:


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

Рекомендации по уменьшению избыточности:


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

Выполняйте автоматизированное кроссбраузерное тестирование с помощью Selenium Grid On-Cloud без проблем


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


Когда вы выполняете автоматизированное тестирование с Selenium в своей собственной инфраструктуре, вам нужно учитывать бюджет для масштабирования вашего тестового набора. Как вы будете внедрять новые устройства? Новые версии браузера? Для поддержки параллельного выполнения вашему компьютеру потребуются значительные мощности. Однако, если вы выполняете тестирование с помощью Selenium Grid в облаке, вы можете проводить масштабирование, в соответствии с требованиями к проекту.


Сам по себе Selenium не предоставляет инструмента для составления отчетов. Отчеты по тестам можно получать с помощью фреймворков автоматизации тестирования на основе используемого языка. Если вы используете Selenium Grid от LambdaTest, вы можете получить отчеты через наш открытый Selenium API.


Еще одно ключевое отличие между этими двумя методами заключается в параллельном тестировании. С помощью Selenium Grid на вашей локальной машине вы можете запускать тест-кейсы только в браузерах, установленных на этой машине. Однако если вы используете облачный Selenium Grid, как, например, LambdaTest, вы можете провести тестирование на более чем 2000 реальных браузерах и их версиях.


LambdaTest – это облако для кроссбраузерного тестирования, в котором вы можете параллельно запускать несколько тест-кейсов Selenium на нескольких комбинациях из устройств и браузеров, что снижает затраты на создание собственной «лаборатории» для кроссбраузерного тестирования и тестирования на различных устройствах.


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


Продвинутые методы расчета ROI


Теперь, когда мы познакомились с основами, пора поговорить о продвинутых методах, используемых для расчета ROI.


Эффективный ROI



источник


Поскольку автоматизированные тест-кейсы могут выполняться в течение всего дня, расчет ROI ведется в днях. С другой стороны, при ручном тестировании учитывается только время работы тестировщика, которое в среднем составляет 8 часов в день. Формула, которая является основой расчета ROI:


  • (a) Время разработки тестового сценария для автоматизации = (Время автоматизации одного теста в часах * Количество тест-кейсов для автоматизации * Период ROI) / 8
  • (b) Время выполнения автоматизированного тестового сценария = (Время выполнения автоматизированного тестирования на один тест * Количество тест-кейсов для автоматизации * Период ROI) / 18
  • (c) Время анализа автоматизированного теста = (Время анализа теста * Период ROI) / 8
  • (d) Время на обслуживание автоматизированного теста = (Время обслуживания * Период ROI) / 8
  • (e) Время выполнения вручную = (Время выполнения теста вручную * Количество ручных тест-кейсов * Период ROI) / 8

Примечание: Период окупаемости инвестиций (Период ROI) – это количество недель, для которого должен быть рассчитан ROI, деленное на 8, встречается везде, где учитывается ручной труд. Деление на 18 происходит везде, где применяется автоматизация.


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


ROI для снижения риска


Здесь предполагается самостоятельный расчет преимуществ автоматизации. Мы снова возьмем пример с кроссбраузерным тестированием и использованием WebDriver, чтобы понять, как это работает. Во время ручного тестирования вся команда тратила много времени на выполнение одних и тех же действий раз за разом в нескольких браузерах. После внедрения автоматизации у тестировщиков появляется много дополнительного времени для выполнения продуктивной работы, такой как разработка тест-кейсов, анализ приложения и т.д. Короче говоря, ROI для снижения риска решает проблемы, которые ранее даже не поднимались.


С внедрением автоматизации, покрытие тестами увеличивается. Полная зависимость от ручного тестирования приведет с ненужным ошибкам, которые могут проявиться уже на продакшене. Это приведет к снижению качества продукта и эффективности тестирования. Такая возможная потеря считается риском. Нет никаких изменений в стоимости инвестиций. Рассчитываются только денежные потери, с которым организация может столкнуться не внедрив автоматизацию.


Это только обертка! (ориг. It’s A Wrap!)


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

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


  1. myrkoxx
    26.07.2019 10:32

    Как по мне упущено самое важное: стоимость инфраструктуры (окружения) и ее поддержка для тестирования и собственно зарплата тестировщиков. Допустим можно убрать ЗП из расчета, но игнорировать затраты на инфраструктуру и ее поддержку — нельзя. Есть опит когда эти затраты неоправданны