Как проверить функциональность фильтра
Что проверяют
Проверяете ли вы, что фильтр действительно отбирает данные, а не только красиво раскрывается. Интервьюеру важно услышать про полноту выдачи и комбинации условий. Частый уточняющий вопрос: как понять, что в результатах нет лишнего и ничего не потеряно.
Как отвечать
Начните с логики, которую надо выяснить у аналитика: значения внутри одного фильтра обычно объединяются через ИЛИ, разные фильтры через И, а границы диапазона включаются или нет. Дальше каркас:
- корректность: каждый элемент выдачи удовлетворяет условию. Проверяйте не глазами по первой странице, а сверкой с базой: SQL-запрос с тем же условием должен вернуть столько же записей, сколько показывает счётчик;
- полнота: подходящие записи не выпали. Для этого готовят тестовые данные, где заранее известно, сколько объектов попадает под каждый фильтр;
- граничные значения: входят ли 1000 и 5000 в диапазон «от 1000 до 5000», что будет, если «от» больше «до», пустые поля, отрицательные числа. У дат отдельно проверьте часовой пояс и конец дня;
- комбинации: пары фильтров перебирают попарным тестированием (pairwise), а не полным перебором;
- взаимодействие: фильтр вместе с поиском, сортировкой и пагинацией. После смены фильтра выдача начинается с первой страницы, а счётчики у значений фильтра совпадают с выдачей;
- состояние: сброс, сохранение после перезагрузки и в ссылке, кнопка «Назад» в браузере;
- пустой результат: понятное сообщение вместо пустого экрана.
На вкладке Network в DevTools видно, какие параметры уходят на бэкенд. Подмените их руками, передайте несуществующее значение или строку в числовое поле: сервер должен ответить ошибкой валидации, а не 500.
Где спотыкаются
Смотрят только первую страницу выдачи. Ошибка в условии часто проявляется дальше или на записях с пустым значением поля.
Проверяют, что лишнего нет, но не проверяют, что ничего не пропало. Фильтр, вернувший пустой список, формально «ничего лишнего не показал».
Игнорируют повторные запросы: каждый клик по чекбоксу шлёт новый запрос, и ответ старого может прийти позже нового и перезаписать выдачу.