Rozwój i adaptacja środowiska do egzekucji automatycznych testów "Test as a Service”

licenciate
dc.abstract.enProject has been realized in cooperation of Jagiellonian University and R&D Nokia Network's. The main goal was a creation and adaption of an environment for automatic test execution of base transceiver station (BTS) software and eNB (hardware to connect mobile phones to network). BTS (and eNB) is an equipment that facilitates wireless communication between mobile phone and a digital telecommunications network. Before proceeding, it is important to define two key terms relevant to this paper: Base build is a completely checked, tested and stable software version, Knife means unchecked update or version. Technology Stack used in the project contains languages and frameworks, such as: Python, Bash, Groovy, Robot Framework, GitHub and Jenkins. Environment is based on Jenkins, which is an open source automation server. Three inner projects were created on Jenkins Pipeline to provide integral entity to run a variety of tests. They are responsible for running necessary smaller processes to prepare whole environment with variety of options for particular user needs. Node, which participates in data exchange between Jenkins host and eNB, is a virtual machine with configured software and hardware to run and handle tests.First project called "QT ON DEMAND" is responsible for running predefine tests to verify knife correctness. At the beginning a user has to submit a form with three required parameters, such as knife URL address from which particular update or version is downloaded, check boxes to choose a set of predefined tests, and node, which is used to configure and run tests on eNB. Moreover user can specify optional parameters to receive email with tests result, change eNB configuration and many more. After project starts, pipeline runs a lot of additional scripts to set up environment, download and install a proper version of knife and run all of chosen tests. Results are presented in a console and optionally sent to the given email address.The second inner project is called "KNIFE TESTING". It provides a possibility to run own tests to verify knife correctness. Initial form is similar to this described in previous project. However, instead of choosing tests from predefined set, user has to provide a path to tests, which are stored in special GitHub repository. After project starts, eNB and virtual machine are configured and then after knife and base build are downloaded and installed, tests are executed and their result is shown in a console.The last project CHECK TESTS has a slightly different role. It was created to ensure testers opportunity to verify if their tests work correctly by their execution on the base build. The idea is based on the fact, that we treat base build as a fully tested and stable version of software, so in case of any tests fails it is very likely that there is a mistake inside them. Initial form is similar to those described above. Instead of knife URL address user has to provide a base build id and path to the test. As an alternative parameter user can choose number of test repetition with option of aborting in case of any failure.Jenkins is a very complicated tool with a lot of options. Unfortunately, default graphical user interface is difficult to comprehend for unexperienced user. To achieve and provide a simplicity and readability authors created special custom theme. Instead of running stand alone web application default Jenkins Theme is overwritten with Simple Theme plugin. It allows users to use simplified graphical interface. For those, who are more experienced Jenkins users there is an option to deactivate custom theme and use the default one.To sum up, "Test as a service" environment provides possibility not only to verify software update correctness but also to check faultlessness of tests. "Test as a service" facilitates and supports work in cross-functional team, by providing developers with a possibility to test their updates without tester interference.pl
dc.abstract.plProjekt został zrealizowany w ramach współpracy Uniwersytetu Jagiellońskiego i R&D Nokia Network's. Jego głównym celem było dostarczenie programistom środowiska do uruchamiania automatycznych testów, co pozwoliłoby im samodzielnie sprawdzać poprawność pisanych przez nich uaktualnień oprogramowania stacji bazowych eNB. Urządzenia te odpowiedzialne są za łączenie telefonów komórkowych z cyfrową siecią telekomunikacyjną. Ważne pojęcia, używane w niniejszej pracy to: base build, czyli przetestowana, stabilna wersja oprogramowania stacji bazowej oraz knife, czyli jej uaktualnienie, które wymaga przetestowania. Głównymi technologiami zastosowanymi w projekcie są języki i frameworki, takie jak: Python, Bash, Groovy, Robot Framework, GitHub oraz Jenkins. Całe środowisko bazuje na narzędziu Jenkins, które pełni rolę rozszerzalnego serwera automatyzacji procesów. Za jego pomocą zostały utworzone trzy projekty Pipeline, z których każdy stanowi własne mini-środowisko oferujące inne możliwości. W wymianie danych, pomiędzy hostem, na którym uruchomiony jest Jenkins, a eNB, pośredniczy tzw. node, czyli w tym przypadku maszyna wirtualna, posiadająca odpowiednio skonfigurowane środowisko do do konfiguracji i wykonania testów eNB.Celem pierwszego projektu nazwanego QT ON DEMAND, jest wykonanie predefiniowanych quick testów, w celu weryfikacji poprawnego zachowania knife'a. Użytkownik rozpoczyna od wypełnienia formularza, który zawiera trzy obowiązkowe parametry: adres URL knife'a, z którego zostanie pobrana nowa wersja oprogramowania, zestaw quick testów, które mają zostać wykonane oraz identyfikator odpowiedniego node'a. Ponadto użytkownik, może zdefiniować opcjonalne parametry, takie jak: adres email, na który zostanie wysłany rezultat testów, dodatkowa konfiguracja eNB i wiele innych. Po uruchomieniu projektu zostaną zrealizowane skrypty, odpowiadające za konfiguracje środowiska, pobranie oraz instalację knife'a, a także wykonanie zaznaczonych testów i wyświetlenie ich rezultatów użytkownikowi. Kolejny projekt ma nazwę KNIFE TESTING. Umożliwia on wykonywanie własnych testów, innych niż te predefiniowane, w celu zweryfikowania poprawności knife'a. Dostępny formularz jest bardzo podobny do tego, który jest wykorzystywany w QT ON DEMAND, z tą różnicą, że zamiast gotowego zestawu testów, użytkownik musi podać ścieżkę do własnych testów, które znajdują się w wykorzystywanym przez projekt repozytorium. Po podaniu odpowiednich parametrów i wykonaniu testów użytkownik otrzymuje przejrzysty i czytelny rezultat.Ostatni projekt ma nazwę CHECK TESTS i pełni nieco inną rolę. Jego zadaniem jest zweryfikowanie poprawności testów, stworzonych przez testerów, poprzez wykonanie ich na stabilnej wersji oprogramowania. W przypadku niepowodzenia któregoś z testów, w większości przypadków, oznacza to wykrycie błędu w samym teście. W początkowym formularzu zamiast adresu URL knife'a, podawana jest nazwa base build'a na którym sprawdzane są testy, których rezultat zwracany jest użytkownikowi.Jenkins jest skomplikowanym narzędziem zapewniającym użytkownikowi wiele możliwości. Niestety, jego domyślny interfejs graficzny jest mało przejrzysty. W celu ułatwienia korzystania ze środowiska Test as a service powstał nowy graficzny interfejs, zastępujący domyślny wygląd Jenkins'a. Wykorzystując wtyczkę Simple Theme Plugin stworzono łatwy i wygodny interfejs, który nie tylko ułatwia korzystanie z Jenkinsa, ale i poprawia czytelność wyników samych testów. Ponadto, zaawansowani użytkownicy mają możliwość przełączenia się na domyślny wygląd w dowolnym momencie.Podsumowując, stworzone środowisko testowe ma na celu ułatwienie oraz przyspieszenie procesu testowania nowych wersji oprogramowania, a także umożliwienie weryfikacji poprawności stworzonych testów. Dzięki temu wspiera i ułatwia pracę w wielofunkcjonalnych zespołach deweloperskich poprzez zapewnienie programiście kompleksowych możliwości testowania, bez angażowania testerów oprogramowania.pl
dc.affiliationWydział Matematyki i Informatykipl
dc.areaobszar nauk ścisłychpl
dc.contributor.advisorMisztal, Krzysztofpl
dc.contributor.authorKołodziej, Andrzejpl
dc.contributor.departmentbycodeUJK/WMI2pl
dc.contributor.reviewerMisztal, Krzysztofpl
dc.contributor.reviewerTelega, Henryk - 132384 pl
dc.date.accessioned2020-07-27T14:36:40Z
dc.date.available2020-07-27T14:36:40Z
dc.date.submitted2019-07-05pl
dc.fieldofstudyinżynieria oprogramowaniapl
dc.identifier.apddiploma-122022-175589pl
dc.identifier.projectAPD / Opl
dc.identifier.urihttps://ruj.uj.edu.pl/xmlui/handle/item/226490
dc.languagepolpl
dc.subject.enPipeline, Jenkins, Groovy, eNB, BTS, testing environment, knife, base build, continuous integration, continuous delivery, Nokia, node, rollback, codeload, testing, commissioning, quick tests, tester, scripts, Nokia Network'spl
dc.subject.plPipeline, Jenkins, Groovy, eNB, BTS, środowisko testowe, knife, base build, ciągły rozwój, ciągła integracja, Nokia, node, rollback, codeload, testowanie oprogramowani, commissioning, quick testy, proces testowania, tester oprogramowania, skrypty, Nokia Network'spl
dc.titleRozwój i adaptacja środowiska do egzekucji automatycznych testów "Test as a Service”pl
dc.title.alternativeDevelopment and adaptation of the environment for an execution of automatic tests "Test as a Service"pl
dc.typelicenciatepl
dspace.entity.typePublication
dc.abstract.enpl
Project has been realized in cooperation of Jagiellonian University and R&D Nokia Network's. The main goal was a creation and adaption of an environment for automatic test execution of base transceiver station (BTS) software and eNB (hardware to connect mobile phones to network). BTS (and eNB) is an equipment that facilitates wireless communication between mobile phone and a digital telecommunications network. Before proceeding, it is important to define two key terms relevant to this paper: Base build is a completely checked, tested and stable software version, Knife means unchecked update or version. Technology Stack used in the project contains languages and frameworks, such as: Python, Bash, Groovy, Robot Framework, GitHub and Jenkins. Environment is based on Jenkins, which is an open source automation server. Three inner projects were created on Jenkins Pipeline to provide integral entity to run a variety of tests. They are responsible for running necessary smaller processes to prepare whole environment with variety of options for particular user needs. Node, which participates in data exchange between Jenkins host and eNB, is a virtual machine with configured software and hardware to run and handle tests.First project called "QT ON DEMAND" is responsible for running predefine tests to verify knife correctness. At the beginning a user has to submit a form with three required parameters, such as knife URL address from which particular update or version is downloaded, check boxes to choose a set of predefined tests, and node, which is used to configure and run tests on eNB. Moreover user can specify optional parameters to receive email with tests result, change eNB configuration and many more. After project starts, pipeline runs a lot of additional scripts to set up environment, download and install a proper version of knife and run all of chosen tests. Results are presented in a console and optionally sent to the given email address.The second inner project is called "KNIFE TESTING". It provides a possibility to run own tests to verify knife correctness. Initial form is similar to this described in previous project. However, instead of choosing tests from predefined set, user has to provide a path to tests, which are stored in special GitHub repository. After project starts, eNB and virtual machine are configured and then after knife and base build are downloaded and installed, tests are executed and their result is shown in a console.The last project CHECK TESTS has a slightly different role. It was created to ensure testers opportunity to verify if their tests work correctly by their execution on the base build. The idea is based on the fact, that we treat base build as a fully tested and stable version of software, so in case of any tests fails it is very likely that there is a mistake inside them. Initial form is similar to those described above. Instead of knife URL address user has to provide a base build id and path to the test. As an alternative parameter user can choose number of test repetition with option of aborting in case of any failure.Jenkins is a very complicated tool with a lot of options. Unfortunately, default graphical user interface is difficult to comprehend for unexperienced user. To achieve and provide a simplicity and readability authors created special custom theme. Instead of running stand alone web application default Jenkins Theme is overwritten with Simple Theme plugin. It allows users to use simplified graphical interface. For those, who are more experienced Jenkins users there is an option to deactivate custom theme and use the default one.To sum up, "Test as a service" environment provides possibility not only to verify software update correctness but also to check faultlessness of tests. "Test as a service" facilitates and supports work in cross-functional team, by providing developers with a possibility to test their updates without tester interference.
dc.abstract.plpl
Projekt został zrealizowany w ramach współpracy Uniwersytetu Jagiellońskiego i R&D Nokia Network's. Jego głównym celem było dostarczenie programistom środowiska do uruchamiania automatycznych testów, co pozwoliłoby im samodzielnie sprawdzać poprawność pisanych przez nich uaktualnień oprogramowania stacji bazowych eNB. Urządzenia te odpowiedzialne są za łączenie telefonów komórkowych z cyfrową siecią telekomunikacyjną. Ważne pojęcia, używane w niniejszej pracy to: base build, czyli przetestowana, stabilna wersja oprogramowania stacji bazowej oraz knife, czyli jej uaktualnienie, które wymaga przetestowania. Głównymi technologiami zastosowanymi w projekcie są języki i frameworki, takie jak: Python, Bash, Groovy, Robot Framework, GitHub oraz Jenkins. Całe środowisko bazuje na narzędziu Jenkins, które pełni rolę rozszerzalnego serwera automatyzacji procesów. Za jego pomocą zostały utworzone trzy projekty Pipeline, z których każdy stanowi własne mini-środowisko oferujące inne możliwości. W wymianie danych, pomiędzy hostem, na którym uruchomiony jest Jenkins, a eNB, pośredniczy tzw. node, czyli w tym przypadku maszyna wirtualna, posiadająca odpowiednio skonfigurowane środowisko do do konfiguracji i wykonania testów eNB.Celem pierwszego projektu nazwanego QT ON DEMAND, jest wykonanie predefiniowanych quick testów, w celu weryfikacji poprawnego zachowania knife'a. Użytkownik rozpoczyna od wypełnienia formularza, który zawiera trzy obowiązkowe parametry: adres URL knife'a, z którego zostanie pobrana nowa wersja oprogramowania, zestaw quick testów, które mają zostać wykonane oraz identyfikator odpowiedniego node'a. Ponadto użytkownik, może zdefiniować opcjonalne parametry, takie jak: adres email, na który zostanie wysłany rezultat testów, dodatkowa konfiguracja eNB i wiele innych. Po uruchomieniu projektu zostaną zrealizowane skrypty, odpowiadające za konfiguracje środowiska, pobranie oraz instalację knife'a, a także wykonanie zaznaczonych testów i wyświetlenie ich rezultatów użytkownikowi. Kolejny projekt ma nazwę KNIFE TESTING. Umożliwia on wykonywanie własnych testów, innych niż te predefiniowane, w celu zweryfikowania poprawności knife'a. Dostępny formularz jest bardzo podobny do tego, który jest wykorzystywany w QT ON DEMAND, z tą różnicą, że zamiast gotowego zestawu testów, użytkownik musi podać ścieżkę do własnych testów, które znajdują się w wykorzystywanym przez projekt repozytorium. Po podaniu odpowiednich parametrów i wykonaniu testów użytkownik otrzymuje przejrzysty i czytelny rezultat.Ostatni projekt ma nazwę CHECK TESTS i pełni nieco inną rolę. Jego zadaniem jest zweryfikowanie poprawności testów, stworzonych przez testerów, poprzez wykonanie ich na stabilnej wersji oprogramowania. W przypadku niepowodzenia któregoś z testów, w większości przypadków, oznacza to wykrycie błędu w samym teście. W początkowym formularzu zamiast adresu URL knife'a, podawana jest nazwa base build'a na którym sprawdzane są testy, których rezultat zwracany jest użytkownikowi.Jenkins jest skomplikowanym narzędziem zapewniającym użytkownikowi wiele możliwości. Niestety, jego domyślny interfejs graficzny jest mało przejrzysty. W celu ułatwienia korzystania ze środowiska Test as a service powstał nowy graficzny interfejs, zastępujący domyślny wygląd Jenkins'a. Wykorzystując wtyczkę Simple Theme Plugin stworzono łatwy i wygodny interfejs, który nie tylko ułatwia korzystanie z Jenkinsa, ale i poprawia czytelność wyników samych testów. Ponadto, zaawansowani użytkownicy mają możliwość przełączenia się na domyślny wygląd w dowolnym momencie.Podsumowując, stworzone środowisko testowe ma na celu ułatwienie oraz przyspieszenie procesu testowania nowych wersji oprogramowania, a także umożliwienie weryfikacji poprawności stworzonych testów. Dzięki temu wspiera i ułatwia pracę w wielofunkcjonalnych zespołach deweloperskich poprzez zapewnienie programiście kompleksowych możliwości testowania, bez angażowania testerów oprogramowania.
dc.affiliationpl
Wydział Matematyki i Informatyki
dc.areapl
obszar nauk ścisłych
dc.contributor.advisorpl
Misztal, Krzysztof
dc.contributor.authorpl
Kołodziej, Andrzej
dc.contributor.departmentbycodepl
UJK/WMI2
dc.contributor.reviewerpl
Misztal, Krzysztof
dc.contributor.reviewerpl
Telega, Henryk - 132384
dc.date.accessioned
2020-07-27T14:36:40Z
dc.date.available
2020-07-27T14:36:40Z
dc.date.submittedpl
2019-07-05
dc.fieldofstudypl
inżynieria oprogramowania
dc.identifier.apdpl
diploma-122022-175589
dc.identifier.projectpl
APD / O
dc.identifier.uri
https://ruj.uj.edu.pl/xmlui/handle/item/226490
dc.languagepl
pol
dc.subject.enpl
Pipeline, Jenkins, Groovy, eNB, BTS, testing environment, knife, base build, continuous integration, continuous delivery, Nokia, node, rollback, codeload, testing, commissioning, quick tests, tester, scripts, Nokia Network's
dc.subject.plpl
Pipeline, Jenkins, Groovy, eNB, BTS, środowisko testowe, knife, base build, ciągły rozwój, ciągła integracja, Nokia, node, rollback, codeload, testowanie oprogramowani, commissioning, quick testy, proces testowania, tester oprogramowania, skrypty, Nokia Network's
dc.titlepl
Rozwój i adaptacja środowiska do egzekucji automatycznych testów "Test as a Service”
dc.title.alternativepl
Development and adaptation of the environment for an execution of automatic tests "Test as a Service"
dc.typepl
licenciate
dspace.entity.type
Publication
Affiliations

* The migration of download and view statistics prior to the date of April 8, 2024 is in progress.

Views
7
Views per month
Views per city
Wroclaw
2
Dublin
1
Frankfurt am Main
1
Krakow
1
Skawina
1
Warsaw
1

No access

No Thumbnail Available