Система автоматичного тестування програмного забезпечення засобами CI/CD
dc.contributor.advisor | Романкевич, Віталій Олексійович | |
dc.contributor.author | Іус, Іван Олександрович | |
dc.date.accessioned | 2024-12-23T09:37:45Z | |
dc.date.available | 2024-12-23T09:37:45Z | |
dc.date.issued | 2024 | |
dc.description.abstract | Актуальність теми зумовлена збільшенням конкуренції між компаніями на ринку розробки програмного забезпечення. Бізнес прагне до більш швидкої розробки та доставки продукту користувачам задля конкурентноспроможності. Внаслідок цього компанії приходять до рішення наймати окремих розробників, які будуть відповідати за інфраструктуру навколо програмного коду, що представляє основну логіку програмного забезпечення. Такі розробники займаються створенням інструментарію, що допоможе пришвидшити створення продукту, його тестування та доставку кінцевим користувачам. Впродовж розвитку окремого напрямку у інформаційних технологіях, спецалісти якого займаються покращенням надійності та продуктивності доставки програмного забезпечення користувачам, була розроблена низка практик та технологій. Деякі з них будуть застосовані у даній роботі. Об'єктом дослідження виступає інфраструктура, яка реалізує автоматизоване тестування розробленого програмного забезпечення, подальша ізоляція продукту у окреме середовище, яке забезпечує безпеку коду та можливість запуску на різних системах, розгортання продукту у середовищі, яке доступне користувачам задля можливості користування програмою, і моніторинг системи для відслідковування критичних навантажень, які можуть спричинити до некоректної роботи розробленого сервісу. Предмет дослідження: вивчення та вибір інструментів для реалізації автоматизованої системи, порівняння переваг та недоліків та огляд можливостей коректної взаємодії для досягнення найкращої ефективності для поставленої у роботі мети. Мета роботи: розробити середовище, яке сприятиме, перш за все, швидкому тестуванню та розгортанню програми, надійності при розгортанні продукту для користування. Також важливим критерієм є забезпечення можливості адаптіції інфраструктури до інших технологій, які використовуватимуться під час розробки, такі як: мови програмування, фреймворки, тощо. Наукова новизна полягає у наступному: запропонована система, що інтегрує у собі лекілька сервісів, які відповідають за багатосторонній підхід до роботи з готовим програмним забезпеченням. Практична цінність даної роботи полягає у тому, щоб представити систему, яка прискоює роботу із забезпечення стабільності роботи програми, яка отримується на виході від розробників. За рахунок автоматизації таких етапів, як: тестування, розміщення в ізольованому середовизі, розгортання та моніторинг, бізнес може заощадити кошти на фахівцях, які мали б власними силами забезпечувати кожний з перелічених процесів. Більш того, за рахунок швидкості, компанія стає конкурентноспроможною на ринку та отримує переваги у подальшому розвитку свого продукту. Апробація Основні положення і результати роботи були представлені та обговорювались на XVII науковій конференції магістрантів та аспірантів «Прикладна математика та комп’ютинг» ПМК-2024 (Київ, 25-27 листопада 2024 р.) та на Х Міжнародній молодіжній науково-практичній інтернет-конференції «Наука і молодь в ХХІ сторіччі» яка відбулась у Полтавському університеті економіки і торгівлі 28 листопада 2024 року. Структура та обсяг роботи Магістерська дисертація складається з вступу, 3-x розділів та висновків. Вступ описує комплекс робіт, який наразі є важливим на практиці для тестування, доставки та розгортання програмного забезпечення. Пояснюється доцільність проведення дослідження даної проблеми. Перший розділ: розгляд понять, що охоплюють сферу безперервної інтеграції та доставки, способів ізоляції програмного коду в окремому середовищі. Також описується доцільність моніторингу, розглядається можливість використання хмарних провайдерів при розгортанні програмного забезпечення. Другий розділ: розгляд інструментів, що найкраще підійдуть до реалізації поставлених задач для кожного з етапів. Третій розділ: створення програми, яка слугуватиме прикладом розробленого продукту для подальної демонстрації процесу автоматизованої контейнеризації та розгортання у хмарному середовищі.. Розробка середовища безперервної інтеграції та доставки із забезпеченням ізоліяції та розгортання програмного коду. Демонстрація результатів роботи створенох системи. Висновки: формулювання результатів проведених досліджень, надання висновків щодо вдалого поєднання технологій задля реалізації поставленої мети та опис можливих шляхів покращень швидкості та якості розробки інфраструктури у подальший час. Робота виконана на 85 аркушах, містить 3 додатки та посилання на список використаних літературних джерел з 5 найменувань. У роботі наведено 26 рисунків та 3 таблиці. | |
dc.description.abstractother | The relevance of the topic is due to the increasing competition between companies in the software development market. Businesses are striving for faster development and delivery of products to users to stay competitive. As a result, companies are deciding to hire individual developers who will be responsible for the infrastructure around the program code, which represents the core logic of the software. Such developers are engaged in creating tools that will help speed up product development, testing, and delivery to end users. A number of practices and technologies have been developed over the course of the development of a separate area of IT, whose specialists are engaged in improving the reliability and performance of software delivery to users. Some of them will be used in this paper. The object of the study is the infrastructure that implements automated testing of the developed software, further isolation of the product into a separate environment that ensures code security and the ability to run on different systems, deployment of the product in an environment that is accessible to users to use the application, and system monitoring to track critical loads that may cause the developed service to malfunction. The object of the study is the infrastructure that implements automated testing of the developed software, further isolation of the product into a separate environment that ensures code security and the ability to run on different systems, deployment of the product in an environment that is accessible to users to use the application, and system monitoring to track critical loads that may lead to incorrect operation of the developed service. Subject of research: studying and selecting tools for implementing an automated system, comparing advantages and disadvantages, and reviewing the possibilities of correct interaction to achieve the best efficiency for the purpose set in the work. Objective: to develop an environment that will facilitate, first of all, rapid testing and deployment of the application, reliability when deploying the product for use. Another important criterion is to ensure that the infrastructure can be adapted to other technologies that will be used during development, such as programming languages, frameworks, etc. The scientific novelty is the following: a system that integrates several services responsible for a multilateral approach to working with off-the-shelf software has been proposed. The practical value of this work is to present a system that accelerates the work on ensuring the stability of the application received from developers. By automating such stages as testing, isolation, deployment, and monitoring, a business can save money on specialists who would have to provide each of these processes on their own. Moreover, due to the speed, the company becomes competitive in the market and gains advantages in the further development of its product. Approval The main provisions and results of the work were presented and discussed at the XVII Scientific Conference of Undergraduate and Postgraduate Students ‘Applied Mathematics and Computer Science’ PMC-2024 (Kyiv, 25-27 November 2024) and at the X International Youth Scientific and Practical Internet Conference ‘Science and Youth in the XXI Century’ held at Poltava University of Economics and Trade on 28 November 2024. Structure and scope of work. The master's thesis consists of an introduction, 3 chapters and conclusions. The introduction describes the body of work that is currently important in practice for software testing, delivery and deployment. The expediency of conducting a study of this problem is explained. The first chapter: a review of the concepts covering the field of continuous integration and delivery, ways of isolating the software code in a separate environment. It also describes the feasibility of monitoring, compares the advantages and disadvantages of placing the tested product in a local environment and using cloud providers' tools. The second section describes the tools that are best suited to the implementation of the tasks set for each stage. The third section: creating an application that will serve as an example of the developed product for further demonstration of actions on it. Development of a continuous integration and delivery environment with isolation and deployment of the software code with the ability to monitor the system. Demonstration of the results of the created system. Conclusions: formulation of the results of the research, conclusions on the successful combination of technologies to achieve the goal and description of possible ways to improve the speed and quality of infrastructure development in the future. The work is executed on 85 pages, contains 3 appendices and references to a list of 5 references. The paper contains 26 figures and 3 tables. Keywords: CI/CD, Docker, DevOps, monitoring, Google Cloud Platform | |
dc.format.extent | 93 с. | |
dc.identifier.citation | Іус, І. О. Система автоматичного тестування програмного забезпечення засобами CI/CD : магістерська дис. : 123 Комп’ютерна інженерія / Іус Іван Олександрович. – Київ, 2024. – 93 с. | |
dc.identifier.uri | https://ela.kpi.ua/handle/123456789/71249 | |
dc.language.iso | uk | |
dc.publisher | КПІ ім. Ігоря Сікорського | |
dc.publisher.place | Київ | |
dc.subject | CI/CD | |
dc.subject | Docker | |
dc.subject | моніторинг | |
dc.subject | Google Cloud Platform | |
dc.subject | DevOps | |
dc.subject | monitoring | |
dc.subject.udc | 004.77 | |
dc.title | Система автоматичного тестування програмного забезпечення засобами CI/CD | |
dc.type | Master Thesis |
Файли
Контейнер файлів
1 - 1 з 1
Ескіз недоступний
- Назва:
- Ius_IO_KV31_mp_magistr_2024.docx
- Розмір:
- 4.45 MB
- Формат:
- Microsoft Word XML
Ліцензійна угода
1 - 1 з 1
Ескіз недоступний
- Назва:
- license.txt
- Розмір:
- 8.98 KB
- Формат:
- Item-specific license agreed upon to submission
- Опис: