Введение 2
1. Основы тестирования программного обеспечения 3
1.1. Основные определения 3
1.2. Уровни и виды тестирования 8
1.3. Автоматизированное и ручное тестирование 15
1.4. Непрерывная интеграция 19
2. Введение в OpenStack 23
2.1. Компоненты OpenStack 24
2.2. Установка OpenStack 27
3. Обзор инструментов для автоматизации тестирования OpenStack ..29
3.1. Jenkins CI 29
3.2. Chef Compliance 30
3.3. Rally 35
3.4. PyLint 39
3.5. SonarQube 41
3.6. Tox 42
3.7. Tempest 43
4. Процесс автоматизации тестирования OpenStack 47
4.1. Построение процесса автоматизации тестирования OpenStack.. 47
4.2. Шаги при не успешности выполнения одного из этапов
тестирования 53
4.3. Инструментарий 54
5. Практическое руководство по настройке инструментов 55
5.1. Пример применения метода в Jenkins 55
5.2. Интеграция инструментов тестирования с Jenkins 61
Заключение 81
Список использованных источников 82
При выполнении работы был проведен небольшой опрос разработчиков OpenStack[1] на их интерес и актуальность создания подхода автоматизации тестирования облачной платформы OpenStack. Для проведения опроса был использован мессенджер, в котором в отдельной беседе сообщества OpenStack разработчики обсуждают интересные им темы облачной платформы.
Сегодня проблема ручного выполнения процессов тестирования является одной из самых актуальных, так как является одним из факторов препятствующий быстрому развертыванию ИТ решений из-за обнаружения многих ошибок на этапе внедрения.
Основной целью данной работы является увеличение качества и скорости разработки программного обеспечения на базе OpenStack, а также уменьшение времени внедрения ИТ продуктов.
Объектом исследования является разработка метода автоматизации процесса тестирования OpenStack.
Для достижения поставленной цели необходимо решить следующие задачи:
1. Анализ ручного и автоматизированного тестирования облачных сервисов и платформ
2. Обзор существующих работ и инструментов по автоматизации тестирования облачных сервисов и платформ
3. Автоматизация статистического анализа кода
4. Автоматизация функциональных и нагрузочных тестов
5. Автоматизация проверки инфраструктуры на соответствие требованиям для облачной платформы OpenStack
6. Создание подхода для автоматизации процесса тестирования OpenStack
В ходе работы над проектом были получены следующие результаты:
• Создано руководство для разработчиков по автоматизации тестирования OpenStack, в том числе руководство по настройке инструментов, в которое входят
о Разбор негативных случаев, которые могут появиться при выполнении тестирования;
о Схемы и диаграммы выполнения процесса автоматизации тестирования OpenStack.
• Разработано руководство по настройке инструментов для автоматизации тестирования OpenStack;
о Приведен пример выполнения данного процесса в рамках системы непрерывной интеграции Jenkins.
• Результаты работы опубликованы в статье «Качество и тестирование проекта: ведущие стратегии», 2015, Научные исследования: от теории к практике : материалы V Междунар. науч.-практ. конф. в г.Чебоксары: ЦНС «Интерактив плюс», входящий в список РИНЦ [45]. Также результаты опубликованы на ресурсе habrahabr.ru [46]