На что обращать внимание при тестировании пользовательского интерфейса (UI)?

«На что обращать внимание при тестировании пользовательского интерфейса (UI)?» — вопрос из категории Веб-тестирование, который задают на 10% собеседований QA Тестировщик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При тестировании UI необходимо проверять несколько ключевых аспектов, чтобы обеспечить качество и удобство использования.

Основные направления проверки:

  1. Визуальная целостность и соответствие макетам (Pixel-Perfect):

    • Корректность шрифтов, цветов, отступов и выравнивания.
    • Отсутствие наложений или "поехавших" элементов.
  2. Адаптивность и кроссбраузерность:

    • Корректное отображение на различных разрешениях экрана (мобильные, планшеты, десктоп).
    • Совместимость с основными браузерами (Chrome, Firefox, Safari, Edge) и их версиями.
  3. Функциональность и юзабилити:

    • Работоспособность всех интерактивных элементов (кнопки, ссылки, формы).
    • Корректная валидация полей ввода и понятные сообщения об ошибках.
    • Интуитивная навигация и доступность элементов (в т.ч. для клавиатуры).
  4. Производительность и отзывчивость:

    • Время загрузки и отрисовки интерфейса.
    • Плавность анимаций и реакция на действия пользователя без "зависаний".

Практический пример тестирования кнопки: Для элемента <button id="submit" class="btn-primary">Отправить</button> проверяем:

  • Наличие и состояние: Кнопка присутствует в DOM, видима и не заблокирована (disabled).
  • Визуал: Применены правильные CSS-классы, стили соответствуют макету.
  • Интерактивность:
    // Пример проверки с помощью Jest + Testing Library
    const button = screen.getByRole('button', {name: /отправить/i});
    expect(button).toBeEnabled();
    expect(button).toHaveClass('btn-primary');
    userEvent.click(button);
    // Проверяем ожидаемый результат клика (например, вызов API)
    expect(mockAPICall).toHaveBeenCalledTimes(1);
  • Состояния: Визуальная обратная связь при наведении (:hover), нажатии (:active) и отключении (:disabled).