Тестирование поиска

Поиск — одна из наиболее используемых функций. Пользователи ожидают быструю работу, релевантные результаты и корректную обработку запросов.

Функциональные тесты поиска

Тест-кейсВводОжидаемое поведение
Точное совпадение“iPhone 15 Pro”Товар в результатах
Частичное совпадение“iPhone”Все товары iPhone
Нет результатов“xyznonexistent123”Дружелюбное сообщение с предложениями
Пустой поиск(пустая строка)Все результаты или запрос ввода
Спецсимволы<script>alert(1)</script>Санитизировано, без XSS
SQL injection' OR 1=1 --Безопасная обработка
Очень длинный запрос1000+ символовКорректная обработка

Релевантность поиска

Результаты должны ранжироваться по релевантности:

  1. Точные совпадения в заголовке — первыми
  2. Частичные совпадения в заголовке — вторыми
  3. Совпадения в описании — третьими

Фильтры поиска

Если поиск поддерживает фильтры:

  1. Применить фильтр — обновляются ли результаты?
  2. Применить несколько фильтров — корректно ли комбинируются?
  3. Убрать фильтр — возвращаются ли результаты?
  4. Точны ли счётчики фильтров?
  5. Обновляется ли URL с состоянием фильтра?

Тестирование пагинации

Основные тесты пагинации

Тест-кейсОжидаемо
Первая страницаЭлементы 1-N, Назад отключена, Далее активна
Средняя страницаПравильные элементы, обе кнопки активны
Последняя страницаОставшиеся элементы, Далее отключена
Всего = 0Без элементов пагинации
Отрицательный номерПеренаправление на страницу 1
Страница за пределамиПоследняя страница или пустое состояние

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

Базовая проверка сортировки

Для каждого сортируемого столбца:

  1. По возрастанию: Элементы в порядке А-Я или от меньшего к большему
  2. По убыванию: Элементы в порядке Я-А или от большего к меньшему
  3. Визуальный индикатор: Стрелка показывает текущее направление
  4. Сортировка по умолчанию: Начальная загрузка показывает ожидаемый порядок

Граничные случаи сортировки

СценарийЧто проверить
Null/пустые значенияГде отображаются? Первыми? Последними?
Одинаковые значенияПрименяется ли вторичная сортировка?
Числа как строки“2” vs. “10” — числовая или алфавитная?
Регистр“apple” vs. “Banana” — чувствительна ли к регистру?

Практическое упражнение

Комплексный аудит функциональности

Проведите полный аудит:

  1. Позитивные тесты: Выполните стандартные потоки и проверьте результаты
  2. Негативные тесты: Невалидный ввод, граничные значения, условия ошибок
  3. Интеграционные тесты: Поток данных между связанными компонентами
  4. Тесты безопасности: Обход валидации, попытки несанкционированного доступа
  5. Тесты производительности: Время отклика, поведение при медленной сети

Задокументируйте находки

Тест-кейсШагиОжидаемоФактическиСтатусСерьёзность
1[Описание][Шаги][Ожидаемо][Фактически]Пройден/ПроваленВысокая/Средняя/Низкая

Типичные ошибки

  1. Согласованность данных после ошибок: Остаются ли данные согласованными?
  2. Кнопка «Назад»: Неожиданные результаты при нажатии?
  3. Параллельная модификация: Два пользователя изменяют одни данные
  4. Пустые состояния: Поведение без данных
  5. Максимальный объём: Поведение с большими данными

Профессиональные советы

Совет 1: Тестируйте с реалистичными данными включая спецсимволы и множество языков.

Совет 2: Уделяйте больше внимания негативным сценариям — там QA приносит наибольшую пользу.

Совет 3: Ведите личный чеклист найденных багов. Паттерны повторяются между проектами.

Ключевые выводы

  • Систематическое тестирование охватывает функциональные, интеграционные, аспекты безопасности и производительности
  • Негативные тест-кейсы выявляют больше багов
  • Проверяйте и UI, и базовые данные
  • Документируйте с чёткими шагами воспроизведения
  • Создавайте личные чеклисты на основе обнаруженных паттернов