You are on page 1of 8

Универзитет у Београду

ФАКУЛТЕТ ОРГАНИЗАЦИОНИХ НАУКА


Катедра за софтверско инжењерство и вештачку интелигенцију

Семинарски рад из предмета Аутоматизација развоја софтвера

Тема: Тестирање и аутоматизација софтверског система


конвертора валуте

Професор: Др Милош Милић Студент: Немања Степић 3725/22

Београд 2023
Немања Степић 3725/22 Аутоматизација развоја
софтвера

Садржај
1. Вебални опис ..................................................................................................................................... 3
2. Тестирање метода јава апликације ................................................................................................... 4
3. Docker виртуализација....................................................................................................................... 6
4. Github акције ...................................................................................................................................... 7
5. Закључак ............................................................................................................................................ 8
Немања Степић 3725/22 Аутоматизација развоја
софтвера

1. Вебални опис
У оквиру предмета Аутоматизација развоја софтвера, развијен је софтверски систем Конвертор
валуте. Након тога, примењена је аутоматизација развоја тог софтверског система. Софтвер је
написан као Java апликација и подвргнут је тестирању помоћу JUnit тестова.

Ова апликација има функционалности које омогућавају кориснику да врши конверзију између
различитих валута. Корисник може унети износ у почетној валути и одабрати циљну валуту за
конверзију. Софтвер извршава одговарајућу рачунску операцију и приказује конвертовани износ.

Уз основне рачунске операције, апликација такође има додатну функционалност креирања,измене


и брисања валута које су унете у систем, као и приказ свих расположивих валута.

Како би овај софтвер аутоматизовали потребно је користити Docker контејнер. Docker се користи за
паковање софтвера у контејнере и креирање Docker слике која је доступна на DockerHub
платформи. Корисници могу преузети ту слику и користити је у свом окружењу, што им омогућава
да избегну инсталацију софтвера и конфигурацију окружења.

Ради лакше организације софтверског система и праћење његовог расвоја, користи се Github. Он
има улогу хостинг-сервиса која омогућава складиштење различитих верзија софтвера, рад више
инжењера на једном пројекту, контролу над верзијама, гранања ...

Како би извршили потпуну аутоматизацију, потребно је да Github и Docker спојимо, а то ћемо


извршити помоћу Github акција.
Немања Степић 3725/22 Аутоматизација развоја
софтвера

2. Тестирање метода јава апликације


Како би утврдили да ли методе које користи софтверски систем исправно раде, морамо извршити
аутоматско тестирање помоћу ЈUnit алата. Главна предност приликом тестирања главних метода је
уочавање грешака у раној фази развоја. На тај начин се штеди време тако што се грешка проналази
на почетку, док је систем у почетној фази, и избегава се избијање исте грешле у комплекснијем
систему.

Почетни списак валута:

Пример тестираниња помоћу Junit тестова:

1. Метода која проверава унету ознаку и проверава њено постојање у списку валута

2. Конвертовање унете суме динара у одабрану девизу


Немања Степић 3725/22 Аутоматизација развоја
софтвера

3. Конверотвање одабране девизе и њене суме у динаре

4. Заокруживање добијених вредности на једну децималу

Приликом извршења тестова, уочено је да програм има грешке које су првобитно занемарене:

• Корисник може да унесе негативан број као суму новца


• Корисник може да унесе нову девизу која има курс 0 (што би довело до дељења са нулом)

Захваљујући раним тестирањем, ове грешке су избегнуте у даљем развијању програма и


тестирање ових метода враћа позитиван резултат
Немања Степић 3725/22 Аутоматизација развоја
софтвера

3. Docker виртуализација
Како бисмо извршили ауотматизацију, потребно је софтверски систем да окачимо на
„DockerHub“. На овај начин ћемо моћи да покренемо софтвер без подешавања окружења
и омогућити приступ преко интернета (који ће нам бити користан приликом измена које
бутемо правили на Github-у).

Да би могли да радимо са Docker-ом, потребно је да инсталирамо апликацију на наш


рачунар, као и да додамо DockerFile у сам репозиторијум софтверског система. DockerFile
изгледа овако:

• Линија 1. дефинише који ће се ЈДК користити за покретање апликације


• Линија 2. дефинише назив директоријума који ће се користити
• Линија 3. дефинише локацију .jar фајла који ће се покретати у директоријуму
• Линија 4. покреће контејнер на јава програмском језику, а покреће
КонверторВалута.jar фајл

Након што креирамо локални Docker контејнер, потребно је исти да окачимо на


DockerHub.

DockerHub repo: https://hub.docker.com/repositories/nemanjas99


Немања Степић 3725/22 Аутоматизација развоја
софтвера

4. Github акције
Након постављања пројекта на Github, потребно је да дефинишемо његове акције које ће се
извршавати при свакој промени репозиторијума. Github акције се налазе у датотеци /workflow и
имају екстензију yml.

Свака акција има свој назив, дефинисане случајеве када ће се акције извшити и саме акције.

Из кода на слици можемо да видимо:

• Да акције требају да се изврше само уколико се код push-а на Github и то у грани “main”
• Акцију „Checkout repository“ која преузима код из директоријума и дозвољава његово
покретање током извршења акција
• Акцију „Login top DockerHub“ која се помоћу података устпоставља конекцију са
• Акције „Build Docker image“ и „Push Docker image“ које креирају контејнер нашег
репозиторијума и постављају ову верзију као најновију на DockerHub-у.
• Покретање скрипте која испистује статус наше акције након извршења

Github repo: https://github.com/Mihizz/Konv-Valuta


Немања Степић 3725/22 Аутоматизација развоја
софтвера

5. Закључак
Пројект је обухватао развој софтверског система Конвертор валуте и примену аутоматизације
развоја. Софтверски систем је имплементиран као Java апликација и подвргнут је тестирању
помоћу JUnit тестова. Систем омогућава конверзију између различитих валута, као и креирање,
измењивање и брисање валута.

За постигнуће пуне аутоматизације, коришћена је Docker виртуализација. Docker слика


софтверског система је креирана и доступна на DockerHub платформи, што омогућава
корисницима да је преузму и користе у свом окружењу без потребе за инсталацијом и
конфигурацијом софтвера.

У циљу организације и праћења развоја софтверског система, коришћен је Github. Различите


верзије софтвера су смештене на Github-у, што омогућава рад више инжењера на пројекту и
контролу над верзијама.

Github акције су дефинисане за автоматско извршавање при промени репозиторијума. Оне


укључују преузимање кода, изградњу Docker слике и постављање на DockerHub. Овај процес у
потпуности аутоматизује деплојмент софтверског система.

You might also like