Тестирование фильтров в интернет-магазинах
Ключевые тезисы
- Фильтры должны работать корректно, предсказуемо и удобно для пользователя.
- Критически важно проверять формирование и очистку URL, а также возможность делиться ссылкой с применёнными фильтрами.
- Логика комбинации параметров фильтрации должна быть согласована с менеджером проекта.
- Пользователя нужно подстраховывать от ситуаций с нулевыми результатами поиска.
- В современной разработке распространён подход с выпуском продукта и последующими обновлениями, что требует взвешенного отношения к ошибкам.
Проверка адресной строки (URL)
- Без фильтров: При входе в категорию URL не должен содержать лишних параметров (знаков
?и т.д.). Допустим только идентификатор категории (в виде цифр, транслита или английского названия). - С фильтрами: При применении фильтров параметры должны добавляться в URL.
- Ключевые проверки:
- Ссылку с параметрами фильтров можно скопировать, отправить другому пользователю, и он увидит тот же результат.
- При обновлении страницы применённые фильтры не должны сбрасываться.
Проверка значений и сортировки в фильтрах
- Корректность значений: В фильтрах должны выводиться все актуальные значения из базы данных, без лишних. (Полная проверка требует доступа к БД).
- Сортировка значений: Может быть:
- По алфавиту.
- Произвольная (заданная вручную в CMS).
- По количеству результатов (спорный метод). При такой сортировке порядок значений меняется в зависимости от выбора других фильтров, что может сбивать пользователя. Использовать с осторожностью.
Проверка комбинации параметров
- Логика работы комбинаций (принцип И/ИЛИ) зависит от контекста и группы параметров. Например, выбор «Ноутбук» И «Нетбук» внутри одной группы обычно подразумевает ИЛИ.
- Важная проверка: Нужно убедиться, что при выборе комбинации параметров поиск выполняется корректно (например, ищутся ноутбуки с конкретной диагональю в заданном ценовом диапазоне, а не все устройства по отдельности).
- Проблемный кейс: Некорректная работа фильтрации, когда снятие одного параметра не приводит к пересчёту других (например, остаётся неактуальный диапазон цен), что может привести к нулевым результатам.
Проверка очистки фильтров
- При сбросе фильтров должны:
- Сброситься все параметры.
- Перестроиться список результатов.
- Очиститься адресная строка (исчезнуть параметры фильтров).
- Плохой пример: После сброса требуется дополнительное действие (например, нажатие кнопки «Показать»), и пользователю не до конца понятно, что делать.
Страховка пользователя от ошибок
- Хорошая практика: Неактивные параметры в фильтрах, по которым нет результатов, должны быть заблокированы (например, серые и некликабельные).
- Очень хорошая практика: Система не позволяет применить комбинацию фильтров, которая заведомо даст нулевой результат (например, кнопка «Показать» неактивна).
- Это не всегда критичное требование для небольших магазинов, но делает использование удобнее.
Рекомендации по UX
- Избегать полной перезагрузки страницы при каждом выборе значения в фильтре, так как пользователя каждый раз будет «перебрасывать» вверх страницы.
- Проверять, является ли фильтр сквозным (работает across всех категорий) или нет.
Философия тестирования и работы с ошибками
Тенденция в разработке: Современный тренд — выпускать неидеальную, но рабочую версию продукта быстрее конкурентов, а затем выпускать обновления, собирая обратную связь. Пользователи часто готовы мириться с мелкими багами ради скорости получения функций.
Гарантии и поддержка: Стандартом является годовая гарантийная поддержка проекта, при условии что в код не вносятся «кривые» правки сторонними разработчиками.
Что делать при постоянных изменениях? При частых обновлениях крупного сервиса есть два пути:
- Полный регресс-тест после любого изменения — дорого и долго.
- Смоук-тест + риск появления ошибок с их оперативным устранением по факту.
Вывод: В любом случае заказчик платит за исправление ошибок — либо в рамках бюджета на полное тестирование, либо по факту. Автоматизация тестирования на критических путях помогает, но требует времени и денег. Других вариантов в отрасли нет.
Главная задача тестировщика: Быть внимательным к мелочам, не бояться указывать на ошибки (делая это корректно), чтобы запускать по-настоящему качественные проекты.
Полезные инструменты и литература из модуля
- Инструменты: Метод светофора, Pixel Perfect, валидаторы кода (W3C), Selenium.
- Книги: Роман Савин «Тестирование Dot Com», Стив Круг «Не заставляйте меня думать», Алан Купер «Психбольница в руках пациентов» и другие.