Приветствую. Подскажите, как автоматизировать тестирование интернет-магазина?
К примеру, этого: http://santehopt-perm.ru/
Какие есть хорошие автокликеры, верификаторы безопасности, программы для нагрузочного тестирования?
Или может вручную это стоит делать? Как вообще происходит тестирование интернет-магазинов?
Вообще это очень непростой вопрос.
У разных компаний процесс тестирования происходит по разному. Тут невозможно ответить так просто - что нужно, а что не нужно. Необходимы знания о системе, о развитии магазина(сайт за час без поддержки, или разрабатываемый большой сервис и будущим глобальным развитием).
Если понять , как построить процесс тестирования - можно думать и об автоматизации. Но тут опять же - необходимо знать структуру приложения. А вот дальше - уже можно думать и об инструментах.
Здравствуйте. Вопрос действительно не такой простой.
По каждой теме (функциональность / безопасность / нагрузка) можно отдельную статью написать.
Предлагаю следующий подход (в общем виде, для функционального UI-тестирования):
- Обдумать и разработать простой смоук-тест — проход по ключевой функциональности — который будет запускаться регулярно / при внесении каких-либо изменений в магазине.
Пример: найти товар текстовым поиском > положить его в корзину > открыть корзину > пройти все шаги оформления и оплаты покупки
(и аналогично для авторизованного пользователя)
> На первом шаге не нужно тратить на это много времени — достаточным даже будет использование Selenium IDE. Тут важно как можно скорее получить тест, определяющий текущее состояние системы.
- Выделить в системе функциональные возможности, при этом, если возможно, учитывая архитектуру системы.
Пример:
— Список товаров
- простой текстовый поиск
- поиск через автозаполнение
- выбор категории / подкатегории товаров
- подбор товаров по параметрам
- переход между страницами результатов
- сортировка / переключение вида списка товаров
- добавление товаров в избранное, др. функции
— Информация о товаре
- переход со списка товаров
- переход через поиск
- проверка осн. элементов страницы
— Корзина покупок
- все способы добавление товаров в корзину
- изменение количества / удаление товаров
- пересчёт цен
— Оформление и покупка товара
- переход с корзины
- другие способы перехода на страницу (если имеются)
- выбор способа доставки
- оплата товара
- комбинации способов доставки и оплаты
- статус оплаты / заказа
- быстрая покупка, разница для авт. пользователя
— Мой профиль, Мои покупки, Справка и др. функции (по аналогии)
- Расставить приоритеты и начать автоматизацию. Как правило, сначала автоматизируются смоук-тесты для ‘всех’ функций системы, затем обеспечивается более полное покрытие тестами.
По инструментам — для UI-тестов в большинстве случаев используется Selenium. Однако возможны и альтернативы, в зависимости от платформы Интернет-магазина (к примеру, ATG DUST для Oracle ATG).
В целом + особенности:
- недостаточно проверить, что значения на UI отображаются — они должны сравниваться со значениями из внутренней базы или API-ответов;
- используются различные базы с разными данными;
- часто используются стабы и заглушки (например, из инструментов — Mockito);
- дополнительно проверяются скидки, комбинации цветов и размеров товара и др. (если такой функционал присутствует)
anym0us, спасибо за подробный комментарий. Насчет автоматизации, видимо это действительно не так просто сделать. Может и не нужна она вовсе? Стоит задача просто протестировать этот интернет-магазин. Попереходил по ссылкам, зарегистрировался, побродил по личному кабинету, нашел там одну багу. А так вроде все ок. Может автоматизированное тестирование поможет найти еще проблемы. Это проект с фриланса. Там люди нашли много багов, стало интересно как они это сделали. Хочу научиться тестировать подобные интернет-магазины.
Я думаю в данном случае нужно начать с теории тестирования
начинать наверное стоит с книги Савина “Тестирование DOT COM или Пособие по жестокому обращению с багами в интернет-стартапах”, тогда могут появиться более конкретные вопросы
Ок, спасибо за советы. Буду читать книги.
Фриланс хороший подход в этом случае - получится качественней и быстрей чем тестировать с нуля без подготовки.
А по поводу автотестов - автотесты в основном нужны для регрессионного тестирования, я не думаю что пройдя кейс руками а потом написав на него автотест можно найти больше багов автотестом.