Kurs Software testing foundation

Bez softvera danas je nemoguće zamisliti savremeni svet. Softveri su postali nezamenljiva komponenta u donošenju poslovnih odluka, naučnim istraživanjima i radu mnogih inženjera. Kompanije koje se bave razvijanjem softvera najveće gubitke beleže upravo ukoliko taj isporučeni softver sadrži određene greške. 

Kako bi se tako nešto izbeglo, osnovni zadatak test inženjera jeste da što pre otkriju problem i da ga otklone pre nego što proizvod stigne do potrošača. Od test inženjera očekuje se da proces testiranja softvera učine što efikasnijim i uz što manje troškova obezbede normalan rad određenog programa. 

Softversko testiranje danas predstavlja aktivnost koja obuhvata kompletan proces razvoja i održavanja i kao takva čini veoma važan deo cele konstrukcije softvera. Testiranje softvera nije aktivnost koja počinje samo nakon kompletiranja faze kodiranja, već aktivnost koja se izvodi zbog evaluacije kvaliteta proizvoda i njegovog poboljšanja, putem identifikovanja defekata i problema. 

Planiranje testiranja trebalo bi počne sa ranom fazom procesa uzimanja zahteva. To znači da test planovi i procedure moraju biti sistematski i kontinualno razvijani i po potrebi redefinisani. Pravi stav prema kvalitetu je prevencija, mnogo je bolje izbeći probleme nego ih ispravljati. Zbog svega navedenog, jasno je zašto je softversko testiranje tesno povezano sa drugim oblastima softverskog inženjerstva i tako čini veoma važan deo gradiva za sve buduće stručnjake u pomenutom sektoru IT-ja.

Zanima vas ovaj kurs? Možete ga pohađati u okviru ovih ITAcademy programa: Software Engineering Program.

Opis i cilj kursa Softversko testiranje

Tokom ovog kursa softverskog testiranja, koji možete pohađati kao online kurs ili tradicionalno u učionici, a koji je deo pripadajućih programa, upoznaćete se sa svim oblastima softverskog testiranja prema IEEE Software Engineering Body of Knowledge. Tom prilikom steći ćete kompletnu sliku o vrstama i tipovima grešaka, kao i o jediničnom testiranju, integralnom testiranju i kriterijumima za završetak testiranja. 

Predavanja na kursu će se izvoditi u okviru dva modula na koje je podeljeno kompletno gradivo kako bi se polaznicima omogućilo što temeljnije sticanje novih veština. U početku kursa očekuju vas predavanja koja će vam pružiti osnovna znanja, dok vas kasnije, kako kurs bude odmicao, očekuju sve kompleksnije veštine. Prvi modul nosi naziv Uvod u testiranje softvera i sastoji se od sedam lekcija. Tokom njegovog pohađanja upoznaćete se sa pojmom i definicijom testiranja softvera, nivoima i tehnikama testiranja, vrstama grešaka i njihovim klasifikacijama i još mnogo toga. 

Tematska celina koja vas očekuje u drugom delu kursa baviće se planiranjem i procesom testiranja. Na predavanjima u okviru ovog modula imaćete priliku da obrađujete teme koje se tiču planiranja procesa testiranja softvera i njegovih principa. Ove lekcije takođe će vam pružiti potrebna znanja za ispitivanje koda, testiranje u fazi integracije i testiranje programskih komponenti. Zatim vas očekuju lekcije koje će vas pripremiti za izvršavanje testa slučajeva i njegovih karakteristika, a nakon toga i predavanja koja će vam pomoći da izmerite efikasnost i delotvornost testa.

Cilj ovog kursa je da svim polaznicima omogući razumevanje uloge i značaja softverskog testiranja u procesu razvoja softverskog sistema. Prolazeći kroz gradivo kursa upoznaćete se sa svim tehnikama testiranja, njegovim različitim fazama i preporučenim praksama. Po završetku kursa bićete spremni da prepoznate važnost pravovremenog planskog testiranja. 

Ovaj kurs moguće je pohađati isključivo u okviru programa softversko inženjerstvo, a znanja koja ćete steći tokom njegovog pohađanja predstavljaće vaš značajan korak ka budućoj profesiji softverskog inženjera.

Kurs Software Testing Foundation će vam odgovoriti na pitanja:

1. Šta predstavlja testiranje softvera?

Testiranje nije aktivnost koja počinje samo nakon kompletiranja faze kodiranja. Softversko testiranje se danas vidi kao aktivnost koja obuhvata ceo proces razvoja i održavanja i predstavlja važan deo kompletne konstrukcije softvera. Planiranje testiranja treba da počne sa ranom fazom procesa uzimanja zahteva; i test planovi i procedure moraju biti sistematski i kontinualno razvijani i po potrebi redefinisani. Pravi stav prema kvalitetu je prevencija, mnogo je bolje izbeći probleme nego ih ispravljati.

2. Zašto testiranje?

Zato što su veliki gubici kompanija koje razvijaju softver upravo zbog velikog broja defekata u isporučenom softveru. Prvenstveni zadatak test inženjera je otkrivanje problema u softveru sa ciljem da se oni otklone pre predaje softverskog proizvoda kupcu.

Od test inženjera se zahteva da otkrije što je moguće više problema i to što više onih vrlo ozbiljnih čije posledice mogu biti katastrofalne sa materijalnog i bezbednosnog aspekta. Zato je sa svih aspekata potrebno da se proces testiranja softvera učini što efikasnijim i uz što manje troškove ukoliko je to moguće.

Ključno je jasno razdvojiti uzroke defekata, za koje se često koristi termin greška (fault or defect), i neželjenog efekta posmatranog u isporučenom sistemu, koju zovemo otkaz (failure). Testiranje softvera može otkriti otkaze, ali su greške ono što može i mora biti uklonjeno.

3. Šta je softverska greška?

Grešku možemo posmatrati kroz nekoliko primera. Ako uzmemo npr. razliku od 10 metara između izračunatog rastojanja dve tačke i tačnog rastojanja, to predstavlja grešku koju možemo pripisati loše prikupljenim zahtevima, odnosno podacima. Isto tako pogrešno odabrana instrukcija ili pogrešan rezultat neke operacije u programu predstavlja grešku koja može dovesti do pogrešnih podataka u sistemu. 

Greškom se još može smatrati i pogrešan potez koji korisnik sistema može da napravi, nakon čega sistem proizvodi pogrešan rezultat.

Otkaz se može definisati i kao odstupanje ponašanja, misije softvera u odnosu na zahteve ili specifikaciju softverskog proizvoda. Otkaz softvera je evidentan događaj postojanja greške u softveru tj. posledica, manifestacija greške u softveru.

Kurs Software testing foundation

4. Ko može biti član test tima?

Učesnici u razvoju su, pre svega, zaduženi za funkcionalni test i za test performanse, ali kupac ima veliku ulogu u završnom testu prihvatljivosti i instalacionim testovima. Međutim, za sva testiranja timovi se sastavljaju iz obe ekipe. Često se programeri koji učestvuju u projektu ne uključuju u testiranje sistema. Previše im je bliska struktura implementacije i njene namere da bi bili u stanju da uoče razliku između implementacije i zahtevanih funkcija ili performanse.

Zbog toga je testerski tim često odvojen od osoblja koje radi na implementaciji. Bilo bi idealno da neki članovi testerskog tima imaju iskustva u testiranju. Obično su ovi „profesionalci" bivši analitičari, programeri i dizajneri koji sada posvećuju sve svoje vreme testiranju sistema. Oni poznaju specifikaciju sistema, ali takođe i metode i alate za testiranje.

5. Šta je funkcionalno testiranje?

Testiranje sistema počinje od funkcionalnog testa. U ovom prvom koraku se zanemaruje struktura sistema i usredsređuje se na funkcionalnost. Sada je pristup bliži zatvorenoj nego otvorenoj kutiji (Black i White Box testovi). Nije potrebno znati koja se komponenta izvršava, već šta bi sistem trebalo da radi. Prema tome, funkcionalni test se zasniva na funkcionalnim zahtevima sistema.

Svakoj funkciji se mogu pridružiti one komponente sistema koje je izvršavaju. Za neke funkcije to može da obuhvati i ceo sistem. Skup aktivnosti pridružen jednoj funkciji naziva se nit, pa se funkcionalno testiranje ponekad naziva i testiranje niti.

6. Šta je integraciono testiranje?

Kada se uverimo da pojedinačne komponente pravilno rade i zadovoljavaju naše ciljeve, ugrađujemo ih u sistem koji radi. Integracija se planira i koordinira na način da kada dođe do nepravilnosti unapred postoji orijentir u vezi sa uzrokom. Osim toga, redosled kojim se komponente testiraju utiče na izbor slučajeva i alata. Kod većih sistema su neke komponente možda još u fazi kodiranja, druge u fazi jediničnog testiranja, a neke grupe komponente se testiraju zajedno. Strategija utiče ne samo na vremenski raspored integracije i redosled kodiranja, već, takođe, i na troškove i sveobuhvatnost testiranja.

Sistem se ponovo posmatra kao hijerarhija komponenti, gde svaka komponenta pripada nekom sloju dizajna. Moguće je početi od vrha i napredovati nadole tokom testiranja, moguće je ići odozdo nagore ili kombinovati oba pristupa.

7. Zašto je bitno praviti izveštaje o greškama?

Proces izveštavanja o greškama i preduzetim akcijama takođe mora biti precizno definisan. Česti su slučajevi otežanog identifikovanja grešaka usled nerazumevanja zahteva, kao i nepotpunog procesiranja zahteva za ispravkama. Sa druge strane, sam proces prihvatanja zahteva i ispravljanja mora biti vođen po unapred definisanoj proceduri. Mora se dati precizan odgovor na pitanja ko prijavljuje grešku, kako je prijavljuje, kako je opisuje, kakvog je tipa, kakav je status greške, ko prihvata i dalje delegira zahtev itd...

Plan i program predavanja:

1. Uvod u testiranje softvera

  • Pojam i definicija testiranja softvera
  • Oblasti softverskog testiranja prema SWEBOK-u
  • Upoznavanje polaznika sa nivoima testiranja softvera
  • Koje sve tehnike testiranja postoje 
  • Vrste grešaka i njihova klasifikacija
  • Analiza tipova testiranja softvera i hardvera na svim nivoima sistema
  • Kako obezbediti potreban kvalitet procesa testiranja

2. Planiranje i proces testiranja

  • Planiranje procesa testiranja softvera
  • Principi testiranja softverskog sistema
  • Pitanja testiranja softvera. Upoznavanje polaznika sa tehnikama detekcije grešaka koje obezbeđuju smanjenje defekata u samom programskom kodu
  • Upoznavanje polaznika sa tehnikama ispitivanja koda
  • Testiranje u fazi integracije
  • Testiranje programskih komponenti
  • Karakteristike test slučaja
  • Kriterijumi za kraj testiranja
  • Specifikacija i ocena testiranja
  • Izveštavanje o greškama

Polaznici kursa Software testing foundation

3 načina da dobijete odlično plaćen posao

Spremili smo dokument koji otkriva tri pouzdana načina za dolazak na dobro plaćenu poziciju za stručan rad sa računarima. Preuzmite izveštaj ovde.

Da li ima mesta? Upisni rok 2024/25. je otvoren.

Da saznate sve o upisu, kliknite ovde.

Prijavite se