Osnovne informacijemdi-information-variantIzvođači nastavemdi-account-groupNastavni plan i programmdi-clipboard-text-outlineModel praćenjamdi-human-male-boardIspitni rokovimdi-clipboard-check-outlineRasporedmdi-calendar-clockKonzultacijemdi-account-voice
Cilj predmeta je upoznati studenta sa osnovnim konceptima testiranja softvera, ulozi i poziciji aktivnosti testiranja u cjelokupnom procesu razvoja softvera, kao i različitim pristupima testiranju i korisnim alatima. S obzirom da je poseban fokus stavljen na automatizaciju testiranja, predmet obrađuje i temu kontinuirane integracije kao jednog od nužnih koraka u automatizaciji i ubrzavanju isporuke softvera.
Osnove testiranja softvera (1+0 sat) Definicija i osnovni pojmovi u testiranju. Ciljevi testiranja. Pozicija i uloga aktivnosti testiranja u cjelokupnom procesu razvoja softvera. Uloga testera, programera i korisnika u testiranju. Vrste testiranja. Faze testiranja. Piramida testiranja.
Proces testiranja softvera (1+0 sat) Planiranje i zakazivanje testiranja. Dizajniranje testnih slučajeva. Provođenje testiranja. Dokumentiranje testiranja. Metrike u testiranju. Automatizacija testiranja.
Jedinično testiranje (2+2 sat) Definicija i svrha jediničnog testa. Elementi i karakteristike „dobrog“ jediničnog testa. Okviri za jedinično testiranje.
Osnovne tehnike jediničnog testiranja (3+4 sat) Refaktoriranje kôda u svrhu lakšeg testiranja. Uklanjanje ovisnosti korištenjem zamjena (engl. stub). Testiranje stanja vs. testiranje interakcije. Mock objekti. Izolacijski okviri (engl. Isolation frameworks).
Razvoj softvera temeljen na testovima (engl. Test-driven development - TDD) (2+4 sat) Testiranje u kontekstu agilnog razvoja. Ideja i provedba razvoja temeljenog na testiranju. Uzorci u TDD-u.
Integracijsko i funkcionalno testiranje (2+2 sat) Svrha integracijskog testiranja. Odabir scenarija. Integracijsko vs jedinično testiranje. Provjera ispravnosti cjelokupnog sustava kroz funkcionalno testiranje. Dostupni alati za automatiziranje.
Automatiziranje integracije programskog koda kroz proces kontinuirane integracije (4+3 sat) Automatiziranje i ubrzavanje procesa isporuke softvera vođenim skupom praksi i alata pod nazivom DevOps. Korištenje testova i sustava za verzioniranje kako bi se automatiziralo integriranje promjena na programskom kôdu napravljenih od strane različitih programera.
Sadržaj seminara/vježbi
Ishodi učenja kolegija
Razumjeti osnovne koncepte i ulogu testiranja u cjelokupnom procesu razvoja softvera.
Primijeniti odgovarajuće tehnike testiranja u različitim fazama testiranja.
Planirati, dizajnirati, provesti i dokumentirati testiranje.
Primijeniti odgovarajuće alate, biblioteke i okvire u svrhu jednostavnije implementacije, organizacije i izvođenja testova.
Pimijeniti pristup kontinuirane integracije kako bi automatizirali integraciju promjena na programskom kôdu.
Ishodi učenja programa
Upravljati životnim ciklusom proizvoda, usluga, kao i životnim ciklusom razvoja informacijskog sustava
Predložiti i primijeniti temeljne metode razvoja informacijskih sustava u području modeliranja i izgradnje jednostavnih programskih rješenja
Predložiti i primijeniti metode razvoja programske potpore za jednostavne organizacijske procese na razini izvođenja
Odabrati i primijeniti metode iz područja programiranja, podatkovnih tehnologija i modeliranja podataka i procesa u problemskim domenama
Osnovna literatura
Lewis, W. E. (2016). Software testing and continuous quality improvement. Auerbach publications.
Beck, K (2002). Test driven development : By example, Addison-Wesley
Osherove, R. (2009). The art of unit testing: With examples in .NET, Manning
Dopunska literatura
Pisani materijali i videozapisi dostupni na sustavu za elektroničko učenje.
Slični kolegiji
Redoviti studentiIzvanredni studenti
izvanredni rok
Datum: 13.04.2026.
Vrijeme: 16:00
Opis: Na Fakultetu
U kalendaru ispod se nalaze konzultacije predmetnih nastavnika, no za detalje o konzultacijama možete provjeriti na profilu pojedinog predmetnog nastavnika.