Научная статья на тему 'АРХИТЕКТУРА ИНТЕЛЛЕКТУАЛЬНОЙ СИСТЕМЫ ТЕСТИРОВАНИЯ'

АРХИТЕКТУРА ИНТЕЛЛЕКТУАЛЬНОЙ СИСТЕМЫ ТЕСТИРОВАНИЯ Текст научной статьи по специальности «Компьютерные и информационные науки»

CC BY
224
44
i Надоели баннеры? Вы всегда можете отключить рекламу.
Ключевые слова
СИСТЕМА ТЕСТИРОВАНИЯ / ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ / ГРАФИЧЕСКИЙ ИНТЕРФЕЙС / ПОЛЬЗОВАТЕЛЬ

Аннотация научной статьи по компьютерным и информационным наукам, автор научной работы — Бойко Владимир Андреевич

Постановка задачи: существующие сегодня инструменты автоматизации тестирования графического интерфейса пользователя представляют собой программные комплексы, воспроизводящие сценарий взаимодействия пользователя с тестируемым программным обеспечением. Процесс воспроизведения такого сценария основывается на возможности имитации действий пользователя. Принципы, заложенные в реализацию такой системы тестирования, могут оказывать значительное влияние как на достоверность воспроизведения сценариев тестирования, так и на меру интеграции системы как в тестируемое программное обеспечение, так и в запускающую его среду. Подавляющее большинство инструментов не способны обеспечить высокой достоверности и переносимости тестовых сценариев. Вместе с тем, проблема обеспечения качества работы и тестирования различных интерфейсов пользователя, в независимости от запускающей его платформы, размеров экрана и способа ввода, является чрезвычайно сложной, многогранной, и до сих пор эффективно не решенной. Целью работы является создание и описание модульной архитектуры интеллектуальной системы тестирования, а также формализация особенностей взаимодействия её модулей. Используемые методы: для решения поставленных в работе задач использовались методы системного анализа. Новизна: элементами новизны представленного архитектурного решения являются модульная структура, циклическое выполнение команд тестового сценария и наличие интеллектуального модуля способного распознавать элементы графического интерфейса пользователя. Результат: на основе концепции интеллектуализации процесса тестирования графического интерфейса пользователя создана модульная циклическая архитектура интеллектуальной системы тестирования. Предложена концепция цикла выполнения команды тестового сценария. Предложенная архитектура интеллектуальной системы тестирования, основана на чтении состояния тестируемого ПО с монитора и управлении состоянием средствами эмуляции клавиатуры и мыши. Такая архитектура позволяет интеллектуальной системе тестирования работать автономно и имитировать действия пользователя тестируемого ПО. Практическая значимость: представленная архитектура может быть положена в основу создания принципиально нового инструмента автоматизации тестирования графического интерфейса пользователя.

i Надоели баннеры? Вы всегда можете отключить рекламу.

Похожие темы научных работ по компьютерным и информационным наукам , автор научной работы — Бойко Владимир Андреевич

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

INTELLIGENT TESTING SYSTEM ARCHITECTURE

Statement of the problem: the existing tools for automating testing of the graphical user interface are software systems that reproduce the scenario of user interaction with the software under test. The process of reproducing such a scenario is based on the ability to simulate user actions. The principles underlying the implementation of such a testing system can have a significant impact both on the reliability of the reproduction of test scenarios and on the degree of integration of the system both into the software under test and into the environment that runs it. The overwhelming majority of tools are not able to provide high reliability and portability of test scripts. At the same time, the problem of ensuring the quality of work and testing various user interfaces, regardless of the platform that launches it, screen size and input method, is extremely complex, multifaceted, and has not yet been effectively solved. The aim of the work is to create and describe the modular architecture of an intelligent testing system, as well as formalize the features of the interaction of its modules. Methods used: to solve the tasks set in the work, the methods of system analysis were used. Novelty: the elements of novelty of the presented architectural solution are modular structure, cyclic execution of test script commands and the presence of an intelligent module capable of recognizing elements of the graphical user interface. Result: based on the concept of intellectualization of the graphical user interface testing process, a modular cyclical architecture of an intelligent testing system was created. The concept of a cycle for executing a test script command is proposed. The proposed architecture of an intelligent testing system is based on reading the state of the software under test from the monitor and controlling the state by means of keyboard and mouse emulation. This architecture allows the intelligent testing system to work autonomously and simulate the actions of the user of the tested software. Practical significance: the presented architecture can serve as the basis for creating a fundamentally new tool for automating testing of the graphical user interface.

Текст научной работы на тему «АРХИТЕКТУРА ИНТЕЛЛЕКТУАЛЬНОЙ СИСТЕМЫ ТЕСТИРОВАНИЯ»

Архитектура интеллектуальной системы тестирования Intelligent testing system architecture

Бойко Владимир Андреевич,

аспирант, Сибирский федеральный университет, Красноярск, Российская Федерация

Boyko Vladimir Andreevich, post-graduate student, Siberian Federal University, Krasnoyarsk, Russian Federation Аннотация. Постановка задачи: существующие сегодня инструменты автоматизации тестирования графического интерфейса пользователя представляют собой программные комплексы, воспроизводящие сценарий взаимодействия пользователя с тестируемым программным обеспечением. Процесс воспроизведения такого сценария основывается на возможности имитации действий пользователя. Принципы, заложенные в реализацию такой системы тестирования, могут оказывать значительное влияние как на достоверность воспроизведения сценариев тестирования, так и на меру интеграции системы как в тестируемое программное обеспечение, так и в запускающую его среду. Подавляющее большинство инструментов не способны обеспечить высокой достоверности и переносимости тестовых сценариев. Вместе с тем, проблема обеспечения качества работы и тестирования различных интерфейсов пользователя, в независимости от запускающей его платформы, размеров экрана и способа ввода, является чрезвычайно сложной, многогранной, и до сих пор эффективно не решенной. Целью работы является создание и описание модульной архитектуры интеллектуальной системы тестирования, а также формализация особенностей взаимодействия её модулей. Используемые методы: для решения поставленных в работе задач использовались методы системного анализа. Новизна: элементами новизны представленного архитектурного решения являются модульная структура, циклическое выполнение команд тестового сценария и наличие интеллектуального модуля способного распознавать элементы графического интерфейса пользователя. Результат: на основе концепции интеллектуализации процесса тестирования графического интерфейса пользователя создана модульная циклическая архитектура интеллектуальной системы тестирования. Предложена концепция цикла выполнения команды тестового сценария. Предложенная архитектура интеллектуальной системы тестирования, основана на чтении состояния тестируемого ПО с монитора и

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

Summary. Statement of the problem: the existing tools for automating testing of the graphical user interface are software systems that reproduce the scenario of user interaction with the software under test. The process of reproducing such a scenario is based on the ability to simulate user actions. The principles underlying the implementation of such a testing system can have a significant impact both on the reliability of the reproduction of test scenarios and on the degree of integration of the system both into the software under test and into the environment that runs it. The overwhelming majority of tools are not able to provide high reliability and portability of test scripts. At the same time, the problem of ensuring the quality of work and testing various user interfaces, regardless of the platform that launches it, screen size and input method, is extremely complex, multifaceted, and has not yet been effectively solved. The aim of the work is to create and describe the modular architecture of an intelligent testing system, as well as formalize the features of the interaction of its modules. Methods used: to solve the tasks set in the work, the methods of system analysis were used. Novelty: the elements of novelty of the presented architectural solution are modular structure, cyclic execution of test script commands and the presence of an intelligent module capable of recognizing elements of the graphical user interface. Result: based on the concept of intellectualization of the graphical user interface testing process, a modular cyclical architecture of an intelligent testing system was created. The concept of a cycle for executing a test script command is proposed. The proposed architecture of an intelligent testing system is based on reading the state of the software under test from the monitor and controlling the state by means of keyboard and mouse emulation. This architecture allows the intelligent testing system to work autonomously and simulate the actions of the user of the tested software. Practical significance: the presented architecture can serve as the basis for creating a fundamentally new tool for automating testing of the graphical user interface.

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

Key words: testing system, software, graphical interface, user.

Введение

Архитектура интеллектуальной системы тестирования (ИСТ) [1] может быть реализована на основе различных подходов к взаимодействию с тестируемым

программным обеспечением (ПО). Выбор подхода к считыванию текущего состояния тестируемого ПО и к вводу данных, определяет схему работы и особенности внутреннего устройства инструмента тестирования.

Архитектура интеллектуальной системы тестирования

В данной работе предлагается сема работы ИСТ, опирающаяся на использование автономной системы распознавания состояния тестируемого ПО непосредственно с экрана монитора, которая через средства эмуляции клавиатуры и мыши обеспечивает управление тестируемым ПО.

Архитектура ИСТ состоит из взаимодействующих между собой систем и модулей, способных включать в себя несколько систем. Части системы разделены следующим образом:

— модуль чтения ГИП;

— модуль сценариев тестирования;

— модуль обработки инструкций;

— система управления элементами ГИП.

Обобщённая структура ИСТ представляет из себя цикл выполнения команд и может быть представлена схемой на рисунке 1.

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

Модуль чтения ГИП — это модуль, сканирующий актуальное состояние окна тестируемого ПО. Актуальное состояние окна тестируемого ПО представляется в виде изображения.

Модуль раз в секунду сканирует экран и сверяет полученное изображение с текущим состоянием, в случае нахождения различий новое состояние экрана отправляется в модуль сценариев тестирования.

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

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

Модуль обработки инструкций

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

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

Система управления элементами ГИП — это система, производящая манипуляции с платформой, запускающей тестируемое ПО. Такие манипуляции могут производиться через использование устройств ввода, таких как мышь и клавиатура.

Используя систему управления элементами ГИП, ИСТ может управлять тестируемым ПО через беспроводные (ШиеШоШ) или проводные (USB) каналы.

Правильное управление элементами ГИП достигается за счёт знания их координат и типов, так, например нажатие кнопки и выбор элемента выпадающего списка требуют совершенно разного набора действий.

Особенности взаимодействия модулей интеллектуальной системы тестирования

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

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

Команда передаётся из модуля управления сценарием в модуль обработки инструкций, кроме того, в него передаётся и актуальное состояние тестируемого ПО в виде изображения.

Модуль обработки инструкций, используя алгоритмы компьютерного зрения, находит координаты элемента ГИП с указанным в команде типом и названием.

Получив координаты элемента ГИП, ИСТ готова к взаимодействию с ней. Координаты отправляются в систему управления элементами ГИП. Основываясь на типе взаимодействия, указанного в команде, ИСТ имитирует действия пользователя.

Система управления элементами ГИП сообщает о завершении взаимодействия с тестируемым ПО, что даёт сигнал модулю чтения ГИП на обновление состояния тестируемого ПО, хранящегося в модуле управления сценарием тестирования. Цикл выполнения команды завершён.

Вывод

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

Список литературы

1. Бойко В.А. Разработка интеллектуальных систем тестирования программного обеспечения. Проспект Свободный — 2018 [Электронный ресурс] : материалы Международной студенческой конференции, Красноярск, 23-27 апреля 2018 г. / отв. за вып. В. Ю. Серегина. — Электрон. текстовые дан. (pdf, 31,3 Мб). — Красноярск : СФУ,

2018. — 1456 с. — Загл. с титул. экрана. — ISBN 978-5-7638-3975-3 : Б. ц.. — Изд. № 2018-5864.

2. Луис Педро Коэльо, Вилли Ричарт. Построение систем машинного обучения на языке Python. // М.: ДМК Пресс. 2016. - 302 с.

3. Алпайдин Э. Машинное обучение: новый искусственный интеллект. // М. : Издательская группа «Точка», Альпина паблишер. 2017. — 208 с.

4. ALPAYDIN E. Introduction to machine learning. // MIT Pres. - 579 p.

5. Hapke H., Nelson C. Building Machine Learning Pipelines. // O'Reilly. 2020. - 366 p.

6. Jeremy Watt, Reza Borhani, Aggelos Katsaggelos. Machine Learning Refined. // Cambridge University Press. 2020. - 544 p.

i Надоели баннеры? Вы всегда можете отключить рекламу.