Разработка

Автоматизированное тестирование интернет-магазина: преимущества, виды, как создаются и проводятся автотесты

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

Что это такое

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

Преимущества автоматизации тестирования

Автоматизированное тестирование сайта AQUANET | KISLOROD

Повышение скорости работы, экономия времени и средств

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

Снижение риска финансовых потерь

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

Исключение человеческого фактора

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

Нюансы автоматизации тестирования

Не все можно автоматизировать

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

Создание автотестов требует ресурсов

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

Автотесты нужно поддерживать

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

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

У вас крупный проект, цена ошибок высока

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

В интернет-магазине часто проводится регрессионное тестирование, много сценариев повторяется

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

Без автоматизации не обойтись

Иногда тесты могут быть выполнены только с применением средств автоматизации. Например, часть тестирования производительности или нагрузочного тестирования, когда нужно проверить работоспособность сайта при большом наплыве посетителей. Имитировать такую нагрузку может только сценарий автотеста.
Отправьте заявку на юзабилити-аудит сайта прямо сейчас и увеличьте конверсию минимум на 20%! Найдём точки роста конверсии и выявим барьеры на пути пользователей сайта.

Виды автоматизированного тестирования

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

Тестирование GUI

При тестировании GUI происходит взаимодействие непосредственно с графическим интерфейсом — система имитирует деятельность пользователя. Доступ к исходному коду не нужен — экраны проверяются с помощью элементов управления и панелей. Такие тесты еще называют End-to-End (E2E-тестами) или приемочными тестами.
Графический интерфейс можно проверять с помощью автотестов. Сценарии GUI-testing максимально приближены к реальному пути пользователя на сайте, благодаря чему позволяют находить ошибки. Например, можно запрограммировать автотест так, чтобы он заходил на сайт, искал товар и оформлял покупку. Такие тесты широко используются в регрессионных сценариях.
Автоматизированное тестирование сайта AQUANET | KISLOROD

Тестирование API

Автотестирование API минует пользовательский интерфейс и взаимодействует с частями сайта напрямую, через запросы к API. Иногда API-тестирование называют консольным тестированием, чаще оно применяется для внутреннего пользования.
С помощью API-testing можно проверить интеграцию с сервисами, например, с сервисом доставки. При ручном тестировании делают запрос в выбранный город и получают ответ о времени и стоимости доставки. Этот процесс можно легко автоматизировать — например, с помощью Postman.

Тестирование производительности

Нагрузочное тестирование имитирует сеансы тысяч пользователей — с разных устройств и локаций. Это позволяет увидеть, выдержит ли сайт большой наплыв посетителей. Целесообразно проводить такое тестирование перед распродажами и праздниками.
Для нагрузочного тестирования есть специальные сервисы, но, как правило, запускает тестирование и получает результаты специалист. Ранее мы подробно писали, как провести нагрузочное тестирование вручную.
Пример отчета по нагрузочному тестированию | KISLOROD
Пример отчета по нагрузочному тестированию
Но и нагрузочное тестирование можно автоматизировать — в определенное время будет происходить запуск автотеста, который сам определит, какой сайт нужно проверить, какую нагрузку дать в сервисе для тестирования, в итоге определит результаты и отправит отчеты. Мы планируем автоматизировать нагрузочное тестирование в ближайшее время.
Следить за производительностью или скоростью сайта можно в Google PageSpeed Insights. Мы автоматизировали этот процесс и создали автотест, который каждый день замеряет показатели главной, каталога и нескольких случайных карточек товаров для десктопной и мобильной версий.
Все показатели отправляются в Google-таблицу, где накапливается большой массив данных. Если мы видим снижение показателей, то можем соотнести статистику с историей изменений на сайте и понять, что повлияло на показатели.
Таблица с результатом автоматизированного тестирование сайта | KISLOROD

Алгоритм написания автотестов в KISLOROD

1. Определяем область тестирования. Например, выявили проблему на этапе чекаута. Исправили баг и поняли, что проверку этого этапа можно автоматизировать.
2. Описываем, как должны работать функции.
Пример сценария проверки:
  • открытие главной страницы сайта;
  • переход в каталог товаров;
  • выбор конкретной позиции;
  • добавление товара в корзину;
  • авторизация на сайте;
  • оформление заказа.
3. Создаем код автотеста.
Качество кода важно — при росте числа тестов другие члены команды должны иметь возможность участвовать в их актуализации. Обычно тесты пишут не с нуля, а с использованием фреймворков и инструментов автоматизации тестирования.
Фреймворки — это руководства, которые помогают использовать минимум кода и снизить затраты на его обслуживание, сделать тест последовательным и структурированным, удобным для повторного использования.
Инструменты автоматизации тестирования выбираются в соответствии с требованиями автоматизации конкретной области. Например, для регрессионного тестирования часто используют Selenium. Инструмент позволяет проводить тестирование с открытым исходным кодом и получать максимально приближенную к реальности имитацию задач пользователя.
Selenium сочетается с популярными операционными системами — Windows, Linux, Mac и браузерами. С помощью этого инструмента можно проводить несколько тестов одновременно. При неудачном выполнении доступен просмотр скриншотов страниц, которые делает Selenium.
Для ускорения автоматизации тестирования мы используем систему автоматического тестирования Testoid. Это удобный конструктор тестов с 55 готовыми действиями над сайтом — от клика по кнопке до запросов к REST API.
Система автоматического тестирования Testoid | KISLOROD
4. Внедряем готовый и отлаженный автотест в систему автотестов, которые разработаны ранее.
5. Определяем, в какое время будет происходить запуск автотеста в выбранном сервисе. Например, мы запускаем автотесты для клиентов в начале рабочего дня и за час до его конца, чтобы можно было успеть решить проблему.
6. Документируем, как будут храниться тесты, в каком формате и когда будут приходить отчеты нам и клиентам.

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

  1. Запуск теста API, GUI тестов или определенных видов тестирования производительности.
  2. Проверка каждого этапа сценария. Если этап не пройден, тест остановится, а клиенту и тестировщику оперативно придут письма с указанием ошибки.
  3. Автоматическое устранение изменений на сайте, созданных тестом — например, отмена заказа.
  4. Сбор системой автоматизированного тестирования информации о статусе прохождения тестов в Google-таблице.
  5. Отправка общего отчета после завершения всех этапов теста.

Вывод

Внедрение автоматизированного тестирования — отличное решение для интернет-магазинов. Вы застрахуете себя от потери клиентов и прибыли из-за неработающих кнопок, форм или любых других багов.
Если у вас возникли вопросы по теме, свяжитесь с нами — с радостью ответим.
Получайте полезный контент от KISLOROD в любой из мессенджеров
При переходе в одну из указанных социальных сетей, вы автоматически соглашаетесь с политикой конфиденциальности
Спасибо, что дочитали до конца.
Если информация была полезна, поделитесь статьёй. Вам не сложно, нам приятно ;)

Рекомендованные статьи

Скачайте 17 точек роста и 100 + чекеров для роста конверсии и прибыли интернет-магазина
При переходе в одну из указанных социальных сетей, вы автоматически соглашаетесь с политикой конфиденциальности
Мы проанализировали ведущие интернет-магазины, результаты исследований, свой опыт и собрали важные моменты в одно руководство. Делаем e-commerce лучше, поэтому не только пользуемся сами, но и делимся с вами.
Выберите удобный мессенджер и получите чек-лист прямо сейчас: