Графический интерфейс пользователя (англ. Graphical User Interface, сокращенно – GUI) содержит визуальные элементы, такие как кнопки, текстовые поля, меню, флажки, изображения и т.д. Тестирование GUI относится к проверке функций или возможностей, которые видны пользователям, поэтому его также называют тестированием пользовательского интерфейса.
Содержание
- Важность проверки пользовательского интерфейса
- Типы тестирования GUI
- Лучшие практики тестирования GUI
- Проблемы и ограничения при тестировании GUI
Важность проверки пользовательского интерфейса
Но зачем нам нужно тестирование GUI? Его цель – обеспечить конечному пользователю беспроблемную работу. Поскольку пользователи часто не знают о специфике пользовательского интерфейса, они обращают внимание на дизайн приложения, его цвета, а также на то, легко ли в нем ориентироваться. Именно благодаря всем этим вещам приложения привлекают пользователей. И поэтому тестирование всех этих элементов имеет большое значение.
Тестирование пользовательского интерфейса можно проводить как вручную, так и автоматически. Но автоматизированное тестирование GUI во многих случаях является наиболее надежным решением.
Друзья, поддержите нас вступлением в наш телеграм канал QaRocks. Там много туторилов, задач по автоматизации и книг по QA.
Типы тестирования графического интерфейса пользователя
1. Функциональное тестирование GUI
Функциональное тестирование определяет, работает ли пользовательский интерфейс в соответствии с функциональными требованиями. Сначала необходимо определить функции, которые вы хотите протестировать. Затем – определить входные и выходные данные в соответствии с требованиями. После этого можно выполнить тест-кейсы и сравнить фактический результат с ожидаемым.
Если полученный и заранее определенный результаты совпадают, это означает, что функции приложения работают в соответствии с нашими ожиданиями. Например, текстовое поле позволяет пользователям вводить в него текст и выводить его на экран. Функциональное тестирование проверяет, правильно ли это происходит.
2. Тестирование удобства использования
Юзабилити-тестирование проверяет, насколько легко пользователь может работать с приложением. Давайте рассмотрим основные аспекты удобства использования, которые нужно проверить.
Быстрый доступ. Время отклика программного обеспечения должно быть небольшим. Мы должны обеспечить загрузку программного обеспечения в течение 3-6 секунд.
Читабельность. Макет приложения должен быть понятным, а содержание – простым и удобным для пользователя.
Удовлетворенность. Проверка удовлетворенности пользователей функциями и предложениями приложения.
Навигация. Шаги навигации должны быть простыми. Понятие “навигация” охватывает строку поиска, верхний и нижний колонтитулы, а также эффективную внутреннюю перелинковку.
Опыт. Убедитесь, что отображаются правильные сообщения об ошибках. Это улучшает удобство использования и пользовательский опыт приложения.
3. Тестирование совместимости GUI
Это тестирование показывает сбалансированность дизайна, макетов и поведения приложения в нескольких ОС, браузерах, мобильных устройствах, базах данных, аппаратных платформах, сетях и т.д. Кроме того, тестирование совместимости проверяет, соответствует ли приложение ожиданиям браузеров и устройств различных ОС. Это надежный способ выявления ошибок до запуска конечного продукта.
4. Тестирование доступности GUI
Тестирование доступности гарантирует, что все пользователи (включая пользователей с ограниченными возможностями) смогут войти в приложение и взаимодействовать с ним максимальной эффективностью. При тестировании доступности проверяются разные аспекты. Например, доступность текста и надписей, коэффициент контрастности, навигация и многое другое. Это тестирование направлено на устранение барьеров, которые могли бы ухудшить пользовательский опыт для разных категорий пользователей.
Лучшие практики тестирования GUI
Планирование и проектирование тестов
Перед написанием тест-кейсов необходимо составить план тестирования. При планировании выделяются основные области пользовательского интерфейса, которые нужно проверить. План тестирования также включает:
- дату начала тестирования
- распределение задач между исполнителями
- описание тестовых сред – мобильная, десктопная и т.д.
- цели тестирования, а также критерии оценки успеха или неудачи
- методы тестирования – сценарное тестирование, исследовательское тестирование, UX-тестирование и т.д.
Разработка тест-кейсов
Начните свой тест-кейс с точного описания события GUI (например, регистрация в приложении). Затем выполните тест, добавив условия и процедуры. Наконец, измерьте результат и сравните его с ожидаемым.
Лучшие практики создания тест-кейсов для тестирования GUI:
- Отделите ненужные тестовые данные от вашего тест-кейса. Также создайте отдельные данные для тестовой среды.
- Создавайте отдельные тест-кейсы для разных модулей. Допустим, модули приложения для покупок – поиск товаров, фильтрация товаров, добавление в корзину и другие. Для них нужно создавать отдельные тест-кейсы.
- Различайте позитивные и негативные тест-кейсы (т.е. с валидными и невалидными данными).
Автоматизация тестирования
Автоматизированное тестирование проходит быстрее и позволяет обрабатывать несколько тест-кейсов одновременно. Кроме того, фреймворки автоматизации поддерживают запись результатов, снимки экрана и ряд современных функций для тестирования. Они позволяют выполнять тесты параллельно, что делает их удобными для кроссбраузерного тестирования.
Проблемы и ограничения тестирования GUI
Сложность систем GUI
Визуальный шум повышает сложность системы пользовательского интерфейса. Ненужные пробелы и контрастность являются причиной этой проблемы. Кроме того, дополнительные элементы и функции отвлекают пользователей и приводят к плохому пользовательскому опыту.
Обслуживание и масштабируемость
Масштабируемость пользовательского интерфейса опирается на возможность повторного использования компонента. Это означает, что дизайн и код должны быть способны адаптироваться к изменениям в функциях. Благодаря этому обслуживание пользовательского интерфейса становится простым. В противном случае поддержка GUI при меняющихся требованиях будет дорогостоящей.
Интеграция с другими видами тестирования
Одной из самых сложных задач тестирования GUI является проведение регрессионного тестирования, поскольку изменения кода мешают регрессионному тестированию дать ожидаемый результат. Другая проблема возникает при структурном тестировании. Это своего рода тестирование “белого ящика”, которое проверяет, все ли компоненты имеют соответствующее тестовое покрытие. При наличии пробелов в покрытии необходимо разработать дополнительные тесты.
Перевод статьи «What is GUI Testing? (Types & Best Practices)».
Пингбэк: Полное руководство по регрессионному тестированию