Диплом: Внедрение системы непрерывной интеграции для ООО «Руби Кейк»

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
18
автоматизировать тестирование веб-сайта: все элементы проекта
собираются воедино, написание и выполнение модульных тестов, тестов API
и функциональные тесты.
Управляющим воздействием в данном проекте считаю требования по
покрытию исходного кода тестами.
Входящей информаций считаю предварительную версию веб-сайта,
так как именно в ней необходимо найти ошибки в программном коде,
проверить всё ли работает так как должно и корректно ли отображаются веб-
страницы.
Выходными данными являются готовый веб-сайт или веб-приложение
и отчётность о прохождении тестов.
1.2.2. Определение места проектируемой задачи в комплексе задач
и её описание
Из всего комплекса задач будет исследоваться работа тестировщиков.
Тестировщики работают в графике 5/2. В обязанности тестировщиков
входит: написание тестов к исходному коду веб-сайта или веб-приложения.
Запуск модульных тестов и тестов API, проведение функциональных тестов.
Входными данными для тестирования веб-сайта или веь-приложения
являются:
Исходный код веб-сайта или веб-приложения.
Выходными данными в данном процессе являются:
Отчёт о прохождении или не прохождении тестов с описанием
ошибок.
Детализация процесса тестирования веб-сайта или веб-приложения
показана на рисунке №5.
19
Рисунок 5. Детализация процесса тестирования веб-сайта
или веб-приложения.
Процесс тестирования веб-сайта или веб-приложения:
Тестировщик копирует последнюю версию исходного кода из
репозитория к себе на компьютер, проверяет нужно ли ему подготовить
новые тесты. Если необходимо то он пишет новые тесты, если же нет то
запускает уже готовые. Если же необходимо проверить новую
функциональность веб-сайта, то тестировщик запускает локальный веб-
сервер с веб-сайтом и моделирует поведение пользователей. После
проведения всех тестов тестировщик пишет отчёт. Причиной выбора для
исследования именно этой задачи стало выявление отсутствия автоматизации
и рутинность процесса запуска тестов и подготовки отчёта.
Рассматриваемая задача определяет то, как сейчас выполняется
тестирование веб-сайта, написание отчёта и то, как это будет происходить.
Запуск тестов и написание отчётности происходит вручную тестировщиком.
После автоматизации данная задача будет выполняться автоматически
системой, работающей строго по определённому алгоритму, в соответствии с
20
регламентом. Для решения данной задачи планируется задействовать одного
человека — системного администратора.
Порядок работы задействованного специалиста:
На первом этапе системный администратор подбирает подходящую
архитектуру для внедрения системы автоматизации.
На втором этапе имеется чёткое представление о положительном
результате к которому приведёт внедрение новой информационной системы.
Техническое задание согласовывается с генеральным директором.
На третьем этапе происходит предварительное тестирование
функционала и только после этого происходит тестовое внедрение
информационной системы. В результате по завершению этой стадии
выявляются ошибки и вырабатываются новые требования или рекомендации
к внедряемой системе.
В завершающем четвёртом этапе происходит возврат на второй этап,
доработка функционала, исправление возникших ошибок в информационной
системе и проведение окончательного внедрения с уведомлением
руководства и всех пользователей системы.
1.2.3. Обоснование необходимости использования
вычислительной техники для решения задачи
Процесс тестирования веб-сайта или веб-приложения описан в схеме
документооборота, которая представлена на рисунке №6.
21
Рисунок 6. Документооборот тестирования веб-сайта или
веб-приложения.
При существующей реализации обмена данными между
тестировщиками и веб-программистами уже используется вычислительная
техника, так же она необходима и при внедрении системы автоматизации.
Необходимые технические средства на этапах тестирования веб-сайта
или веб-приложения, представленных на рисунке №5 представлены в
таблице №2.
Таблица 2.
Технические средства, используемые на этапах
тестирования веб-сайта или веб-приложения.
№ Этапа
Программные и технические
средства
А1, А2, А3, А4,
ПК тестировщика
А5
ПК тестировщика, Microsoft Outlook
Приведём соотношение существующих показателей затрат на
осуществление тестирования веб-сайта или веб-приложения:
Таблица 3.
Соотношение показателей затрат на тестирования веб-
сайта или веб-приложения.
22
Показатели
Существует
Планируется
достигнуть
Время от создания коммита до
получения отчёта
От 1 ч. до 8 ч.
От 10 мин. до 20 мин.
Отношение количества запусков
модульных тестов в день в ручную к
автоматическим.
30/0 шт.
0/30 шт.
Отношение количества запусков
тестов API в день в ручную к
автоматическим.
30/0 шт.
0/30 шт.
Отношение количества проведения
функциональных тестов в день в
ручную к автоматическим.
30/0 шт.
15/15 шт.
1.2.4. Анализ системы обеспечения информационной безопасности
и защиты информации
В компании «Руби Кейк» существует политика безопасности. Каждый
сотрудник при приёме на работу в компанию получает должностную
инструкцию, в которой чётко описаны его права и обязанности. При
соблюдении данной инструкции обеспечивается защита информации в
компании.
Каждому сотруднику присваивается логин и пароль для авторизации в
системе Active Directory, в рамках которой выдаётся доступ к определенным
ресурсам сети и доступ в интернет. Для данной учётной записи есть пароль, а
у пароля есть своя политика безопасности, которая определяет срок действия
пароля, а так же его криптографическую устойчивость. Для каждого
сотрудника количество входящего и исходящего трафика не ограничивается,
зато имеется список запрещённых к посещению веб-сайтов.
В компании разработана своя политика информационной
безопасности и защиты информации на программном и человеческом уровне,
аппаратных ограничений нет. Которая предотвращает утёчку информации из
компании.
23
Защита информации на компьютерах сотрудников в компании
реализована только с помощью программных средств. Защита персонального
компьютера от вирусов и нежелательного программного обеспечения
выполнена средствами антивирусного продукта Kaspersky Endpoint Security,
и управляется централизовано на сервере.
Защита информации в серверной комнате регулируется следующими
правилами:
1. Доступ в серверную комнату осуществляется только по
электронному пропуску.
2. Необходимо ставить свою подпись при получении и сдачи ключа
охраннику.
3. Журналируются сигналы датчиков разблокирования дверей.
Для предотвращения инсайдерских угроз в компании предприняты
следующие действия: за каждым сотрудником закреплён персональный
компьютер с монитором или ноутбук которые имеют идентификационный
код, за который он несёт материальную ответственность.
1.3. Анализ существующих разработок и выбор стратегии
автоматизации «КАК ДОЛЖНО БЫТЬ»
1.3.1. Анализ существующих разработок для автоматизации
задачи
В процессе создания программного продукта его кодовая база
продолжает расти и, если не будет должным образом организовано
управление исходным кодом, то в будущем это может стать виртуальной
головоломкой для разработчиков. Во времена, когда использовалась
каскадная модель разработки программного обеспечения, на выпуск первой
версии продукта могло потребоваться очень много времени, вплоть до
нескольких месяцев.
24
Переход на гибкие методы разработки помог сократить
продолжительность циклов программирования до недель и обеспечил частую
доставку обновлений программного продукта. Сегодня концепция
непрерывной интеграции обеспечивает обновления программ, в течение
нескольких дней или даже часов. Это результат частой отправки исходного
кода в общий репозиторий, так что разработчики могут легко отслеживать
возникающие ошибки с помощью автоматизированных тестов, а затем
исправлять их как можно скорее.
Стратегии непрерывной интеграции и развертывания – помогают
увеличить скорость разработки программного продукта и ускорить его
выпуск. В результате получается хорошо отлаженный и протестированный
программный продукт, который готов к использованию. Непрерывная
интеграция позволяет разработчикам интегрировать свои изменения в общую
кодовую базу предварительно протестировав их, что снижает шанс
возникновения ошибок конфликтов интеграции.
В быстром и успешном выполнения вышеперечисленных этапов
важную роль играют программные средства. Системы непрерывной
интеграции и непрерывной доставки помогают разработчикам сократить
время обратной связи при внесении изменений.
На сегодняшний день рынок систем непрерывной интеграции
наводнен множеством инструментов, поэтому выбор подходящего
инструмента может быть затруднителен.
Jenkins - это проект с открытым исходным кодом, который написан на
Java. Сборки подготовлены для операционных систем семейства Windows,
macOS и других Unix-подобных систем. Он бесплатен и поддерживается
сообществом разработчиков.
Jenkins, в основном разворачивают локально, но он может работать и
на облачных серверах. Присутствует интеграция с Docker и Kubernetes
25
которая позволяет использовать все преимущества контейнеров и выполнять
еще более частые выпуски.
Jenkins имеет интеграции практически с любой внешней программой,
используемой для разработки программного обеспечения. Это позволяет
использовать контейнерные технологии, такие как Docker и Kubernetes.
Для Jenkins доступна большая библиотека плагинов: Slack, Subversion,
Gradle, Git, Selenium, Redmine, Jira и т.д. Плагины Jenkins можно разделить
на пять областей: администрирование, управление исходным кодом,
управление сборкой, платформы и пользовательский интерфейс.
Из минусов можно выделить не интуитивный интерфейс и слабую
документацию.
TeamCity от компании JetBrains - это надежный и качественный CI-
сервер. Команды разработчиков часто выбирают TeamCity из-за большого
количества функций аутентификации, тестирования, развертывания и
поддержки Docker. Он кроссплатформенный, поддерживает такие
операционные системы как Linux, macOS и Windows. Так же работает на
Solaris, FreeBSD, IBM z / OS и HP-UX. TeamCity готов к работе сразу после
установки, и не требует никаких дополнительных настроек. Имеет ряд
уникальных функций, таких как мгновенные отзывы об удачных и
неудачных тестах, подробные хронологические отчеты, и повторное
использование настроек, при котором нет необходимости в дублировании
кода.
TeamCity предлагает бесплатную версию с полным доступом ко всем
функциям системы, но есть ограничения на 100 конфигураций и три агента
сборки. Добавление еще одного агента и 10 конфигураций сборки в
настоящее время стоит $299. Так же TeamCity предлагает пробную версию
облака на 60 дней, которая избавляет от необходимости производить
локальную установку.
26
Bamboo имеет меньше готовых опций чем перечисленные выше, но он
изначально интегрируется с другими продуктами компании Atlassian:
Confluence, Jira и Bitbucket. Имеет практически такую же большую
библиотеку плагинов, как и у Jenkins. Как и предыдущие инструменты,
Bamboo работает на операционных системах семейства macOS, Solaris, Linux
и Windows.
CircleCI - это гибкий инструмент непрерывной интеграции, который
обеспечивает параллельную работу до 16 потоков. Он уведомляет
пользователей, предоставляя только самую необходимую информацию по
электронной почте, Campfire, HipChat и другим каналам связи. CircleCI
обеспечивает простоту настройки и обслуживания системы.
CircleCI - это облачная система, которая также имеет предварительное
решение для запуска инструмента в центре обработки данных или частном
облаке с конфигурацией безопасности.
Система имеет простой пользовательский интерфейс. Поддерживает
выполнение всех типов тестов программного обеспечения, включая
мобильное и веб тестирование в контейнерных средах. Имеет функцию
отладки через протокол SSH.
CodeShip от компании CloudBees предлагает полный контроль над
оптимизацией и настройкой процессами непрерывной интеграции и
непрерывной доставки. С помощью кэширования, параллельной работы
агентов сборки и конвейеров CodeShip позволяет создавать мощные
конвейеры развертывания, которые позволяют легко тестировать и
развертывать программное обеспечение несколько раз в день.
CodeShip доступен в версиях Basic и Pro. CodeShip Basic поставляется
в нескольких
платных пакетах от $49 до $399 и предлагает предварительно
настроенную службу непрерывной интеграции с простым веб-интерфейсом,
27
но без поддержки Docker. Pro версия поддерживает Docker и имеет более
гибкие настройки. Parallel CI - специальная функция CodeShip которая
позволяет параллельно запускать тесты. CodeShip работает только с
операционными системами Windows и macOS, в то время как большинство
инструментов непрерывной интеграции также поддерживают iOS, Android и
Linux.
Основные характеристики представленных продуктов представлены в
таблице №4.
Таблица 4.
Сравнительный анализ систем непрерывной интеграции.
Характеристика Платформа
Jenkins 2.239
TeamCity
2020.1
Bamboo 7.0.4
Стоимость
Бесплатно
$299-1999
$10-800
Операционная система
Windows, Linux,
macOS
Windows,
Linux,
macOS,
Solaris,
FreeBSD
Windows, Linux,
macOS, Solaris
Хостинг
Собственный
хостинг облачный
хостинг
Собственный
хостинг
Собственный
хостинг облачный
хостинг
Поддержка контейнеров
Да
Да
Да
Плагины
5\5
4\5
2\5
Документация
Адекватная
Хорошая
Хорошая
Простота использования
Легко
Средне
Средне
Для использования в компании была выбрана платформа Jenkins так
как она бесплатна, гибка, имеет множество плагинов и интеграций с
программным обеспечением и есть возможность развернуть на локальном
сервере.

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Agile-методология в управлении проектами на примере ООО «Ресурсный центр «Академия КлассИнфо»
Aвтoмaтизaция пpoцecca вeдeния инфopмaциoннoй бaзы o дoлжнocтяx и вaкaнcияx c укaзaниeм тpeбoвaний к уpoвню знaний и нaвыкoв кaндидaтoв для гpуппы кaдpoв вoйcкoвoй чacти 3474»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
Cовершенствование управления рентабельности предприятия (на примере гуипп «бендерская типография «полиграфист»)
Event - менеджмент: реализация проекта (на примере ООО "АГРОПАК")