Ogromne softverske kompanije, kao što je Google, uspevaju uprkos malim prioritetnim bugovima u svom softveru, ali manje kompanije i startupi nemaju taj luksuz.
Kupci očekuju da proizvodi izvrše ono što tvrde na stranici prodaje ili u dokumentaciji. Sa puno opcija tamo, ne razmišljaju dvaput o skakanju broda ako proizvod gubi svoje vreme i novac. Stoga, softver se podvrgava rigoroznim testovima pre izdavanja kako bi:
istaknite razlike između prvobitnog koncepta i konačnog izlaza
verifikujte da softver funkcioniše onako kako su projektanti planirali
validirati krajnji proizvod - proizvod mora zadovoljiti zahteve kupaca
procijeniti karakteristike i kvalitet
Ispitivanje prati strog plan. Ovo optimizuje upotrebu dragocenih resursa - vještine, vrijeme i novac, a pruži zainteresovanim stranama osnovne informacije za preuzimanje proizvoda. Cilj je olakšati dobro iskustvo krajnjeg korisnika kroz jak program za osiguranje kvaliteta . Sa toliko visokim ulogama, menadžeri QA su neki od najboljih u tehnici. Testiranje obično sledi ove korake:
Analiza potreba gdje rukovodioci navode plan za postavljanje odgovarajuće strategije testiranja.
Testovi počinju i rezultati se podvrgavaju analizi.
Svi nedostaci se ispravljaju, a softver ide kroz testiranje regresije - sistem za proveru da li program i dalje funkcioniše nakon modifikacija.
Izveštaj o zatvaranju testa tada objašnjava cijeli proces i ishodi.
Metode ispitivanja softvera
Evo različitih metoda koji se koriste za procjenu ponašanja i performansi proizvoda.
Ispitivanje crne kutije i bijele kutije su dvije osnovne metode.
- Testiranje crne kutije - Takođe se zove funkcionalno ili specifikacijsko testiranje, ovaj metod se fokusira na izlaz. Testeri se ne bave unutrašnjim mehanizmima. Oni samo proveravaju da li softver radi ono što bi trebalo. Poznavanje kodiranja nije neophodno, a testeri rade na nivou korisničkog interfejsa.
- Testiranje bijele kutije - Ovaj metod koristi znanje kodiranja kao deo test procedure. Kada proizvod propadne, testeri se podiže duboko u kod koji je neophodan kako bi se pronašao uzrok. Programeri softvera sami to rade jer utvrđuju kako proizvod treba da radi. Ispitivanje na osnovu strukture i staklene kutije su druga imena za ovaj metod.
- Statičko ispitivanje - Testeri ispitaju kod i softver dokumenata, ali ne izvršavaju program. Statički testovi počinju rano u razvoju proizvoda tokom procesa verifikacije.
- Dinamično testiranje - Softver se izvodi sa različitim ulazima, a testeri upoređuju izlaze sa očekivanim ponašanjem pomoću ove metode.
- GUI testiranje - ovo testira GUI karakteristike - oblikovanje teksta, tekstualna polja, dugmad, liste, izgled, boje, fontovi, veličine fontova i tako dalje. GUI testiranje je dugotrajno, a kompanije treće partije često preuzmu zadatak umesto programera.
Testovi nivoa
Ovo je neophodno za identifikaciju područja slabosti i preklapanja u svakoj fazi životnog ciklusa razvoja softvera.
- Jediničko testiranje - Programeri testiraju najosnovnije delove koda kao što su klase, interfejsi i funkcije / procedure. Oni znaju kako njihov kod treba da odgovori i može da izvrši prilagođavanja u zavisnosti od proizvodnje.
- Testiranje komponenti - Ostala imena su testiranje modula ili programa. Slično je jediničnom testiranju, ali sadrži viši nivo integracije. Moduli softvera testirani su za defekte da bi potvrdili njihovu pojedinačnu funkciju.
- Testiranje integracije - Ovo identifikuje greške kada su moduli integrisani. Različiti testovi integracije su odozdo prema gore, dole i funkcionalno inkrementalno.
- Ispitivanje sistema - Komponente projekta se testiraju u celini u različitim okruženjima sa ovom metodom. Ispada pod metoda crne kutije i jedan je od finalnih testova u procesu. Određuje da li sistem funkcioniše kako bi zadovoljio poslovne potrebe i potrebe korisnika.
- Alpha testiranje - Interno osoblje testira softver na web lokaciji programera u simuliranom ili stvarnom okruženju. Nakon toga, programeri ispravljaju bugove i druga pitanja.
- Beta testiranje - Poznato i kao testiranje na terenu, klijent testira proizvod na svojoj web lokaciji u stvarnim uslovima. Klijent može da ponudi grupi krajnjih korisnika mogućnost testiranja softvera putem prerelease ili beta verzija. Povratna informacija o mogućim poboljšanjima se zatim šalje investitoru.
- Testiranje prihvatljivosti - Takođe, pod okriljem testiranja crne kutije, klijent testira softver kako bi saznao da li je programer kreirao program prema željenim specifikacijama.
Tipovi testova
Ovi softverski testovi se fokusiraju na specifične ciljeve.
- Testiranje instalacije - Inženjer softvera za testiranje i menadžer konfiguracije provode ovaj test kako bi osigurali da krajnji korisnik može instalirati i pokrenuti program. Pokriva oblasti kao što su instalacione datoteke, lokacije instalacije i administrativne povlastice.
- Testiranje razvoja - Ovo sprovodi niz sinhronizovanih strategija za otkrivanje i sprečavanje defekata. Uključuje statičku analizu koda, preglede peer kodova, sledljivost i analizu metrika. Cilj je smanjiti rizik i uštedjeti troškove.
- Testiranje upotrebljivosti - Iskustvo korisnika je pod kontrolom ovog testa. Mjeri koliko je GUI dizajniran i njegova jednostavna upotreba. Test provjerava tačnost i efikasnost funkcija i emocionalne odgovore ispitanika.
- Testiranje senzitivnosti - Ovo pokazuje da li je softver vrijedan vremena i troškova za nastavak daljeg testiranja. Previše mana i agresivniji testovi ne slijede.
- Ispitivanje dima - Ispitivanje dima otkriva osnovne nedostatke koji su dovoljno ozbiljni da spreče puštanje u rad. Kada se ovo izvede na novoj gradnji, naziva se test za proveru izgradnje.
- Testiranje regresije - Kada se sistem podvrgne modifikaciji, testiranje regresije prati neočekivano ponašanje. On ukazuje na štetne efekte na module ili komponente.
- Destruktivno testiranje - Testeri unosuju abnormalne unose i razaznaju sposobnost softvera za upravljanje neočekivanim ulazom. Ovo pokazuje programerima koliko je robustan program u upravljanju greškama.
- Testiranje oporavka - Kada hardver ili druge funkcije ne uspevaju, ovaj test pokazuje koliko dobro se softver može oporaviti i nastaviti sa radom.
- Automatsko testiranje - ovo vrši funkcije koje se teško primenjuju ručno. On koristi specifični softver za pokretanje testova i za pružanje podataka o stvarnim i očekivanim ishodima.
- Testiranje kompatibilnosti - Softver mora da radi u različitim računarskim okruženjima, tako da se proverava kompatibilnost sa različitim sistemima. Na primer, da li softver radi sa različitim operativnim sistemima i veb pregledačima?
- Ispitivanje performansi - Ovo je dubinski test koji ispituje performanse softvera u različitim scenarijima. Prikupljaju se informacije o odzivnosti, stabilnosti, raspodeli resursa i brzini. Štaviše, u ovom procesu učestvuju pod-testovi kao što su zapremina, kapacitet i ispitivanje na klipu.
- Sigurnosno testiranje - Ovo meri sposobnost softvera da zaštiti sigurnost korisnika. Ovo podrazumeva funkcije autorizacije, autentičnost, povjerljivost, integritet, dostupnost i ne-odricanje.
- Testiranje pristupačnosti - Ovo nije isto kao i testiranje upotrebljivosti. Ovo određuje stepen do kojeg korisnici različitih sposobnosti - učenje i fizička ograničenja uključeni, mogu koristiti softver.
- Testiranje internacionalizacije i lokalizacije - Rezultati pokazuju kako se softver može prilagoditi različitim jezicima i regionalnim zahtevima. Ovo uključuje dodavanje komponenti za određene lokacije i prevođenje teksta.
Testiranje softvera je suštinski deo dovođenja proizvoda na tržište. I bez testera, širok opseg dostupnog softvera ne bi postojao. Postanite sertifikovani softverski tester kroz organizacije kao što su BCS, Chartered Institute for IT, ISTQB® (International Board for Qualification Testing Board) i ASQ (ranije Američko društvo za kvalitet).