Osnovi testiranja softvera

Cilj i ishod predmeta

Student je osposobljen da razume značaj testiranja softvera i da kroz pisanje različitih vrsta testova doprinese kvalitetu softverskog projekta. Student će biti osposobljen da piše jedinične i integracione testove, kao i testove s kraja na kraj i testove performansi.

Teorijska nastava

Pojam testiranja softvera. Psihološki i ekonomski aspekti testiranja. Pregled tehnika testiranja crne i bele (staklene) kutije. Klase ekvivalencije, analiza graničnih vrednosti i graf uzroka i posledica. Primena navedenih tehnika testiranja na konkretnim primerima. Prednosti i nedostaci obe tehnike testiranja. Metrika pokrivenosti koda testovima. Inspekcija i revizija koda kao vrste testiranja. Pojam jediničnih testova. Izolovanost koda kod jediničnog testiranja. Različite vrste zamena – mokovi, stabovi. Razvoj softvera vođen testovima. Kvalitet jedininičnih testova. Integracioni testovi. Priprema okruženja za integraciono testiranje. Planiranje i konfigurisanje izvršavanja testova u sklopu izgradnje softvera, neprekidne integracije i isporuke softvera. Testiranje performansi. Testovi s kraja na kraj.

Praktična nastava

Pisanje jediničnih testova za zadate implementacije operacija u izabranom programskom jeziku korišćem odgovarajućeg xUnit okruženja. Ilustracija tehnika testiranja crne i bele kutije na praktičnim primerima testiranja implementiranih operacija u izabranom programskom jeziku. Pisanje testova sa različitim vrstama zamena (mokova, stabova). Pisanje API i integracionih testova u izabranom okruženju. Pisanje skripti za pripremu okruženja za integraciono testiranje. Pisanje testova s kraja na kraj u izabranim savramenim alatima za testiranje i ocenu kvaliteta softvera.