title: Fault injection implementation for testing concurrent C++ code
metadata.name: dc.contributor.advisor
metadata.value: Абрамов Андрей Викторович
metadata.lang: ru_RU
metadata.name: dc.contributor.advisor
metadata.value: Abramov Andrej Viktorovic
metadata.lang: en_GB
metadata.name: dc.contributor.author
metadata.value: Филипанова Мария Александровна
metadata.lang: ru_RU
metadata.name: dc.contributor.author
metadata.value: Filipanova Maria Aleksandrovna
metadata.lang: en_GB
metadata.name: dc.contributor.editor
metadata.value: Куликов Александр Сергеевич
metadata.lang: ru_RU
metadata.name: dc.contributor.editor
metadata.value: Kulikov Aleksandr Sergeevic
metadata.lang: en_GB
metadata.name: dc.date.accessioned
metadata.value: 2023-04-06T21:50:20Z
metadata.lang: -
metadata.name: dc.date.available
metadata.value: 2023-04-06T21:50:20Z
metadata.lang: -
metadata.name: dc.date.issued
metadata.value: 2022
metadata.name: dc.identifier.other
metadata.value: 069446
metadata.lang: en_GB
metadata.name: dc.identifier.uri
metadata.value: http://hdl.handle.net/11701/40265
metadata.lang: -
metadata.name: dc.description.abstract
metadata.value: Тестирование многопоточного кода является очень сложной задачей. Проблема заключается в том что ошибки проявляются только на небольшом количестве исполнений и на модульных тестах поведение планировщика получается детерминированным и повторение одного и того же теста дает одни и те же исполнения, не позволяя найти ошибку. 
  Целью данной работы было изучить внесение неисправностей как подход к тестированию многопоточных программ и реализовать подмодуль с реализацией внесения неисправностей, которую можно было бы внедрять в уже существующие проекты и которая поддерживала бы ограниченную воспроизводимость тестов.
  В данной работе описывается реализация написанного решения и результаты ее внедрения в библиотеку YACLib.
metadata.lang: ru_RU
metadata.name: dc.description.abstract
metadata.value: Testing concurrent code is very hard.  The problem is that bugs only show up on a small number of executions and in unit tests the scheduler behavior is deterministic and rerunning the same test gives the same executions which leads to dugs not being found when testing.
  The purpose of this paper was to explore fault injection as an approach to testing concurrent programs and to implement a sub-module with a fault injection implementation that could be adopted by existing projects and that would support limited test reproducibility.
  This paper describes the implementation of the written solution and the results of its adoption by the YACLib library.
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: C++
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: concurrent programming
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: C++
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: testing
metadata.lang: en_GB
metadata.name: dc.subject
metadata.value: fault injection
metadata.lang: en_GB
metadata.name: dc.title
metadata.value: Fault injection implementation for testing concurrent C++ code
metadata.lang: en_GB
metadata.name: dc.title.alternative
metadata.value: Реализация внесения неисправностей для тестирования многопоточного кода на C++
metadata.lang: ru_RU
resources.filename: st069446.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/40265/2/st069446.pdf
resources.format: Adobe PDF
resources.description: Article
resources.size: 365,66 kB
resources.filename: reviewSV_filipanova.pdf
resources.url: https://dspace.spbu.ru/bitstream/11701/40265/3/reviewSV_filipanova.pdf
resources.format: Adobe PDF
resources.description: ReviewSV
resources.size: 32,59 kB