Организация автоматизированного тестирования GUI
При разработке мы стараемся покрывать наш код не только матом, но и unit тестами. Однако все покрыть тестами не всегда получается. К тому же, остается GUI, для которого написание тестов довольно трудоемкая работа. При всех этих проблемах неизменным остается требование, что каждый следующий камит в репозиторий не должен портить уже существующий функционал.
В этой статье я хочу рассказать какой инструментарий мы используем для тестирования наших desktop приложений, написанных на Qt.
Пол года назад в ходе исследования инструментов для тестирования GUI в поле моего зрения попал продукт Squish компании froglogic. Из плюсов данного решения можно отметить следующие:
Поскольку из конкурентов подобных вкусностей за такие деньги никто не предлагал, а аналогичных бесплатных решений я не нашел, скрепя сердце я купил лицензию.
Итак, с предысторией закончено, перейдем к созданию тестов. Для демонстрации я выбрал один из наших публичных проектов — MDC. Задача простая, проверить может ли MDC подключится к ICQ, Gtalk, mail.ru. Тема особенно актуально в свете последних сюрпризов компании AOL :). Признаком подключения будем считать появление окна контакт листа.
Таким образом мы получили текст теста, который будем использовать как основу.
Использовать данный текст без изменений конечно можно и для обширного спектра задач этого вполне достаточно, что дает возможность работать со Squish не только разработчикам, но и менее квалифицированным сотрудникам, однако для нашей задачи данный код не подходит.
Squish поддерживает 2 вида именования объектов: symbolic name и real Name. При автоматическом создании текста теста Squish использует symbolic name, что не всегда удобно. Так, например, окно контакт листа автоматически определяется как
symbolic name: MDC v1.0.3.1.nightly_CContactListWidget
где MDC v1.0.3.1.nightly это title окна, а CContactListWidget — тип данного видгета. В заголовке окна присутствует версия, которая вполне очевидно будет меняться и объект, заданный таким образом никогда не будет найден. В этом случае надо применять real name:
Таким образом, не зависимо от заголовка окна мы всегда сможем найти нужный нам widget и итоговый код нашего теста будет выглядеть следующим образом:
Из него легко сделать скрипт тестирования подключения к jabber и icq, заменив логин, пароль и координаты клика. На видео ниже показан запуск test suit, состоящий из трех test case (icq, mail.ru, jabber )
После чего этот test suit можно заставить выполняться после отработки unit тестов при каждом следующем камите, что бы всегда иметь под рукой вот такую красивую картинку:
Но это уже другая история, о которой, если это будет интересно, я тоже с удовольствием напишу.
В этой статье я только вскользь коснулся функциональных возможностей Squish умышленно не касаясь таких вопросов, как синхронизационные примитивы, работа с объектами Qt через API. Об этих вещах я планирую написать в следующих постах.
Тестирование графического интерфейса (GUI testing)
Дата публикации: 14.07.2017
Статья просмотрена: 13960 раз
Библиографическое описание:
Абраров, Р. Д. Тестирование графического интерфейса (GUI testing) / Р. Д. Абраров, В. О. Пак. — Текст : непосредственный // Техника. Технологии. Инженерия. — 2017. — № 3.1 (5.1). — С. 3-4. — URL: https://moluch.ru/th/8/archive/62/2630/ (дата обращения: 10.12.2021).
Что такое GUI?
Есть два типа интерфейсов для компьютерных приложений.
Интерфейс командной строки, где вы набираете текст и компьютер ответчик к этой команде.
GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст.
Ниже приведены GUI элементы, которые могут быть использованы для взаимодействия между пользователем и приложением:
GUI тестирование, является проверкой указанных элементов[1].
Что такое GUI тестирование?
Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения. Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.
GUI это то, что видит пользователь. Пользователь не видит исходный код. Интерфейс виден пользователю. Особенно акцент делается на дизайн структуры, образы, которые они работают должным образом или нет.
В приведенном выше примере, если мы должны сделать тестирование GUI, сначала убедитесь, что изображения должны быть полностью видны в разных браузерах.
Кроме того, ссылки доступны, и кнопка должна работать при нажатии.
Кроме того, если пользователь изменил размер экрана, ни изображения, ни содержание должно сокращаться или кадрирования или перекрытия.
Необходимость тестирования графического интерфейса пользователя
Теперь, основная концепция тестирования GUI ясно. Несколько вопросов:
Почему тестирование GUI?
Действительно ли это необходимо?
Достаточно ли тестирование функциональности и логики приложения?
Чтобы получить ответ, думайте как пользователь, а не в качестве тестера. Это пользовательский интерфейс приложения, который решил, что пользователь будет использовать приложение дальше или нет.
Обычный пользователь сначала наблюдает за дизайном и внешностью приложения / программного обеспечения и насколько легко понять его интерфейс. Если пользователь не чувствует себя комфортно с интерфейсом приложений или найти сложно понять, что он никогда не будет использовать это приложение еще раз. Вот почему, графический интерфейс является предметом для беспокойства, и надлежащее тестирование должно проводиться для того, чтобы убедиться, что GUI свободен от ошибок.
Что вы проверяете в GUI тестирования?
Следующий перечень обеспечит детальное тестирование GUI.
Проверьте все элементы GUI для размера, положения, ширины, длины и акцепта символов или цифр. Например, вы должны быть в состоянии внести свой вклад в соответствующие поля ввода.
Убедитесь, что вы можете выполнить намеченную функциональность приложения с помощью графического интерфейса
Проверить Сообщения об ошибках отображаются правильно
Проверьте, четкое разграничение различных участков на экране
Проверьте шрифт, используемый в приложении для чтения
Проверьте выравнивание текста собственно
Проверьте цвет шрифта и предупреждающие сообщения эстетично
Убедитесь, что изображения имеют хорошую прозрачность
Убедитесь, что изображения правильно выровнены
Проверьте расположение элементов графического интерфейса для различного разрешения экрана.
Подход тестирования графического интерфейса пользователя
тестирование графического интерфейса пользователя может быть сделано с помощью трех способов:
Ручное тестирование
При таком подходе графические экраны проверяются вручную тестерами в соответствии с требованиями, указанными в документе бизнес-требований.
Запись и воспроизведение
Тестирование GUI можно выполнить с помощью инструментов автоматизации. Это делается в 2 частях. Во время записи шаги теста записываются инструментом автоматизации. Во время воспроизведения записанные этапы тестирования выполняются в тестовом приложении.
Модель на основе тестирования
Модель представляет собой графическое описание поведения системы. Это поможет нам понять и предсказать поведение системы. Модели помогают в поколении эффективных тестов с использованием требований к системе. Эти потребности должны быть рассмотрены для этого тестирования на основе модели:
Определить исходные данные для модели
Рассчитать ожидаемый выход для модели
Сравните фактический выход с ожидаемым выходом
Решение о дальнейших действиях по модели
Тестирование графического интерфейса пользователя в основном связано с
Проблемы в тестировании GUI
Самой распространенной проблемой приходят при этом регрессионного тестирования является то, что GUI приложения часто меняется. Это очень трудно проверить и определить, является ли это проблемой или аксессуара. Проблема проявляется, когда у вас нет каких-либо документов, касающихся изменений GUI.
Вывод:
Успех программного продукта очень зависит от того, как GUI взаимодействует с пользователем и легкость в использовании его различных функций. Таким образом, тестирование GUI очень важно. Ручное тестирование GUI может быть иногда повторяющимся и скучным. Автоматизация настоятельно рекомендуется для тестирования графического интерфейса пользователя.
Похожие статьи
Игровой интерфейс и управление игрой | Статья в журнале.
Тестирование графического интерфейса (GUI testing). Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.
Пользовательский интерфейс | Статья в журнале.
Тестирование графического интерфейса (GUI testing). GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст. Ниже приведены GUI элементы.
Графический интерфейс пользователя — это обширная тема.
Тестирование графического интерфейса (GUI testing). GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст. Особенно акцент делается на дизайн структуры, образы.
Анализ и сравнение методов контроля при проведении.
Тестирование графического интерфейса (GUI testing). Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.
Разработка модуля формирования документов студенческой.
Тестирование графического интерфейса (GUI testing). Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.
Тестирование графического интерфейса (GUI testing). Есть два типа интерфейсов для компьютерных приложений. Интерфейс командной строки, где вы набираете текст и компьютер ответчик к этой команде.
Работа с элементами GUI на примере приложения.
Тестирование графического интерфейса (GUI testing). Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.
Разработка программного приложения визуализации упражнений.
Тестирование графического интерфейса (GUI testing).
Кроме того, если пользователь изменил размер экрана, ни изображения, ни содержание должно сокращаться или кадрирования или перекрытия.
Применение возможностей Python для автоматизации.
Тестирование графического интерфейса (GUI testing).
GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст.
Похожие статьи
Игровой интерфейс и управление игрой | Статья в журнале.
Тестирование графического интерфейса (GUI testing). Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.
Пользовательский интерфейс | Статья в журнале.
Тестирование графического интерфейса (GUI testing). GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст. Ниже приведены GUI элементы.
Графический интерфейс пользователя — это обширная тема.
Тестирование графического интерфейса (GUI testing). GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст. Особенно акцент делается на дизайн структуры, образы.
Анализ и сравнение методов контроля при проведении.
Тестирование графического интерфейса (GUI testing). Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.
Разработка модуля формирования документов студенческой.
Тестирование графического интерфейса (GUI testing). Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.
Тестирование графического интерфейса (GUI testing). Есть два типа интерфейсов для компьютерных приложений. Интерфейс командной строки, где вы набираете текст и компьютер ответчик к этой команде.
Работа с элементами GUI на примере приложения.
Тестирование графического интерфейса (GUI testing). Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.
Разработка программного приложения визуализации упражнений.
Тестирование графического интерфейса (GUI testing).
Кроме того, если пользователь изменил размер экрана, ни изображения, ни содержание должно сокращаться или кадрирования или перекрытия.
Применение возможностей Python для автоматизации.
Тестирование графического интерфейса (GUI testing).
GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст.
Тестирование GUI
Чтобы понять GUI Testing, давайте сначала поймем
Что такое графический интерфейс?
Существует два типа интерфейсов для компьютерного приложения. Интерфейс командной строки, где вы вводите текст, и компьютер отвечает на эту команду. GUI обозначает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст.
Ниже приведены элементы графического интерфейса, которые можно использовать для взаимодействия между пользователем и приложением:

Тестирование GUI — это проверка вышеуказанных элементов.
Что такое тестирование GUI?
GUI TESTING — это тип тестирования программного обеспечения, который проверяет графический интерфейс пользователя тестируемого приложения. Тестирование GUI включает проверку экранов с помощью элементов управления, таких как меню, кнопки, значки и все типы панелей — панель инструментов, строка меню, диалоговые окна, окна и т. Д. Цель тестирования графического интерфейса пользователя (GUI) — обеспечить функциональность интерфейса пользователя. работает согласно спецификации.
GUI — это то, что видит пользователь. Скажем, если вы посетите guru99.com, то, что вы увидите, скажем, домашнюю страницу, это GUI (графический интерфейс пользователя) сайта. Пользователь не видит исходный код. Интерфейс виден пользователю. Особое внимание уделяется структуре дизайна, изображениям, с которыми они работают должным образом или нет.

В приведенном выше примере, если нам нужно выполнить тестирование GUI, мы сначала проверяем, чтобы изображения были полностью видны в разных браузерах.
Также ссылки доступны, и кнопка должна работать при нажатии.
Кроме того, если пользователь изменяет размер экрана, ни изображения, ни содержимое не должны сжиматься, обрезаться или перекрываться.
В этом уроке вы узнаете
Необходимость тестирования GUI
Теперь основная концепция тестирования GUI понятна. Несколько вопросов, которые возникнут у вас в голове, будут
Чтобы получить ответ думать как пользователь, а не как тестер. Пользователь не имеет никаких знаний о программном обеспечении / приложениях XYZ. Это пользовательский интерфейс приложения, который решает, будет ли пользователь использовать приложение дальше или нет.
Обычный пользователь сначала наблюдает за дизайном и внешним видом приложения / программного обеспечения, а также за легкостью понимания пользовательского интерфейса. Если пользователю неудобно работать с Интерфейсом или он находит комплекс приложений, чтобы понять, что он никогда не будет использовать это приложение снова. Вот почему GUI вызывает беспокойство, и следует проводить надлежащее тестирование, чтобы убедиться, что GUI не содержит ошибок.
Что вы проверяете в GUI Testing?
Следующий контрольный список обеспечит подробное тестирование GUI в Software Testing.
Методы тестирования GUI / Методы
Тестирование GUI может быть выполнено тремя способами:
Ручное тестирование
При таком подходе графические экраны проверяются вручную тестировщиками в соответствии с требованиями, изложенными в документе бизнес-требований.

Запись и воспроизведение
Тестирование GUI может быть сделано с использованием инструментов автоматизации. Это сделано в 2 частях. Во время записи этапы тестирования фиксируются инструментом автоматизации. Во время воспроизведения записанные тестовые шаги выполняются в тестируемом приложении. Пример таких инструментов — QTP.

Модель на основе тестирования

Модель — это графическое описание поведения системы. Это помогает нам понять и предсказать поведение системы. Модели помогают в создании эффективных тестовых случаев с использованием системных требований. Для этого тестирования на основе модели необходимо учитывать следующее:
Некоторые из методов моделирования, из которых могут быть получены тестовые случаи:
Модельное тестирование является развивающейся техникой для генерации тестовых случаев из требований . Его главное преимущество по сравнению с двумя вышеупомянутыми методами заключается в том, что он может определять нежелательные состояния, которые может достичь ваш графический интерфейс.
Ниже приведены инструменты с открытым исходным кодом для проведения автоматизированного теста пользовательского интерфейса.
| Товар | По лицензии |
|---|---|
| AutoHotkey | GPL |
| Селен | апаш |
| Sikuli | MIT |
| Robot Framework | апаш |
| вода | BSD |
| Dojo Toolkit | BSD |
Пример тестирования GUI
Тестирование GUI в основном включает в себя
Демо: Как сделать тест GUI
Здесь мы будем использовать несколько примеров тестов для следующего экрана.

Ниже приведен пример тестовых случаев, который состоит из сценариев тестирования пользовательского интерфейса и юзабилити.
TC 01- Убедитесь, что текстовое поле с надписью « Исходная папка » выровнено правильно.
TC 02 — Убедитесь, что текстовое поле с надписью « Упаковка » выровнено правильно.
TC 03 — Убедитесь, что метка с именем « Обзор » является кнопкой, которая находится в конце TextBox с именем « Исходная папка ».
TC 04 — Убедитесь, что метка с именем « Обзор » является кнопкой, которая расположена в конце TextBox с именем « Пакет ».
TC 05 — Убедитесь, что текстовое поле с надписью « Имя » выровнено правильно.
TC 06 — Убедитесь, что метка « Модификаторы » состоит из 4 переключателей с названием public, default, private, protected.
TC 07 — Убедитесь, что метка « Модификаторы » состоит из 4 переключателей, которые правильно выровнены в ряд.
TC 08 — Убедитесь, что метка « Суперкласс » под меткой « Модификаторы » состоит из раскрывающегося списка, который должен быть правильно выровнен.
TC 09 — Убедитесь, что метка « Суперкласс » состоит из кнопки с меткой « Обзор », которая должна быть правильно выровнена.
TC 10 — Убедитесь, что при нажатии любой радиокнопки указатель мыши по умолчанию должен быть заменен указателем мыши.
TC 11 — Убедитесь, что пользователь не может набрать в раскрывающемся списке « Суперкласс ».
TC 12 — Убедитесь, что должна быть правильная ошибка, если что-то было ошибочно выбрано.
TC 13 — Убедитесь, что ошибка должна быть сгенерирована КРАСНЫМ цветом, где это необходимо.
TC 14 — Убедитесь, что в сообщениях об ошибках должны использоваться правильные метки.
TC 15 — Убедитесь, что отдельные переключатели должны выбираться по умолчанию каждый раз.
TC 16 — Убедитесь, что кнопка TAB должна работать должным образом при переходе на другое поле рядом с предыдущим.
TC 17 — Убедитесь, что все страницы должны содержать правильный заголовок.
TC 18 — Убедитесь, что текст страницы должен быть правильно выровнен.
TC 19 — Убедитесь, что после обновления любого поля должно отображаться соответствующее подтверждающее сообщение.
TC 20 — Убедитесь, что должна быть выбрана только 1 радиокнопка и может быть установлено более одного флажка.
Проблемы в тестировании GUI
В разработке программного обеспечения наиболее распространенной проблемой при проведении регрессионного тестирования является то, что графический интерфейс приложения часто меняется. Очень трудно проверить и определить, является ли это проблемой или улучшением. Проблема проявляется, когда у вас нет документов, касающихся изменений графического интерфейса.
Инструменты тестирования GUI
Вывод:
Успех программного продукта во многом зависит от того, как графический интерфейс взаимодействует с пользователем и облегчает использование его различных функций. Следовательно, тестирование GUI очень важно. Ручное тестирование GUI иногда может быть повторяющимся и скучным и, следовательно, подверженным ошибкам. Автоматизация настоятельно рекомендуется для тестирования графического интерфейса.
Эта статья стала возможной благодаря вкладу Свати Гилдиял, Пратика Чандры и Гуру99.





