Kurs Test Automation and Quality Assurance

S obzirom na to da je testiranje danas veoma važna komponenta razvoja programa, poznavanje test tehnologija je gotovo neizostavno u opisu posla jednog developera (Test-driven Development). Štaviše, na tržištu postoje profili koji isključivo obuhvataju ovu oblast (Quality Assurance). Upravo zbog toga ovaj kurs se bavi različitim načinima obezbeđivanja kvaliteta i njegove provere.

Tokom kursa se objašnjavaju koncepti testiranja pojedinačnih delova koda, aplikacija i kompletnih sistema. Predstavljaju se i detaljno objašnjavaju svi standardni tipovi testiranja trenutno zahtevani od strane tržišta. 

Kurs obuhvata nekoliko oblasti. U prvoj oblasti obrađuju se standardi za pravilno kodiranje, različita pravila kolaboracije i najbolja praksa kodiranja. U nastavku predstavljaju se različite varijante funkcionalnog testiranja, objašnjava koncept testiranja konceptom bele kutije, jediničnog testiranja, integracionog testiranja i drugih poznatih oblika funkcionalnog testiranja. 

U poslednjem delu obrađuje se automatizacija testiranja, kao i razne varijante nefunkcionalnog testiranja i pristupa testiranju konceptom crne kutije. Govori se o testovima performansi, korisničkim testovima i nezaobilaznim testovima stresa i opterećenja. Kroz kurs izoštravaju se znanja stečena u prethodnim kursevima i detaljno analiziraju tehnološke osobenosti različitih delova sistema. 

Predstavljaju se različiti alati i biblioteke za testiranje: Selenium – za automatsko testiranje web interfejsa i Apache JMeter – za različite testove performansi web aplikacija, unittest za jedinično testiranje koda i drugi.

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

Opis i ciljevi kursa Test Automation and Quality Assurance

Cilj kursa je obučavanje polaznika za pravilan pristup prilikom obezbeđivanja kvaliteta programa. Nakon kompletiranja ovog kursa i savladavanja njegovog gradiva, polaznik će moći da piše kod na pravilan način, vodeći računa o tome da ga svi članovi tima, kao i on sam, uvek mogu sa razumevanjem analizirati i modifikovati, kao i nastaviti rad na njemu. 

Polaznik se takođe upoznaje sa konceptima Test-driven developmenta, saznaje šta su to testovi jedinica, integracije i prihvatljivosti i kako da ih implementira, na koji način može verzionisati svoje programe i kakvi sve oblici objavljivanja programa postoje u ciklusu objavljivanja, šta je alfa verzija programa, šta beta, a šta release.

Po kompletiranom kursu, polaznik će biti upoznat sa konceptom automatskog testiranja i konceptima testiranja belom i crnom kutijom. Znaće da programira sopstvene testove u okviru Selenium okvira za automatsko testiranje, kao i da konfiguriše i koristi jedan od najpoznatijih programa otvorenog koda za testiranje – Apache JMeter.

Biće upoznat sa problematikom performansi web aplikacija i tehnikama testiranja opterećenja i stresa i sposoban za samostalno pronalaženje uzroka nedovoljnih performansi aplikacije.

Kurs Test Automation and Quality Assurance će vam odgovoriti na pitanja:

1. Zašto testiramo softver?

Sa razvojem programiranja kao oblasti i napredovanjem u domenu razvoja i kompleksnosti softverskih rešenja, došlo je do sve veće potrebe za proverom ispravnosti, kvaliteta i brzine rada proizvoda. Softver testiramo zato što veliki broj defekata u isporučenom softveru nosi velike gubitke. 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 prisutnih problema i to što više onih vrlo ozbiljnih, čije materijalne i bezbednosne posledice mogu biti katastrofalne. Zato je sa svih aspekata potrebno da se proces testiranja softvera učini što efikasnijim, a troškovi testiranja, ukoliko je moguće, što manjim. Ključno je jasno razdvojiti uzroke defekata, za koje se često koristi termin greška (fault ili defect), i sam neželjeni efekat posmatran u isporučenom sistemu, koji zovemo otkaz (failure). Testiranje softvera može otkriti otkaze, ali su greške ono što može i mora biti uklonjeno.

2. Š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. Ovaj stav se još popularno zove right the first time. Uz primenu ovih pristupa, rezultat aktivnosti testiranja softvera je programski kod visoke pouzdanosti, velike otpornosti (robustan) i stabilan, te potvrda da softver zadovoljava zahteve krajnjeg korisnika.

3. Š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 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. Funkcionalno testiranje daje odgovor na pitanje: „Da li ova funkcionalnost radi?”

Kurs Test Automation and Quality Assurance

4. Šta je testiranje jedinica?

Testiranje jedinica ili unit testing predstavlja proveru najmanjih celina koda koje se mogu testirati, nazvanih jedinice (engl. units). Testiranje jedinice je white box oriented tehnika testiranja, gde imamo uvid u kod i pravimo direktne promene u samoj strukturi programa. Jednom napisan test koristimo da u fazama daljeg razvoja možemo prekontrolisati da li jedinica i dalje pravilno radi. Ovo ujedno predstavlja i poseban pristup razvoju sofvera pod nazivom test driven development, gde se rad ne završava napisanom funkcijom programa već i svim testovima koji proveravaju njenu ispravnost.

U okviru Python programskog jezika, koji je jedan od najboljih jezika za softversko testiranje, imamo desetine biblioteka za unit testiranje; dva najpoznatija predstavnika su unittest integrisani modul za testiranje i PyTest framework.

5. Š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 koji podrazumeva 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 komponenata se testiraju zajedno. Strategija utiče ne samo na vremenski raspored integracije i redosled kodiranja već 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.

6. Šta je to JMeter?

Apache JMeter je alat za automatsko load i stress testiranje, pri čemu se ovim alatom može pratiti funkcionalno ponašanje programa i vršiti precizno merenje performansi programa, kao i database testiranje. Alat je kreiran pomoću programskog jezika Java i open source je softver. JMeter je platformski nezavisan, što znači da može raditi na više platformi – postoji podrška za Windows, macOS i Linux operativne sisteme. Ova Java aplikacija otvara mogućnost testiranja na velikom broju servera i protokola, preko svih web servera do SMTP i TCP protokola. Sa podrškom za sve operativne sisteme i širokom podrškom za web tehnologije, Apache JMeter je ubrzo postao industrijski standard u okviru load, stress i database testiranja.

7. Šta je to Selenium?

Selenium je softver za upravljanje automatizacijom korišćenja aplikacije – dakle, pruža nam način da simuliramo i automatizujemo kretanje korisnika kroz web aplikacije, što uključuje operacije poput klika na linkove, unosa nekih podataka, login i register akcije unutar samog pregledača i mnoge druge. Najveća prednost Selenium biblioteke je to što podržava veliki broj programskih jezika; trenutno postoji podrška za Javu, C#, PHP, Python, Perl, JavaScript i Ruby. Zahvaljujući podršci za najveće programske jezike, njegova primena je postala standard u ovoj oblasti. Za razliku od JMetera, gde najviše interakcije imamo sa samim interfejsom programa, usled prirode testiranja koje se obavlja u okviru Seleniuma, moramo koristiti neki od programskih jezika da bismo pisali testove. U slučaju Pythona, sve operacije navodimo u okviru jednog Python fajla koji pokreće Selenium biblioteku i WebDriver pregledača.

Plan i program predavanja:

1. Kvalitet i testiranje programa

  • Standardi u proizvodnji programa
  • Kvalitet programa
  • Testiranje programa

2. Osiguravanje kvaliteta programa

  • Pravila kodiranja
  • Testiranje jedinica
  • Testiranje integracije
  • Neprekidna isporuka
  • Automatsko objavljivanje
  • Programiranje u paru

3. Kontrola kvaliteta programa

  • Testiranje belom i crnom kutijom
  • Testovi prihvatljivosti i razboritosti
  • Testovi stresa i opterećenja

4. Automatsko testiranje

  • Upotreba alata Apache JMeter
  • Upotreba Selenium biblioteka i alata

Polaznici kursa Test Automation and Quality Assurance

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 je otvoren!

Da saznate sve o upisu, kliknite ovde