Тестирование gui windows приложений

Содержание
  1. Automated GUI testing: пошаговая инструкция
  2. Преимущества автоматизации тестирования
  3. Уровни тестирования
  4. Место автоматизации GUI в процессе разработки
  5. Инструменты для автоматизации GUI
  6. Пример использования GUI автоматизации
  7. Создаем проект с тестами
  8. Selenoid
  9. Jenkins CI
  10. Полезные ссылки
  11. Вывод
  12. Тестирование графического интерфейса (GUI testing)
  13. Библиографическое описание:
  14. Похожие статьи
  15. Игровой интерфейс и управление игрой | Статья в журнале.
  16. Пользовательский интерфейс | Статья в журнале.
  17. Графический интерфейс пользователя — это обширная тема.
  18. Анализ и сравнение методов контроля при проведении.
  19. Разработка модуля формирования документов студенческой.
  20. INTERFACE — использование интерфейсов; — IMPLEMENTS.
  21. Работа с элементами GUI на примере приложения.
  22. Разработка программного приложения визуализации упражнений.
  23. Применение возможностей Python для автоматизации.
  24. Похожие статьи
  25. Игровой интерфейс и управление игрой | Статья в журнале.
  26. Пользовательский интерфейс | Статья в журнале.
  27. Графический интерфейс пользователя — это обширная тема.
  28. Анализ и сравнение методов контроля при проведении.
  29. Разработка модуля формирования документов студенческой.
  30. INTERFACE — использование интерфейсов; — IMPLEMENTS.
  31. Работа с элементами GUI на примере приложения.
  32. Разработка программного приложения визуализации упражнений.
  33. Применение возможностей Python для автоматизации.

Automated GUI testing: пошаговая инструкция

Статья будет полезна не только менеджерам, отвечающим за процессы разработки и тестирования, но и рядовым тестировщикам. Ведь нет такого тестировщика, который не хочет стать автоматизатором.

Тестирование — это неотъемлемая часть разработки ПО, цель которой — своевременное представление информации о качестве продукта группе заинтересованных лиц. Автоматизация тестирования — часть процесса тестирования с использованием программных средств для выполнения тестов и проверки результатов.

Главная цель автоматизации — ускорить процесс тестирования без потери качества, а также избавить ручного тестировщика от рутины прохождения регрессионных сценариев, позволив сфокусироваться на проверке бизнес-логики приложения с точки зрения конечного пользователя.

Преимущества автоматизации тестирования

  • Исключен человеческий фактор. Автоматизация гарантирует, что тест-скрипт всегда будет выполнен одинаково, исключая ошибки по неосторожности.
  • Скорость выполнения — время выполнения автоматизированного тест-скрипта в разы меньше ручного прохождения.
  • Меньшие затраты на поддержку — единожды написанные скрипты требуют намного меньше времени на поддержку и анализ результатов.
  • Отчеты — в результате прогона генерируется отчет с последующей рассылкой всем заинтересованным лицам.
  • Выполнение тестов в удобное время — автотесты могут быть запущены в любое удобное время или по определенному событию. Часто это ночные прогоны и тестирование в нерабочее время, что позволяет рациональнее использовать тест-ресурсы.

Уровни тестирования

Существует несколько уровней тестирования:

  • Unit tests;
  • Integration tests;
  • GUI tests;
  • Manual tests.

Unit и Integration tests оставим разработчикам, с Manual тестами все понятно. Давайте остановимся более подробно на GUI-автоматизации, набирающей популярность огромными темпами.

GUI-автоматизация — наиболее распространенный вид автоматизации тестирования путем тестирования приложения через графический интерфейс пользователя (GUI). Главное его преимущество в том, что приложение тестируют точно так, как его будет использовать конечный пользователь. Также этот подход позволяет тестировать без доступа к исходному коду приложения.

Место автоматизации GUI в процессе разработки

Для успешного тестирования с применением автоматизации необходимо определиться с местом автотестов в процессе разработки. Поскольку при помощи автоматизации GUI покрываются в основном регрессионные сценарии, то есть смысл запускать тесты для каждой новой сборки. Для этого мы используем Jenkins. После каждого успешного билда автоматически стартует сборка проекта с тестами. Также есть возможность ручного запуска или по расписанию, для запуска тестов ночью — в момент минимальной нагрузки на тестовые стенды.

Инструменты для автоматизации GUI

Путем проб и ошибок мы в Ukad пришли к следующему инструментарию для GUI автоматизации:

  • Java — как язык для написания тест-скриптов.
  • Maven — для сборки проекта.
  • Selenide — как фреймворк для написания GUI тестов.
  • TestNG — как фреймворк для управления запуском тестов.
  • Selenoid — для непосредственного управления сессиями браузера.
  • Allure — для создания и эффектной презентации отчета.
  • Jenkins — для непрерывной интеграции тестов в процесс разработки.

Более подробно об инструментах и причинах, почему мы выбрали именно этот набор:

  • Java. Мы используем Java, так как это путь наименьшего сопротивления ведь сообщество просто огромно, что дает доступ к большому количеству готовых решений для тестирования и не только. Это в свою очередь позволяет не тратить много времени на исследование и решение часто возникающих проблем, так как очень велика вероятность того, что решение уже найдено.
  • Maven. Можно использовать любой другой сборщик. Для автотестов это не принципиально, но лично мне Maven ближе.
  • Selenide позволяет не изобретать свой велосипед для решения стандартных проблем Selenium (таких как ожидания и поиск элементов на странице, добавление «мягких» проверок и т. д.) и значительно повысить скорость разработки и стабильность тестов.
  • TestNG. Мы перешли с Junit на TestNG для использования наборов на основе .xml файлов, а также возможности объединения тестов в группы.
  • Selenoid. Мы используем Selenoid вместо Selenium Hub, так как он более стабилен и позволяет запускать сессии браузеров в Docker контейнерах, плюс добавляет такие приятные бонусы, как просмотр выполнения конкретного теста и запись видео его прохождения.
  • Allure. Позволяет значительно расширить возможности стандартного TestNG отчета, эффектно и удобно презентовать всю информацию о пройденных сценариях. В репорте каждый член команды сможет найти для себя полезную информацию. Начиная от времени и количества пройденных сценариев с результатами прохождения, до прикрепленного видео прохождения и скриншотами для упавших тестов.
  • Jenkins. Мы используем Jenkins для сборки некоторых своих проектов, поэтому мы решили использовать его же для сборки тестов. Также с Jenkins удобно интегрировать Allure репорты при помощи дополнительного плагина.
Читайте также:  Astra linux список групп

Пример использования GUI автоматизации

Создаем проект с тестами

Рассмотрим, как используется GUI автоматизация на примере простого теста. Для этого создадим Maven-проект и подключим необходимые зависимости для Selenide, TestNG и Allure. Добавим простой тест, который будет открывать главную страницу сайта и проверять, что футер отображается. Для написания теста используется PageObject паттерн. Для управлением драйверами браузера используется WebDriverManager.

Актуальный pom.xml и исходный код проекта доступен по ссылке.

Проект может быть запущен командой «mvn test» (Maven должен быть установлен и добавлен к системным переменным). Все работает, но тест будет запущен в локальном браузере, а нам необходимо запускать на тестовом стенде. Самые популярные варианты удаленного запуска тестов — Selenium hub и Selenoid. Остановимся подробнее на Selenoid.

Selenoid

Selenoid — это имплементация Selenium hub кода, использующая Docker-контейнеры для запуска браузера, что позволяет нам не задумываться об управлении браузерами и сессиями. Для каждого теста будет запущен свой Docker-контейнер, который будет остановлен после окончания теста. После установки Selenoid (по ссылке доступна подробная инструкция по установке) нам только остается подправить код создания драйвера на код предложенный Selenoid.

Снова запустим наш проект командой “mvn test” .

Тест работает. Но что если мы хотим видеть выполнение теста? Для этого достаточно добавить дополнительный параметр в создание браузера и использовать Selenoid контейнеры с поддержкой VNC, например “selenoid/vnc:chrome_66.0” для 66 версии Chrome. Также нужно добавить дополнительную Capability к созданию браузера “browser.setCapability(«enableVNC», true);” .

Вот так выглядит browser.json после обновления. Для простоты я оставил только Chrome 66 версии.

Также добавим дополнительную Capability к созданию драйвера “browser.setCapability(«enableVNC», true);” .

Запустим наш тест еще раз и перейдем на вкладку «Session». Теперь мы можем следить за выполнением теста.

Но для эффективного использования автотестов необходима непрерывная интеграция с процессом разработки. Для этого мы используем Jenkins.

Jenkins CI

Jenkins — проект для непрерывной интеграции с открытым исходным кодом, написанный на Java. Используется для сборки и поставки программного обеспечения. У нас есть возможность использовать Jenkins для запуска тестов для каждой новой сборки тестируемого продукта. Для создания тестовой сборки нам необходимо установить дополнительные плагины:

  • Maven Integration — для более удобной интеграции с Maven.
  • Allure Jenkins Plugin — для генерации и отображения отчета.

Создадим новую Jenkins job с типом «Maven project».

Добавим наш репозиторий с тестами в секцию «Source Code Management».

Для генерации Allure отчета добавим «Post-build Actions» -> «Allure report».

Теперь после сборки проекта с тестами у нас есть возможность просмотреть отчет тестового прогона для каждой сборки в истории и иконка быстрого доступа к последней сборке.

А вот и Allure отчет.

Финальная стадия интеграции — связываем нашу тестовую сборку со сборкой нашего тестируемого приложения путем добавления в «Build Triggers» — > «Project to watch».

Таким образом после каждой успешной сборки тестируемого проекта мы автоматически запускаем сборку тестов. Остается только оповестить о результатах теста заинтересованную группу людей путем отправки Email или Slack-уведомлений.

Полезные ссылки

  • официальная документация Selenide;
  • официальная документация TestNG;
  • официальная страница Maven;
  • официальная документация Selenoid;
  • официальная документация Allure;
  • официальная документация Jenkins;
  • Иван Крутов «Selenoid: запускаем Selenium тесты в Docker контейнерах» — обзорный доклад о Selenoid от одного из разработчиков;
  • Allure 2: new gen test report tool — обзорный доклад по Allure 2 от разработчика.

Вывод

По мере усложнения кода, добавления нового функционала и исправления багов, процесс тестирования будет занимать все больше времени. Команда мануального тестирования физически не сможет успевать за ритмом команды разработчиков. Ведь проверка нового функционала — это не только функциональные тесты, но и ресурсоемкие регрессионные прогоны. Внедрение автоматизированного тестирования позволяет снять с команды мануального тестирования достаточно объемную часть регрессионных прогонов. Но следует помнить, что ни полная автоматизация, ни стопроцентное ручное тестирование не дадут гарантии идеального результата. Оптимальным подходом в данном случае является разумный баланс.

Задача автоматизации — не только в создании автоматизированных сценариев, но также в непосредственной интеграции в процесс разработки ПО.

Использование связки автоматизированного и ручного тестирования и тесное взаимодействие с командой разработчиков от начала процесса работы над проектом до его реализации повысит качество конечного продукта.

Тестирование графического интерфейса (GUI testing)

Дата публикации: 14.07.2017

Читайте также:  Security policy windows server

Статья просмотрена: 11534 раза

Библиографическое описание:

Абраров, Р. Д. Тестирование графического интерфейса (GUI testing) / Р. Д. Абраров, В. О. Пак. — Текст : непосредственный // Техника. Технологии. Инженерия. — 2017. — № 3.1 (5.1). — С. 3-4. — URL: https://moluch.ru/th/8/archive/62/2630/ (дата обращения: 19.04.2021).

Что такое GUI?

Есть два типа интерфейсов для компьютерных приложений.

Интерфейс командной строки, где вы набираете текст и компьютер ответчик к этой команде.

GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст.

Ниже приведены GUI элементы, которые могут быть использованы для взаимодействия между пользователем и приложением:

GUI тестирование, является проверкой указанных элементов[1].

Что такое GUI тестирование?

Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения. Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.

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

В приведенном выше примере, если мы должны сделать тестирование GUI, сначала убедитесь, что изображения должны быть полностью видны в разных браузерах.

Кроме того, ссылки доступны, и кнопка должна работать при нажатии.

Кроме того, если пользователь изменил размер экрана, ни изображения, ни содержание должно сокращаться или кадрирования или перекрытия.

Необходимость тестирования графического интерфейса пользователя

Теперь, основная концепция тестирования GUI ясно. Несколько вопросов:

 Почему тестирование GUI?

 Действительно ли это необходимо?

 Достаточно ли тестирование функциональности и логики приложения?

Чтобы получить ответ, думайте как пользователь, а не в качестве тестера. Это пользовательский интерфейс приложения, который решил, что пользователь будет использовать приложение дальше или нет.

Обычный пользователь сначала наблюдает за дизайном и внешностью приложения / программного обеспечения и насколько легко понять его интерфейс. Если пользователь не чувствует себя комфортно с интерфейсом приложений или найти сложно понять, что он никогда не будет использовать это приложение еще раз. Вот почему, графический интерфейс является предметом для беспокойства, и надлежащее тестирование должно проводиться для того, чтобы убедиться, что GUI свободен от ошибок.

Что вы проверяете в GUI тестирования?

Следующий перечень обеспечит детальное тестирование GUI.

 Проверьте все элементы GUI для размера, положения, ширины, длины и акцепта символов или цифр. Например, вы должны быть в состоянии внести свой вклад в соответствующие поля ввода.

 Убедитесь, что вы можете выполнить намеченную функциональность приложения с помощью графического интерфейса

 Проверить Сообщения об ошибках отображаются правильно

 Проверьте, четкое разграничение различных участков на экране

 Проверьте шрифт, используемый в приложении для чтения

 Проверьте выравнивание текста собственно

 Проверьте цвет шрифта и предупреждающие сообщения эстетично

 Убедитесь, что изображения имеют хорошую прозрачность

 Убедитесь, что изображения правильно выровнены

 Проверьте расположение элементов графического интерфейса для различного разрешения экрана.

Подход тестирования графического интерфейса пользователя

тестирование графического интерфейса пользователя может быть сделано с помощью трех способов:

Ручное тестирование

При таком подходе графические экраны проверяются вручную тестерами в соответствии с требованиями, указанными в документе бизнес-требований.

Запись и воспроизведение

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

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

Модель представляет собой графическое описание поведения системы. Это поможет нам понять и предсказать поведение системы. Модели помогают в поколении эффективных тестов с использованием требований к системе. Эти потребности должны быть рассмотрены для этого тестирования на основе модели:

 Определить исходные данные для модели

 Рассчитать ожидаемый выход для модели

 Сравните фактический выход с ожидаемым выходом

 Решение о дальнейших действиях по модели

Тестирование графического интерфейса пользователя в основном связано с

  1. Тестирование размер, положение, ширину и высоту элементов.
  2. Тестирование получения сообщения об ошибках, которые выводятся на экран.
  3. Тестирование различных секций экрана.
  4. Тестирование шрифта, является ли он для чтения или нет.
  5. Тестирование экрана в различных разрешениях с помощью увеличения и уменьшения масштаба, как 640 х 480, 600×800 и т.д.
  6. Проверка выравнивания текста и другие элементы, такие как иконки, кнопки и т.д. находятся в нужном месте или нет.
  7. Тестирование цвета шрифтов.
  8. Тестирование цвета сообщений об ошибках и предупреждениях.
  9. Тестирование имеет ли изображение хорошую прозрачность или нет.
  10. Проверка выравнивания изображений.
  11. Тестирование орфографии.
  12. Тестирование интерфейс является привлекательным или нет.
  13. Тестирование размера изображений.
  14. Тестирование заголовков, правильно ли она выровнена или нет.
  15. Тестирование цвета гиперссылки.

Проблемы в тестировании GUI

Самой распространенной проблемой приходят при этом регрессионного тестирования является то, что GUI приложения часто меняется. Это очень трудно проверить и определить, является ли это проблемой или аксессуара. Проблема проявляется, когда у вас нет каких-либо документов, касающихся изменений GUI.

Читайте также:  Osxfuse mac os ��� ���

Вывод:

Успех программного продукта очень зависит от того, как GUI взаимодействует с пользователем и легкость в использовании его различных функций. Таким образом, тестирование GUI очень важно. Ручное тестирование GUI может быть иногда повторяющимся и скучным. Автоматизация настоятельно рекомендуется для тестирования графического интерфейса пользователя.

  1. GUI Testing: Complete Guide. [Электронный ресурс]. — Режим доступа: http://www.guru99.com/gui-testing.html (дата обращения: 25. 05. 2017).
  2. Software testing as integral part of software quality. Пак В. О., Абраров Р. Д., Курязов Д. А. Software testing as integral part of software quality // Молодой ученый. — 2016. — №9.5. — С. 29-32.
  3. P. Ammann and J. Offutt, Introduction to Software Testing. Cambridge University Press,08.
  4. R. Patton, Software Testing. Sams Publishing, 2001.
  5. W. E. Perry, Effective Methods for Software Testing. Wiley Publishing, 2006.
  6. A. Spillner, T. Linz, T. Rossner, M. Winter: Test Management: A Study Guide for the Certified Test Exam ISTQB Advanced Level. Rocky Nook, 2007.
  7. R. Patton, Software testing. Indianapolis, Ind.: Sams, 2001.

Похожие статьи

Игровой интерфейс и управление игрой | Статья в журнале.

Тестирование графического интерфейса (GUI testing). Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.

Пользовательский интерфейс | Статья в журнале.

Тестирование графического интерфейса (GUI testing). GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст. Ниже приведены GUI элементы.

Графический интерфейс пользователя — это обширная тема.

Тестирование графического интерфейса (GUI testing). GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст. Особенно акцент делается на дизайн структуры, образы.

Анализ и сравнение методов контроля при проведении.

Тестирование графического интерфейса (GUI testing). Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.

Разработка модуля формирования документов студенческой.

Тестирование графического интерфейса (GUI testing). Тестирование GUI является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.

INTERFACE — использование интерфейсов; — IMPLEMENTS.

Тестирование графического интерфейса (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 является процесс тестирования графического пользовательского интерфейса системы из тестируемого приложения.

INTERFACE — использование интерфейсов; — IMPLEMENTS.

Тестирование графического интерфейса (GUI testing). Есть два типа интерфейсов для компьютерных приложений. Интерфейс командной строки, где вы набираете текст и компьютер ответчик к этой команде.

Работа с элементами GUI на примере приложения.

Тестирование графического интерфейса (GUI testing). Тестирование GUI участвует проверку экранов с элементами управления, такими как кнопки меню, иконка и все виды баров – панели инструментов, панели меню, диалоговым окном и т.д.

Разработка программного приложения визуализации упражнений.

Тестирование графического интерфейса (GUI testing).

Кроме того, если пользователь изменил размер экрана, ни изображения, ни содержание должно сокращаться или кадрирования или перекрытия.

Применение возможностей Python для автоматизации.

Тестирование графического интерфейса (GUI testing).

GUI означает графический интерфейс пользователя, где вы взаимодействуете с компьютером, используя изображения, а не текст.

Оцените статью