Аннотация
Введение
1. Теоретические основы обеспечения качества в разработке
программного обеспечения 9
1.1. Понятие программного обеспечения 9
1.2. Описание процесса разработки ПО 9
1.2.1. Каскадная модель разработки 9
1.2.2. V-образная модель разработки 13
1.2.3. Инетационная модель разработки 15
1.3. Управление качеством программного обеспечения 16
1.3.1. Понятие качества программного обеспечения 16
1.4. Тестирование программного обеспечения 20
1.4.1. Понятие тестирования программного обеспечения 20
1.4.2. Виды тестирования программного обеспечения 22
1.5. Анализ статических анализаторов 29
1.5.1. Статические анализаторы кода 29
1.5.2. Codacy 31
1.5.3. PVS Studio 32
1.5.4. SonarQube 33
2. Практическая часть 36
2.1. Информация об организации 36
2.2. Описание работы отдела DevOps 37
2.3. Внедрение SonarQube 39
2.3.1. Установка SonarQube 39
2.3.2. Интеграция SonarQube в процессы сборки 40
2.3.3. Формирование документации 40
2.4. Анализ результатов подключения SonarQube проектам,
разрабатываемых в отделе DevOps 41
2.4.1. Проект «Cross-PM» 42
2.4.2. Проект «vSphereTools» 46
2.4.3. Проект FuzzyClassificator 50
2.4.4. Проект «Youtrack Tools» 53
ЗАКЛЮЧЕНИЕ 58
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ 59
Приложение A Инструкция по установке SonarQube 61
Приложение Б SonarQube - Overview 64
Приложение В SonarQube - Measures 68
Приложение Д Пример заявки для подключения проекта к
SonarQube 70
Приложение Е «SonarQube - FAQ» 71
Приложение Ж Добавление проекта в SonarQube 72
Приложение И Работа с Quality Gate 75
Требования к качеству программных средств всё время повышаются. Для обеспечения надежности информационных систем процесс разработки программ, программных комплексов, сайтов и пр. должен находиться под жестким управленческим контролем. В настоящее время практически во всех организациях обеспечивается контроль важнейших характеристик, связанных с производством и использованием программных продуктов, таких как время, финансовые средства, ресурсы и т.п. Однако в большинстве случаев вне пределов сферы контроля оказывается наиболее важная характеристика программных продуктов, ради которой, собственно и осуществляются затраты времени, финансовых средств и ресурсов - это качество исходного кода программ. Контроль качества исходного кода программного обеспечения осуществляется различными способами, существует большое количество методов тестирования. Одним из наиболее распространенных и эффективных способов организации контроля качества исходного кода является подход, основанный на использовании статических анализаторов исходного кода.
Статический анализ исходного кода используется как превентивная мера контроля качества программного обеспечения, данный вид тестирования позволяет обнаруживать ошибки на этапе производства, что значительно сокращает временные затраты на их исправление. Анализ исходного кода может уберечь продукт от ошибок, которые не могут быть обнаружены другими методами тестирования, например, различные виды уязвимостей, позволяет поддерживать структурное качество продукта, для облегчения дальнейшей работы с продуктом.
Цель ВКР - внедрение статического анализатора кода в процессы разработки программного обеспечения организации.
Основные задачи:
1. Интегрировать SonarQube в процессы сборки.
2. Сформировать документацию для работы SonarQube.
3. Подключить проекты к сервису SonarQube.
4. Оценить качество исходного кода с использованием SonarQube.
Предметом исследования является процесс разработки программного обеспечения организации, а также исходный код продуктов предприятия, анализ исходного кода производится с применением статического анализатора.
Проблемы, затрагиваемые в ВКР:
1. Высокая сложность поддержки продуктов.
2. Дефекты, неулавливаемые другими методами тестирования.
3. Необходимость ускорения разработки продуктов.
Результаты:
1. Разработана документация для работы с статическим анализатором исходного кода
2. Статический анализатор внедрен в процессы разработки программного обеспечения организации
3. Проведён анализ продуктов организации разрабатываемых в рамках проекта DevOpsHQ.
Новизна: в процесс разработки программного обеспечения организации Positive Technologies впервые системно внедрён статический анализатор исходного кода, который позволяет отслеживать ключевые показатели сходного кода проектов.
В выпускной квалификационной работе была поставлена задача внедрения статического анализатора исходного кода в процессы разработки программного обеспечения ЗАО «Позитив Теклолоджиз». Был проведён анализ статических анализаторов кода, некоторые из них было рассмотрены более подробно, наиболее подходящим для организации был выбран SonarQube из-за бесплатной базовой версии, удобного интерфейса, быстрого развёртывания, большого количества поддерживаемых языков и
возможностей интеграции с большим числом сторонних приложений.
В результате проведенной работы была разработана документация для работы со статическим анализатором кода SonarQube. Статический анализатор SonarQube интегрирован в процесс разработки программного обеспечения в рамках проекта «DevOpsHQ» и «ISIM» и успешно используется командами проектов. В настоящее время производится дальнейшее развитие данного продукта в рамках организации.
С использованием SonarQube проведён анализ исходного кода в проекте «DevOpsHQ», и выданы соответствующие рекомендации по настройке SonarQube и поддержки проектов.
1. Winston W. Royce Managing the Development of Large Software Systems 1970
2. Fundamentals of the V-Modell [Электронный ресурс]. URL: http://www.v- modell. iabg.de/XThtmleng/index.html (дата обращения 21.05.2017).
3. Макконнелл Стив. Влияние итеративных подходов на предварительные условия / Стив Макконнелл // Совершенный код = Code Complete. - СПб.: Русская Редакция, Питер, 2005. - 896 с.
4. ISO/IEC 25000:2014 Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) - Guide to SQuaRE.
5. Ларри Холп, Пит Панде. Что такое «Шесть сигм»? Революционный метод управления качеством. - Альпина Паблишер. — 2006. — 158 с. — ISBN 59614-0383-1.
6. ГОСТ Р ИСО/МЭК 25010-2015 Информационные технологии (ИТ). Системная и программная инженерия. Требования и оценка качества систем и программного обеспечения (SQuaRE). Модели качества систем и программных продуктов.
7. Cem Kaner, «A Tutorial in Exploratory Testing», April 2008
8. Mohd. Ehmer Khan Different Approaches to White Box Testing Technique for Finding Errors. International Journal of Software Engineering and Its Applications. 5. 1 - 6 - 2011.
9. Глеб Смирнов - Мутационное тестирование, или о чём молчит Code Coverage Доклад на Java-конференции Joker 2013 Санкт-Петербург, 2013
10. Patton, Ron Software Testing (2nd ed.). Indianapolis: Sams Publishing. - 2005.
11. Laycock, G. T. The Theory and Practice of Specification Based Software Testing. Dept of Computer Science, Sheffield University. - 1993
12. Статический анализатор кода Codacy [Электронный ресурс] URL: https://www.codacy.com/ (дата обращения 21.05.2017)
13. Система контроля версий GitHub [Электронный ресурс] URL:
https://github.com (дата обращения 21.05.2017)
14. Статический анализатор кода PVS Stuio [Электройнный ресурс] URL: https://www.viva64.com/ru/pvs-studio/ (дата обращения 21.05.2017)
15. Статический анализатор кода SonarQube [Электронный ресурс] URL: https://www.sonarqube.org/ (дата обращения 21.05.2017)
16. Официальный сайт компании Positive Technologies [Электронный ресурс] URL: https://www.ptsecurity.com/ru-ru/ (дата обращения 21.05.2017)
... всего 26 источников