Abstract

This paper is dedicated to practical research in the field of automated testing and analysis of software that features a graphical user interface. Current tendencies in user interface development favour semi-automatic approaches that employ human experts to create and prepare test suites. The ever-increasing complexity of software leads to decreased effectiveness of these approaches, especially when one considers large amounts of computational resources available during development. We present a fully automatic approach to dynamic analysis of program graphical interfaces. Our approach is based on the open-source GUITAR tool, which we have identified among other industrial and academic tools as the one closest to full automation. While highly efficient, GUITAR nevertheless has certain drawbacks and limitations which might cause insufficient accuracy in modelling the graphical interface structure and its individual elements. In turn, these limitations lead to fragments of graphical interface not getting processed during analysis or cause incorrect (i.e. not reproducible in practice) test cases to be generated. Our contributions include a set of modifications: incremental graphical interface model generation, improved identification of graphical interface element attributes and side effects, and finally a test case generation algorithm that focuses on reaching unprocessed graphical interface elements to check their functionality and improve the model. We have tested our modifications on a set of open source projects originally checked by GUITAR developers and achieved positive results: increased precision of GUI structure model and theoretically can decrease number of inapplicable test cases. Finally, we discuss several potential improvements for future work, including, in particular, the use of dynamic symbolic execution methods.

Highlights

  • This paper is dedicated to practical research in the field of automated testing and analysis of software that features a graphical user interface

  • The ever-increasing complexity of software leads to decreased effectiveness of these approaches, especially when one considers large amounts of computational resources available during development

  • We present a fully automatic approach to dynamic analysis of program graphical interfaces

Read more

Summary

Введение

В повседневной жизни современному человеку всё чаще приходится сталкиваться с использованием высокотехнологичных устройств как для выполнения работы, так и для общения, отдыха и развлечений. Для проверки качества реализации программ с графическим пользовательским интерфейсом традиционно используются инструменты автоматизации анализа и тестирования, которые ограничиваются тем, что исключают необходимость вручную взаимодействовать с элементами графического интерфейса. Данная работа нацелена на развитие методов полностью автоматического динамического анализа программ, предоставляющих графический интерфейс пользователя, позволяющих минимизировать степень участия эксперта в процессе создания набора тестовых сценариев, сохраняя при этом полноту покрытия программы. Инструмент представляет графический пользовательский интерфейс программы в виде дерева (леса), где корнем является главное окно (или несколько окон) программы, промежуточными узлами являются контейнеры элементов графического пользовательского интерфейса, а листьями — конечные элементы, такие как поля ввода, экранные кнопки и др., и использует XPath-подобный язык RanoreXpath для описания последовательностей взаимодействия с элементами GUI, а также предоставляет пользователям возможность описывать в виде программы базовые взаимодействия с приложением на языках C#, VB.net и IronPython. Squish [4] – проприетарный инструмент автоматизации тестирования приложений с графическим интерфейсом для платформ Java AWT/Swing, SWT, Windows, Android и пр. В главе 3 подробно рассматриваются устройство, особенности и ограничения инструмента GUITAR

Особенности инструмента GUITAR
Полнота анализа
Направленная генерация тестовых сценариев
Результаты применения инструмента
Заключение

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.