Детальная информация
Название | Разработка фреймворка для проверки отказоустойчивости ПО с помощью методов Fault Injection: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» |
---|---|
Авторы | Ролецкая Софья Николаевна |
Научный руководитель | Коликова Татьяна Всеволодовна |
Другие авторы | Коптев Д. А. |
Организация | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
Выходные сведения | Санкт-Петербург, 2025 |
Коллекция | Выпускные квалификационные работы ; Общая коллекция |
Тематика | хаос-инжиниринг ; fault injection ; отказоустойчивое тестирование ; программные сбои ; аппаратные сбои ; linux ; chaos engineering ; fault-tolerant testing ; software failures ; hardware failures |
Тип документа | Выпускная квалификационная работа бакалавра |
Тип файла | |
Язык | Русский |
Уровень высшего образования | Бакалавриат |
Код специальности ФГОС | 09.03.04 |
Группа специальностей ФГОС | 090000 - Информатика и вычислительная техника |
DOI | 10.18720/SPBPU/3/2025/vr/vr25-1528 |
Права доступа | Доступ по паролю из сети Интернет (чтение) |
Дополнительно | Новинка |
Ключ записи | ru\spstu\vkr\35845 |
Дата создания записи | 30.07.2025 |
Разрешенные действия
–
Действие 'Прочитать' будет доступно, если вы выполните вход в систему или будете работать с сайтом на компьютере в другой сети
Группа | Анонимные пользователи |
---|---|
Сеть | Интернет |
Данная работа посвящена исследованию и практической реализации методов инъекции отказов (fault injection) в информационных системах, направленных на проверку устойчивости программного обеспечения к различным сбоям. Основная цель — повышение эффективности процессов тестирования и устойчивости ПО к сбоям путём разработки и внедрения фреймворка, использующего методы Fault Injection. Задачи, которые решались в ходе исследования: 1. Анализ существующих решений и подходов к проведению отказоустойчивого тестирования, включая хаос-инжиниринг и fault injection. 2. Сравнение применяемых методов воздействия на систему по критериям схожести с реальными сбоями, глубины инъекции и применимости. 3. Разработка архитектуры модульного фреймворка, поддерживающего тестирование различных типов отказов. 4. Реализация обратимых и контролируемых инъекций, безопасных для тестовой среды. 5. Анализ эффективности фреймворка путём его внедрения в реальный продуктовый софт и проведения экспериментов по моделированию отказов. 6. Определение рекомендаций по интеграции фреймворка в процессы обеспечения качества ПО. В результате была реализована система, позволяющая воспроизводимо и гибко моделировать отказы различных программных и аппаратных компонентов. Разработанный фреймворк был интегрирован в инфраструктуру компании Yadro и применяется для тестирования отказоустойчивости компонентов программно-аппаратных комплексов, а также в процессе CI/CD для оценки надежности систем в условиях сбоя. Инструмент используется при разработке новых решений и помогает на ранних этапах выявлять уязвимости, связанные с обработкой ошибок и восстановлением после отказов. Работа выполнена с использованием программных средств низкоуровневой диагностики и управления устройствами Linux (udevadm, sysfs, debugfs, devlink, fio и др.), а также с применением средств математического анализа и логирования для сбора результатов. Проект реализован на языке Go с использованием стандартных библиотек.
The given work is devoted to the study and practical implementation of methods of fault injection in information systems aimed at testing software resilience to various failures. The main goal is to increase efficiency of testing processes and softwares resilience to failures by developing and implementing a framework using Fault Injection methods. The research sets the following goals: 1. Analysis of existing solutions and approaches to fault-tolerant testing, including chaos engineering and fault injection. 2. Comparison of applied methods of influencing the system according to the criteria of similarity with real failures, injection depth and applicability. 3. Development of a modular framework architecture that supports testing of various types of failures. 4. Implementation of reversible and controlled injections, safe for the test environment. 5. Analyzing the effectiveness of the framework by implementing it into real product software and conducting experiments on failure modeling. 6. Defining recommendations for integrating the framework into software quality assurance processes. As a result, a system that allows reproducible and flexible simulation of failures of various software and hardware components has been implemented. The developed framework was integrated into Yadros infrastructure and is used to test the fault tolerance of hardware and software components, as well as in the CI/CD process to assess system reliability in the event of failure. The tool is used in the development of new solutions and helps to identify vulnerabilities related to error handling and recovery from failures at early stages. The work was performed using software tools for low-level diagnostics and management of Linux devices (udevadm, sysfs, debugfs, devlink, fio, etc.), as well as using mathematical analysis and logging tools to collect the results. The project is implemented in the Go language using standard libraries.
Место доступа | Группа пользователей | Действие |
---|---|---|
Локальная сеть ИБК СПбПУ | Все |
|
Интернет | Авторизованные пользователи СПбПУ |
|
Интернет | Анонимные пользователи |
|
- ВВЕДЕНИЕ
- ГЛАВА 1. Анализ предметной области исследования
- 1.1 Методы Fault Injection
- 1.1.1 Существующие подходы к fault injection
- 1.1.2 Влияние тестирования методами Fault Injection на повышение отказоустойчивости программного обеспечения
- 1.1.3 Выводы по разделу
- 1.2 Анализ существующих технологических решений
- 1.2.1 Обзор инструментов ядра Linux для внедрения помех
- 1.2.2 Существующие решения для внедрения низкоуровневых помех
- 1.2.3 Существующие решения для внедрения высокоуровневых помех
- 1.2.4 Существующие комплексные решения для внедрения помех
- 1.2.5 Выводы по разделу
- 1.3 Сравнительный анализ существующих инструментов fault injection
- 1.3.1 Сравнительный анализ рассмотренных инструментов по выделенным критериям
- 1.3.2 Выводы по разделу
- 1.4 Выводы по главе
- 1.1 Методы Fault Injection
- ГЛАВА 2. Теоретическое предложение и обоснование архитектурных решений
- 2.1 Теоретическое предложение
- 2.2 Общий подход к архитектуре фреймворка
- 2.2 Архитектура и структура программного средства
- 2.2.1 Основные модули фреймворка
- 2.2.2 Интеграция с базой знаний и воспроизведение известных сбоев
- 2.2.3 Обеспечение расширяемости фреймворка
- 2.3 Выводы по главе
- ГЛАВА 3. Технологическое решение на основе теоретического предложения
- 3.1. Обоснование выбора технологического стека
- 3.2 Реализация внедрения помех
- 3.2.1 Реализация инъекций в коде приложений
- 3.2.2 Реализация инъекций в окружении Linux
- 3.3 Интеграция в тестовую среду
- 3.5 Выводы по главе
- ГЛАВА 4. Апробация и анализ полученных результатов
- 4.1 Тестирование
- 4.1.1 Покрытие кода
- 4.1.2 Статический анализ кода
- 4.1.3 Автоматизированное тестирование системы с использованием Jenkins
- 4.2 Методика апробации
- 4.3 Примеры использования фреймворка
- 4.3.1 Инъекции в программный код
- 4.3.2 Инъекции в окружение Linux
- 4.4 Система метрик
- 4.5 Сравнительный анализ
- 4.5.1 Методология сравнения
- 4.5.2 Сравнение подходов по определенным метрикам
- 4.5.2 Выводы по разделу
- 4.6 Рекомендации по интеграции фреймворка
- 4.7 Выводы по главе
- 4.1 Тестирование
- ЗАКЛЮЧЕНИЕ
- СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
- Приложение a. пример содержания конфигурационного файла
Количество обращений: 0
За последние 30 дней: 0