Во многих проектах помимо функционального и интеграционного тестирования используется и автоматизированное тестирование графического интерфейса, или GUI тестирование (Graphical User Interface). Само по себе GUI тестирование — это имитация действий пользователя. Оно предназначено для проверки выполнения всех основных сценариев работы с приложением. В широком смысле графическое тестирование позволяет:
• выявлять ошибки в функциональности посредством графического интерфейса;
• выявлять необработанные исключения, возникающие при взаимодействии с графическим интерфейсом;
• выявлять некорректные ситуации при работе с выводимыми данными;
• проверять успешность выполнения основных пользовательских сценариев.
На кафедре системного программирования СПбГУ силами студентов и преподавателей разрабатывается проект WMP. Он является аналогом проекта QReal и служит для создания средств визуального программирования на основе построения диаграмм. Ярким примером такой среды, построенной с помощью QReal, является TRIK Studio, предназначенная для программирования роботов. В отличие от QReal, WMP и все порождаемые им среды программирования находятся в web пространстве в рамках одной системы. На данном этапе развития WMP включает в себя редактор диаграмм для роботов и BPMN (Business Process Model and Notation) редактор. Первый полностью повторяет язык TRIK Studio. Платформа WMP предоставляет библиотеки, с помощью которых процесс создания каждого такого редактора существенно упрощается. Учитывая модульность архитектуры, каждый редактор является по сути подключаемым модулем к платформе, то есть легко интегрируемым с ней.
Как и любой другой программный продукт, WMP должен тестироваться, но, в отличие от большинства web проектов, главная функциональность WMP — составление диаграмм. Существуют инструменты GUI тестирования, позволяющие имитировать нажатие на кнопку, ввод текста и другие элементарные действия, но они не подходят для конструктора диаграмм ввиду того, что они слишком низкоуровневые. Необходимы операции более высокого уровня, которые позволят про-изводить элементарные манипуляции с диаграммой в рамках одной ко-манды. Также в силу того, что речь идет об имитации действий пользователя, хорошим следствием применения технологий GUI тестирования было бы создание обучающих анимаций, которые позволили бы упростить введение пользователя в предметную область.
Постановка задачи
На основе имеющихся библиотек GUI тестирования сайтов разработать инфраструктуру для графического тестирования в проекте WMP.
Для достижения этой цели были поставлены следующие задачи.
1. Разработать средства тестирования редактора диаграмм WMP.
2. Разработать средства конфигурирования полученного решения.
3. Реализовать инструменты, позволяющие создавать
обучающие анимации.
В ходе данной работы были получены следующие результаты.
1. Разработаны сервисы GUI тестирования для навигации по проекту WMP.
2. Разработаны сервисы GUI тестирования для редактора диаграмм.
• Сервисы для тестирования конструктора диаграмм.
• Сервис для тестирования верхнего меню редактора.
• Сервис для тестирования дерева папок.
• Сервис для тестирования жестов мыши.
3. Спроектированы и интегрированы средства конфигурации.
4. Реализованы инструменты, позволяющие создавать обучающие анимации.
5. Выявлен ряд ошибок в коде платформы WMP, некоторые из них исправлены.
Результаты данной работы позволяют создавать автоматизированные тесты графического интерфейса проекта WMP при помощи высокоуровнего API. Методы разработанных сервисов позволяют ими-тировать все основные манипуляции с диаграммами, все возможные действия пользователя с верхним меню редактора, включая сохранение и открытие диаграмм, а также жесты мыши. Благодаря спроектированным и внедренным средствам конфигурирования, появляется возможность изменять идентификаторы элементов, участвующих в тестировании, только в одном месте, что позволяет разрабатывать WMP практически независимо от GUI тестирования.