Abstract

In this paper, we explore the possibilities of applying dynamic symbolic execution (or concolic testing) methods to applications with graphical user interfaces. Such applications inherently feature interactive user input processing and multithreaded execution. These features typically decrease the effectiveness of dynamic symbolic execution by increasing the volume of processed code not related to actual application functionality. We present a hybrid approach that combines commonly used GUI test automation methods based on GUI model excavation with dynamic symbolic execution methods to construct test cases for checking internal application logic. We have implemented this approach using two open-source tools - test automation framework GUITAR and Java byte-code static instrumentation framework Coffee Machine. GUI model extracted automatically by GUITAR tool is extended with symbolic traces relevant to application GUI event handlers. Our test generation module for GUITAR combines these symbolic traces into complex queries to be processed by SMT solver. The resulting test cases are valid within automatically extracted GUI structure model and allow to check different execution paths in GUI event handler code. We have checked our hybrid approach on a set of small open-source applications and identified several bugs caused by uncaught exceptions. The paper is concluded with an overview of current limitations and possible improvements of the hybrid approach.

Highlights

  • ВведениеВ настоящее время современные высокотехнологичные устройства становятся неотъемлемой частью повседневной жизни человека

  • Dynamic analysis of programs with graphical user interface based on symbolic execution

  • We explore the possibilities of applying dynamic symbolic execution methods to applications with graphical user interfaces

Read more

Summary

Введение

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

Обзор существующих решений
Автоматизация обхода путей выполнения на основе символьного исполнения
Особенности предлагаемого совмещенного метода анализа
Символьное исполнение программ с графическим пользовательским интерфейсом
Подход к генерации опасных входных значений
Оценка предложенного решения
Заключение

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.