🧪 Тестирование фильтров в интернет-магазинах

Ключевые тезисы

  • Фильтры должны работать корректно, предсказуемо и удобно для пользователя.
  • Критически важно проверять формирование и очистку URL, а также возможность делиться ссылкой с применёнными фильтрами.
  • Логика комбинации параметров фильтрации должна быть согласована с менеджером проекта.
  • Пользователя нужно подстраховывать от ситуаций с нулевыми результатами поиска.
  • В современной разработке распространён подход с выпуском продукта и последующими обновлениями, что требует взвешенного отношения к ошибкам.

🔗 Проверка адресной строки (URL)

  • Без фильтров: При входе в категорию URL не должен содержать лишних параметров (знаков ? и т.д.). Допустим только идентификатор категории (в виде цифр, транслита или английского названия).
  • С фильтрами: При применении фильтров параметры должны добавляться в URL.
  • Ключевые проверки:
    1. Ссылку с параметрами фильтров можно скопировать, отправить другому пользователю, и он увидит тот же результат.
    2. При обновлении страницы применённые фильтры не должны сбрасываться.

📋 Проверка значений и сортировки в фильтрах

  • Корректность значений: В фильтрах должны выводиться все актуальные значения из базы данных, без лишних. (Полная проверка требует доступа к БД).
  • Сортировка значений: Может быть:
    • По алфавиту.
    • Произвольная (заданная вручную в CMS).
    • По количеству результатов (спорный метод). При такой сортировке порядок значений меняется в зависимости от выбора других фильтров, что может сбивать пользователя. Использовать с осторожностью.

🧩 Проверка комбинации параметров

  • Логика работы комбинаций (принцип И/ИЛИ) зависит от контекста и группы параметров. Например, выбор «Ноутбук» И «Нетбук» внутри одной группы обычно подразумевает ИЛИ.
  • Важная проверка: Нужно убедиться, что при выборе комбинации параметров поиск выполняется корректно (например, ищутся ноутбуки с конкретной диагональю в заданном ценовом диапазоне, а не все устройства по отдельности).
  • Проблемный кейс: Некорректная работа фильтрации, когда снятие одного параметра не приводит к пересчёту других (например, остаётся неактуальный диапазон цен), что может привести к нулевым результатам.

🧹 Проверка очистки фильтров

  • При сбросе фильтров должны:
    1. Сброситься все параметры.
    2. Перестроиться список результатов.
    3. Очиститься адресная строка (исчезнуть параметры фильтров).
  • Плохой пример: После сброса требуется дополнительное действие (например, нажатие кнопки «Показать»), и пользователю не до конца понятно, что делать.

🛡️ Страховка пользователя от ошибок

  • Хорошая практика: Неактивные параметры в фильтрах, по которым нет результатов, должны быть заблокированы (например, серые и некликабельные).
  • Очень хорошая практика: Система не позволяет применить комбинацию фильтров, которая заведомо даст нулевой результат (например, кнопка «Показать» неактивна).
  • Это не всегда критичное требование для небольших магазинов, но делает использование удобнее.

💡 Рекомендации по UX

  • Избегать полной перезагрузки страницы при каждом выборе значения в фильтре, так как пользователя каждый раз будет «перебрасывать» вверх страницы.
  • Проверять, является ли фильтр сквозным (работает across всех категорий) или нет.

🧠 Философия тестирования и работы с ошибками

Тенденция в разработке: Современный тренд — выпускать неидеальную, но рабочую версию продукта быстрее конкурентов, а затем выпускать обновления, собирая обратную связь. Пользователи часто готовы мириться с мелкими багами ради скорости получения функций.

Гарантии и поддержка: Стандартом является годовая гарантийная поддержка проекта, при условии что в код не вносятся «кривые» правки сторонними разработчиками.

Что делать при постоянных изменениях? При частых обновлениях крупного сервиса есть два пути:

  1. Полный регресс-тест после любого изменения — дорого и долго.
  2. Смоук-тест + риск появления ошибок с их оперативным устранением по факту.

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

Главная задача тестировщика: Быть внимательным к мелочам, не бояться указывать на ошибки (делая это корректно), чтобы запускать по-настоящему качественные проекты.


Полезные инструменты и литература из модуля

  • Инструменты: Метод светофора, Pixel Perfect, валидаторы кода (W3C), Selenium.
  • Книги: Роман Савин «Тестирование Dot Com», Стив Круг «Не заставляйте меня думать», Алан Купер «Психбольница в руках пациентов» и другие.