|
Automatizovaná správa softwarových projektů
Dostál, Dominik ; Benedikt, Jan (oponent) ; Sysel, Petr (vedoucí práce)
V této práci jsou popsány a porovnány vybrané nástroje pro průběžnou integraci (continuous integration - CI) a průběžné nasazování (continuous deployment - CD). Dle připravené metodiky byly porovnány nástroje Jenkins, GitLab, TeamCity a Bamboo. Každý z těchto systému byl nainstalován na čistý systém Ubuntu 20.04 LTE, pak nakonfigurován a otestován na vybraném softwarovem projektu. Důraz byl kladen zejména na kompatibilitu s Linuxovými systémy a jazyky C/C++.
|
|
Testing Techniques in Continuous Integration System
Shpak, Yuliia ; Zápotočný, Matej (oponent) ; Sedlák, Petr (vedoucí práce)
With the evolution of information, communications, and technologies, modern industrial control systems (ICSs) face more with the necessity of automatization testing processes at the company to ensure the stability and safety of the system. For this reason, testing has become one of the most important parts of the software development lifecycle. In this master thesis we will consider the possibility of using existing testing methods and tools to ensure the achievement of software quality and security in Continuous Integration systems.
|
|
Efficient Techniques for Program Performance Analysis
Pavela, Jiří ; Fiedor, Jan (oponent) ; Rogalewicz, Adam (vedoucí práce)
In this work, we propose optimization techniques focused on the data collection process of program performance analysis and profiling within the Perun framework. We enhance Perun (and especially its Tracer module) by extending their architecture and implementing novel optimization techniques that allow Perun to scale well even for large projects and test scenarios. In particular, we focus on improving the data collection precision, scaling down the amount of injected instrumentation, limiting the time overhead of the collection and profiling processes, reducing the volume of raw performance data and the size of the resulting profile. To achieve such optimization, we utilized statistical methods, several static and dynamic analysis approaches (as well as their combination) and exploited the advanced features and capabilities of SystemTap and eBPF frameworks. Based on the evaluation performed on two selected projects and numerous experiment cases, we were able to conclude that we successfully achieved significant levels of optimization for nearly all of the identified metrics and criteria.
|
|
Server for Continuous Integration
Šajdík, Michal ; Fiedor, Tomáš (oponent) ; Lengál, Ondřej (vedoucí práce)
This work contains description about the following topics: what kind of technologies and principles are needed for creation of a continuous integration server, already existing solutions, why there is a need to create a new one, and how to integrate continuous integration server which was created during this work, based on the information mentioned in this work, to a working environment. This work also shows effects and some side effects of correct and incorrect configuration of the mentioned continuous integration server. Mentioned continuous integration server is also able to run on MS Windows 10 and Linux without need to adapt a configuration for a specific operating system.
|
| |
|
Využití automatizovaných regresních testů v systému kontinuální integrace webové aplikace
Kolpakova, Alexandra ; Buchalcevová, Alena (vedoucí práce) ; Veselka, Marcel (oponent)
Tato bakalářská práce se zaměřuje na zavedení automatizovaných regresních testů do praktiky kontinuální integrace při vývoji webové aplikace. Hlavním cílem bakalářské práce je návrh a implementace systému kontinuální integrace včetně testování za účelem nasazení webové aplikace na testovací prostředí. Dílčími cíli práce je přiblížení konceptu kontinuální integrace, průzkum praktik kontinuální integrace, charakteristika regresních testů a procesu automatizace testovacích případů, návrh systému pro použití kontinuální integrace a následně jeho praktické ověření. Teoretická část práce je zaměřena na seznámení se s praktikou kontinuální integrace, tedy s její charakteristikou a principy. Dále je popsán proces testování, převážně definice úrovní a druhů testování. Praktická část se zabývá návrhem systému pro využití kontinuální integrace při vývoji softwaru. Dále se zabývá zpracováním analýzy a návrhu testovacích případů zpracovaných podle funkcionality webové aplikace. Následně je navržený systém aplikován a jsou do něj implementovány automatizované regresní testy. Výstupem práce je zpracovaný návrh pro automatizované nasazování webové aplikace na testovací prostředí v praktice kontinuální integrace a použitelný zdroj obsahující postup pro zavedení regresních testů do procesu kontinuální integrace.
|
|
Využití virtualizace při přípravě infrastruktury pro testování webových aplikací
Nepejchalová, Radka ; Vasilenko, Alexandr (vedoucí práce) ; Rostislav , Rostislav (oponent)
Práce si klade za cíl přiblížit některé ze současně využívaných postupů či principů v rámci vývoje softwaru. V dnešní době je kladen velký důraz na efektivitu a kvalitu spolupráce týmů. Právě zde vzniká potřeba řídit se principy kontinuální integrace a to především u komplexnějších projektů, na kterých aktivně spolupracuje paralelně více vývojářů. Je zde větší potřeba integrovat přibývající nový kód a ujistit se, že je vzniklý celek funkční. Jedním ze základních kamenů kontinuální integrace je pravidelné testování - tedy odhalování problémů, které by mohly nastat při nasazení v produkčním prostředí. Takové testování však může být velice nákladné a ke snížení těchto nákladů vede právě využití virtualizace. Testování nových verzí aplikace je díky virtualizaci velice snadné. Každý vývojář si může na vlastním počítači vytvořit vlastní virtuální stanici a na ní nanečisto vyzkoušet běh aplikace. Část práce se věnuje právě těmto zmíněným postupům a logicky je propojuje. Praktická část se pak věnuje demonstraci řešení reálného problému.
|
|
Vývoj software pomocí Continuous Delivery
Molnár, Dávid ; Rychlý, Marek (oponent) ; Křivka, Zbyněk (vedoucí práce)
Tato práce se zabývá vysvětlením zásad Continuous Delivery. Mezi ně patří automatizace nasazování, časté a opakovatelné nasazení, verzování konfigurace aplikace a infrastruktury. Jeho pomocí je možné docílit, aby doručení výsledků vývojového týmu bylo co nejefektivnější, koncový zákazník získal objednaný produkt co nejrychleji. Je kladen důraz na platformu Windows, na automatizace, ale i na šifrování citlivých dat. Z práce dozvíme, jak vyřešit verzování schémat relačních databází a jak zajistit automatizované migrace dat. Součástí práce je i postup, jak zavést krok za krokem Continuous Delivery do vývojového týmu.
|
|
Systém pro kontinuální integraci projektu k-Wave
Nečas, Radek ; Kešner, Filip (oponent) ; Jaroš, Jiří (vedoucí práce)
Tato práce se zabývá zavedením metodik a nástrojů postupné integrace do reálného projektu k-Wave. Věnuji se především verzi psané v jazyce C/C++ s využitím knihovny OpenMP, která je určená pro běh na superpočítačích. Projekt, díky svým vlastnostem a potřebám, nezapadá mezi běžné projekty, do kterých se postupná integrace zavádí. Z toho důvodu musela být řada běžných postupů upravena a bylo nutné vymyslet některé vlastní. Práce popisuje kompletní sestavení prakticky použitelného řešení. Pokrývá jeho návrh, výběr potřebných nástrojů, zprovoznění běhového prostředí, konfiguraci a nastavení služeb, ze kterých se řešení skládá a softwarovou implementaci frameworku pro běh testů na superpočítačích včetně realizace některých regresních a unit testů. Realizace je postavena na službách Gitlab a Jenkins, které běží v oddělených Docker kontejnerech.
|
|
Rozšíření projektu Jenkins o dynamické workflow
Sviták, Jiří ; Burget, Radek (oponent) ; Letko, Zdeněk (vedoucí práce)
Cílem diplomové práce bylo implementovat zásuvný modul pro Jenkins, který umožní řízení spouštění Jenkins úloh pomocí podnikových procesů. Pro podnikové procesy byl použit projekt jBPM 5, který je založen na standardu Business Process Model and Notation 2.0. Pro demonstraci funkčnosti byly navrženy a úspěšně otestovány dva ukázkové podnikové procesy. Výsledkem práce je jBPM zásuvný modul pro Jenkins zveřejněný pod svobodnou licencí.
|