title: Development of the dynamic symbolic execution virtual machine for Java and Kotlin programming languages
metadata.name: dc.contributor.advisor
metadata.value: Меньшутин Алексей Сергеевич
metadata.lang: ru_RU
metadata.name: dc.contributor.advisor
metadata.value: Mensutin Aleksej Sergeevic
metadata.lang: en_GB
metadata.name: dc.contributor.author
metadata.value: Садыков Рустам Ахметович
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Sadykov Rustam Ahmetovic
metadata.lang: en_GB
metadata.name: dc.contributor.editor
metadata.value: Шалымов Дмитрий Сергеевич
metadata.lang: ru_RU
metadata.name: dc.contributor.editor
metadata.value: Salymov Dmitrij Sergeevic
metadata.lang: en_GB
metadata.name: dc.date.accessioned
metadata.value: 2023-07-26T12:02:41Z
metadata.lang: -
metadata.name: dc.date.available
metadata.value: 2023-07-26T12:02:41Z
metadata.lang: -
metadata.name: dc.date.issued
metadata.value: 2023
metadata.name: dc.identifier.other
metadata.value: 075683
metadata.lang: en_GB
metadata.name: dc.identifier.uri
metadata.value: http://hdl.handle.net/11701/42040
metadata.lang: -
metadata.name: dc.description.abstract
metadata.value: Данный диплом представляет собой разработку и внедрение виртуальной машины динамического символьного исполнения для языков программирования Java и Kotlin. Данная виртуальная машина основана на уже разработанном символьном движке и прототипе подсистемы конкретного исполнения UnitTestBot, инструмента для автоматической генерации тестов, и интегрирована в него для улучшения эффективности и надежности генерации тестов. Процесс разработки включал проведение обзора существующих инструментов, основанных на динамическом символьной исполнении, изучение структуры и кодовой базы инструмента UnitTestBot, разработку и реализацию архитектуры подсистемы конкретного исполнения на базе прототипа, а также ее интеграцию для создания виртуальной машины для динамического символьного исполнения. Целью было определить, может ли виртуальная машина улучшить генерацию тестов путем увеличения покрытия кода и сокращения числа некорректных и ненадежных тестов. Результаты реализации показывают, что реализованный подход значительно сокращает число неправильных тестов, не уменьшая покрытие кода. Более того, в рамках данного диплома были получены новые возможности для разработки и реализации новых подсистем и алгоритмов для улучшения качества UnitTestBot, таких как модули фаззинга и минимизации. А также представлены результаты участия UnitTestBot c реализованной подсистемой конкретного исполнения в соревновании SBFT 2023, где инструмент показал высокие результаты.
metadata.lang: ru_RU
metadata.name: dc.description.abstract
metadata.value: This diploma thesis presents the development and implementation of the dynamic symbolic execution virtual machine for the Java and Kotlin programming languages. This virtual machine is based on the already developed symbolic engine and the prototype of the concrete execution subsystem of UnitTestBot, an automatic test generation tool, and is integrated into it to improve the efficiency and reliability of test generation. The development process involved reviewing existing tools based on dynamic symbolic execution, studying the structure and codebase of the UnitTestBot tool, developing and implementing the architecture of the concrete execution subsystem based on the prototype, and integrating it to create a virtual machine for dynamic symbolic execution. The aim was to determine whether the virtual machine could improve test generation by increasing code coverage and reducing the number of incorrect and unreliable tests. The implementation results show that the approach significantly reduces the number of incorrect tests without diminishing code coverage. Furthermore, this diploma thesis provides new capabilities for developing and implementing new subsystems and algorithms to enhance the quality of UnitTestBot, such as fuzzing and minimization modules. Additionally, the thesis presents the results of UnitTestBot's participation in the SBFT 2023 competition with the implemented concrete execution subsystem, where the tool demonstrated high performance.
metadata.lang: en_GB
metadata.name: dc.language.iso
metadata.value: ru
metadata.name: dc.subject
metadata.value: программный анализ
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: символьное исполнение
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: динамический анализ
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: генерация тестов
metadata.lang: ru_RU
metadata.name: dc.subject
metadata.value: program analysis
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: symbolic execution
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: dynamic analysis
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: test generation
metadata.lang: en_GB
metadata.name: dc.title
metadata.value: Development of the dynamic symbolic execution virtual machine for Java and Kotlin programming languages
metadata.lang: en_GB
metadata.name: dc.title.alternative
metadata.value: Разработка виртуальной машины динамического символьного исполнения для языков программирования Java и Kotlin
metadata.lang: ru_RU
resources.filename: st075683.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/42040/2/st075683.pdf
resources.format: Adobe PDF
resources.description: Article
resources.size: 510,76 kB
resources.filename: reviewSV_st075683_Sadykov_Rustam_Ahmetovic_(supervisor)(Ru).txt
resources.url: https://dspace.spbu.ru/bitstream/11701/42040/3/reviewSV_st075683_Sadykov_Rustam_Ahmetovic_%28supervisor%29%28Ru%29.txt
resources.format: Text
resources.description: ReviewSV
resources.size: 3,5 kB