Preview

Труды Института системного программирования РАН

Расширенный поиск

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

https://doi.org/10.15514/ISPRAS-2017-29(1)-10

Аннотация

Данная статья посвящена исследованию возможностей применения современных методов динамического анализа программ на основе символьного исполнения к программному обеспечению, предоставляющему графический пользовательский интерфейс. Отличительными особенностями подобных программ является интерактивная обработка данных и применение параллельных потоков команд. Данные особенности значительно усложняют эффективность применения подходов автоматического обхода путей выполнения на основе символьного исполнения. В рамках статьи предлагается проводить анализ программ, предоставляющих графический интерфейс, с помощью гибридного метода, включающего символьное исполнение и стандартные подходы к извлечению модели графического интерфейса для построения тестовых сценариев. В статье представлен обзор существующих программных средств, предоставляющих возможности анализа и тестирования программ, и выделены средства GUITAR и Coffee Machine, совмещение которых позволяет эффективно анализировать Java-программы с графическим пользовательским интерфейсом. Рассматривается схема внедрения модулей инструментации байт-кода системы Coffee Machine в рабочий цикл инструмента GUITAR. Модель структуры графического интерфейса, извлекаемая инструментом GUITAR, расширяется фрагментами предикатов пути, построенных с помощью символьного исполнения. Представлен алгоритм составления предикатов в сложные трассы, обрабатываемые инструментами проверки выполнимости булевых ограничений, позволяющий автоматически генерировать тестовые сценарии для обхода различных путей выполнения по коду функций обработки событий взаимодействия с элементами графического интерфейса. Представлены практические результаты применения совмещенного метода, позволившего обнаружить необработанные исключения в ряде проектов с открытым исходным кодом, и дана оценка полученных результатов. В заключении статьи даётся оценка эффективности предложенного метода и рассмотрены основные ограничения, избавление от которых представляется актуальным направлением дальнейших исследований.

Об авторах

С. П. Вартанов
Институт системного программирования РАН
Россия


А. Ю. Герасимов
Институт системного программирования РАН
Россия


М. К. Ермаков
Институт системного программирования РАН
Россия


Д. О. Куц
Институт системного программирования РАН
Россия


А. А. Новиков
Институт системного программирования РАН
Россия


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

1. Сайт Mobile Banking Rank 2015 (http://markswebb.ru/e-finance/internet-banking-rank-2015/)

2. Страница проекта Ranorex. http://www.ranorex.com/ [HTML]. Обращение от 10.10.2016

3. Abbot framework for automated testing of Java GUI components and programs. https://abbot.sourceforge.net. Обращение от 10.10.2016

4. Страница проекта Maveryx. https://sourceforge.net/projects/maveryx/ [HTML]. Обращение от 10.10.2016

5. Страница проекта Squish. https://www.froglogic.com/squish/ [HTML]. Обращение от 10.10.2016

6. Sikuli: using GUI screenshots for search automation. UIST’09 Proceedings of the 22nd annual ACM symposium on User Interface software and technology. Victoria, BC, Canada, October 04-07, 2009. pp. 183-192

7. Bao N. Nguyen, Bryan Robbins, Ishan Banerjee, Atif Memon. GUITAR: an innovative tool for automated testing of GUI-driven software. Automated software engineering, 2013, vol. 21(1), pp. 65-105.

8. Willem Visser, Corina S. Pāsāreanu, Sarfranz Khurshid. Test input generation with java PathFinder. ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis. Boston, Massachusetts, USA, July 11-14, 2004, pp. 97-107.

9. Gary Lindstrom, Peter C. Mahlitz, Willem Visser. Model checking real time java using java pathfinder. Proceeding ATVA’05 Proceedings of the Third international conference on Automated Technology for Verification and Analysis, Taipei, Taiwan, October 04-07, 2005, pp. 444-456.

10. Howar, Falk, Malte Isberner, Temesghen Kahsai, Zvonimir Rakamaric, and Vishwanath Raman. "JDART: A Dynamic Symbolic Analysis Framework." In Tools and Algorithms for the Construction and Analysis of Systems: 22nd International Conference, TACAS 2016, Held as Part of the European Joint Conferences on Theory and Practice of Software, ETAPS 2016, Eindhoven, The Netherlands, April 2-8, 2016, Proceedings, vol. 9636, Springer, 2016. p. 442.

11. Farzan A, Chen F, Meseguer J, Roşu G. Formal analysis of Java programs in JavaFAN. International Conference on Computer Aided Verification 2004 Jul 13. Springer Berlin Heidelberg. pp. 501-505

12. М.К. Ермаков, С.П. Вартанов. Применение статической инструментации байт-кода языка Java для динамического анализа программ. Труды Института системного программирования РАН, том 27, вып. 1, 2015 г., стр. 25-38. DOI: 10.15514/ISPRAS-2015-27(1)-2


Рецензия

Для цитирования:


Вартанов С.П., Герасимов А.Ю., Ермаков М.К., Куц Д.О., Новиков А.А. Динамический анализ приложений с графическим пользовательским интерфейсом на основе символьного исполнения. Труды Института системного программирования РАН. 2017;29(1):149-166. https://doi.org/10.15514/ISPRAS-2017-29(1)-10

For citation:


Vartanov S.P., Gerasimov A.Y., Ermakov M.K., Kutz D.O., Novikov A.A. Dynamic analysis of programs with graphical user interface based on symbolic execution. Proceedings of the Institute for System Programming of the RAS (Proceedings of ISP RAS). 2017;29(1):149-166. (In Russ.) https://doi.org/10.15514/ISPRAS-2017-29(1)-10



Creative Commons License
Контент доступен под лицензией Creative Commons Attribution 4.0 License.


ISSN 2079-8156 (Print)
ISSN 2220-6426 (Online)