Автоматизированное тестирование сайта — за и против. С расчетами
Article title
6 сентября 2019

Автоматизированное тестирование сайта — за и против. С расчетами
~20 минут на чтение

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

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

Александр Пыркин
тестировщик
Есть два типа тестирования: ручное и автоматизированное. В первом случае контроль качества производит человек — тестировщик (или QA-инженер) — посредством моделирования действий пользователя. Специальные программы для проверки сайта не применяются.

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

Рассмотрим оба типа подробнее.

Преимущества и недостатки ручного и автоматизированного тестирования

В маленьких компаниях тестированием занимаются сами менеджеры проектов. В компаниях побольше — тестировщики (QA-инженеры), которые применяют ручные методы проверки продуктов. Дальнейший рост компании подразумевает рост количества проектов, а значит есть 2 решения: или увеличить штат специалистов, или сделать так, чтобы при том же количестве тестировщиков сохранилось (а лучше — чтобы улучшилось) качество на выходе. Какое решение выбрать — дело за вами. Чтобы вам было проще сориентироваться, мы сравнили оба типа тестирования.

Ручное тестирование

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

Автоматизированное тестирование

Преимущества
  • Исключен человеческий фактор — программа не может допустить ошибок по невнимательности и неосторожности.
  • Высокая скорость проверки: функционал, на тестирование которого специалист потратит много времени, может быть обработан программой за секунды.
  • Отчет о результатах тестирования формируется и сохраняется автоматически.
  • Пока выполняется автотестирование, специалист может заниматься другими задачами. Также тесты могут производиться и в нерабочее время по заранее написанным сценариям.
Недостатки
  • Автоматические тесты всегда выполняются строго по плану, в то время как при ручном методе тестировщик обращает внимание на детали и может найти неожиданные ошибки.
  • При неграмотном подходе есть риск, что разработка автотестов может превратиться в процесс создания приложения для проверки приложений и серьезно затянуться.
  • Автоматизация требует от специалиста более высоких компетенций, чем ручное тестирование.
Автоматизация незаменима в регрессионном тестировании, когда происходит повторная проверка функционала после внесенных изменений (исправления ошибок). Если ваша цель — получить на выходе качественный продукт, регрессионное тестирование должно проводиться даже при малейших изменениях в коде.

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

Как происходит автоматизированное тестирование

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

Чтобы исключить человеческий фактор, мы решили внедрить автоматизированное тестирование.

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

Глоссарий

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

Именно по тест-кейсам пишут автотесты — каждый шаг алгоритма соответствует шагу в тест-кейсе.

Атрибуты тест-кейса:
  • Название — основная тема тест-кейса. Краткое описание его сути.
  • Шаги — описание последовательности действий, которые должны привести нас к ожидаемому результату. Каждый шаг отвечает на вопрос «что сделать?» (например, «зайти на страницу „Новости"», «кликнуть на кнопку „Узнать больше"»).
  • Ожидаемый результат — то, что должно произойти после выполнения всех шагов, если функционал работает правильно.
  • Фактический результат — то, что происходит, если функционал работает некорректно (ошибка, баг).
Чек-лист
Документ, который описывает, что должно быть протестировано. Он может быть абсолютно разного уровня детализации — все зависит от требований к отчетности, уровня знания продукта сотрудниками и сложности разработки.
Баг-лист (баг-репорт)
Документ, описывающий ситуацию или последовательность действий, которые привели к некорректной работе объекта тестирования. В нем указываются причины и ожидаемый результат.
Фреймворк тестирования
Программная платформа или комплекс компонентов и моделей, которые упрощают реализацию продукта. С помощью фреймворков, позволяющих эмулировать поведение реальных пользователей из программной среды, строится автоматизация тестирования.

Фреймворки обычно состоят из двух частей:
  • Программы или надстройки над браузером, которые позволяют управлять браузером.
  • API, предоставляющего удобные функции для контролирования этой программы.
Возможности фреймворков, полезные для тестирования:
  • Открытие новой вкладки или окна браузера, изменение размеров.
  • Навигация между веб-страницами.
  • Поиск на странице веб-элемента с указанными параметрами.
  • Функции ожидания определенных событий, в частности, ожидания полной загрузки страницы или появления на ней определенного элемента.
  • Эмуляция действий пользователя, например, нажатие кнопки мыши на определенный элемент или ввод последовательности символов с клавиатуры.
  • Исполнение на странице команды JavaScript для более сложных действий.
Для автоматизации тестирования подходят разные фреймворки. Самые популярные — Selenium, Watij, HtmlUnit, Jamaleon, Jest.

Мы выбрали Selenium IDE — плагин к браузеру Firefox, который может записывать действия пользователя, воспроизводить их, а также генерировать код для WebDriver или Selenium RC, в котором выполняются те же самые действия.

Примеры автотестов на базе Selenium IDE

Допустим, мы хотим проверить форму обратной связи на странице CONTACT US на сайте gazglobal.com. Вот так будет выглядеть тест-кейс:
На основе кейса запишем автотест на Selenium IDE, где, используя перечисленные в таблице шаги, программа пройдет по сайту и запишет результат — есть ошибки в функционале или все работает корректно.

Т.к. тестирование проводится в расширении Firefox, баги тоже фиксируются в этом браузере.
Тестирование формы на базе Selenium IDE
Рассмотрим еще один пример — автотест, который проверяет работоспособность поиска на том же сайте gazglobal.com. На сайте реализовано два функционала поиска: один в шапке, другой в подвале. Проверим первый — в нем есть pop-up с выбором тегов, основанных на самых популярных запросах.

Составим тест-кейс:
А теперь на основе перечисленных шагов запишем автотест:
Тестирование поисковой строки на базе Selenium IDE

Стоит ли инвестировать в автоматизацию тестирования? Считаем

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

Чтобы рассчитать эффективность вложений, потребуются следующие данные:
  • Сколько стоит час специалиста, который займется процессом автоматизации.
  • Сколько стоит час специалиста, который на текущий момент занимается ручным тестированием.
  • Как часто проводится или планируется проводить регрессионное тестирования.
  • По скольким тест-кейсам запускается тестирование.
  • Сколько времени требуется на переключение с тестирования одного проекта на другой.
  • Сколько времени уйдет на доработку документации по автоматизации определенного тест-кейса. Важно учитывать возможные проблемы при изучении документации и погружении в особенности каждого проекта.
  • Сколько времени уходит на оформление бага в баг-лист.
  • Сколько времени требуется на разработку одного автотеста.
  • Сколько времени занимает ручное тестирование по 10 кейсам.
Подставим условные значения, чтобы произвести расчет:
Теперь мы можем сравнить затраты на автоматизированное и на ручное тестирование. Обратите внимание: расчеты ниже основаны на первичном приближении и не претендуют на максимальную точность. Мы показываем примерные трудозатраты при описанном алгоритме работы — в вашей компании цифры могут быть другими.

Затраты на автоматизированное тестирование

Использовать будем следующую формулу:
Ip = Io + Co + Σ (Ce + Ca + Cm)
  • Ip — затраты на автоматизацию тестирования
  • Io — начальные инвестиции
  • Co — стоимость разработки тестов
  • Σ — планируемое количество циклов тестирования
  • Ce — оценка стоимости однократного выполнения цикла автоматизированного тестирования
  • Ca — оценка стоимости анализа результатов выполненного цикла
  • Cm — оценка стоимости поддержания автоматизированных тестов в рабочем и актуальном состоянии
При расчетах мы не учитываем первоначальные инвестиции — они не нужны, т.к. применяются уже существующие бесплатные технологии (IDE, фреймворки) и отсутствует необходимость инвестировать в дополнительное оборудование.
Расчет
Стоимость разработки автоматизированных тестов:
10 тестов х 2 часа х 600 руб./час = 12 000 руб.

Планируемое количество циклов тестирования:
3 года х 52 недели х 2 часа/день = 312 раз

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

Оценка стоимости анализа багов тестировщиком:
10 тестов x 0,125 часа x 600 руб./час = 750 руб.

Стоимость поддержки автотестов в рабочем состоянии:
10 тестов x 0,3 цикла x 0,5 часа x 600 руб./час = 900 руб.

Подставим данные в формулу:

0 + 12 000 +312 x (0 + 750 + 900) = 526 800 рублей

Следовательно, для автоматизации тестирования в компании X необходимо 526 800 рублей.

Затраты на ручное тестирование

Формула:
Gp = Go + Σ (Gc + Ga+ Gm)
  • Gp — затраты на ручное тестирование
  • Go — начальные инвестиции
  • Σ — планируемое количество циклов тестирования
  • Gc — стоимость разработки тест-кейсов
  • Ga — оценка стоимости анализа багов тестировщиком
При расчетах мы не учитываем стоимость разработки базы тест-кейсов для ручного тестирования — она равна нулю, поскольку компания, которая уже занималась тестированием, обладает этой базой.
Расчет
Стоимость одного цикла ручного тестирования:
0,75 часа х 10 тестов х 500 руб./час = 3 750 руб.

Стоимость анализа багов тестировщиком:
10 тестов x 0,25 часа x 500 руб./час = 1 250 руб.

Стоимость разработки документации тестировщика с учетом возможных рисков:
10 тестов x 0,5 часа x 500 руб./час = 2 500 руб.

Подставим данные в формулу:

0 + 3 750 + 312 x (0 + 1 250 + 2 500) = 1 173 750 рублей

Сравнив результаты обоих расчетов (526 800 рублей на автоматизированное тестирование и 1 173 750 рублей на ручное), можно сделать вывод, что на данном этапе для компании X целесообразна автоматизация.
Автоматизация тестирования — непростой, но очень важный процесс для команд, которые выступают за высокое качество разрабатываемых продуктов. Минимизация человеческого фактора, сокращение финансовых вложений, рост производительности — сопутствующие результаты, но чтобы их достичь, недостаточно одной автоматизации. Не менее важно построить эффективные взаимоотношения внутри команды тестировщиков. Но об этом — в одной из следующих публикаций. Следите за обновлениями!
725
Оцените статью
(4.25)

Поделитесь материалом с друзьями и коллегами:

Комментарии к статье

Другие статьи в блоге
Статьи

Новые тренды в digital: на что обратить внимание в 2020 году

104
18 ноября 2019
Статьи ~ 25 минут на чтение

Система сбалансированных показателей: как перейти от стратегии к действию

391
08 ноября 2019
Статьи ~ 15 минут на чтение

Как составить портрет потребителя: инструкция, шаблон и примеры

564
06 ноября 2019
Статьи ~ 20 минут на чтение

Data Driven: как принимать решения на основе данных

774
28 октября 2019
Статьи ~ 15 минут на чтение

Как использовать шрифт без нарушения авторских прав

194
22 октября 2019
Статьи ~ 15 минут на чтение

Как использовать чат-ботов: сценарии и примеры

1415
21 октября 2019
Статьи ~ 25 минут на чтение

Выбираем редакцию «1С-Битрикс». Каким проектам подойдет Enterprise

409
17 октября 2019
Статьи ~ 10 минут на чтение

Как в Uplab разрабатывают сайты. Этап backend

581
11 октября 2019
Статьи ~ 15 минут на чтение

«Битрикс24.Бостон» — обзор обновления

1133
10 октября 2019
Статьи ~ 15 минут на чтение

Tone of voice бренда: практическое руководство и примеры

2263
03 октября 2019
Скрыть форму
+7 499 653 78 83