Ogromne softverske tvrtke poput Googlea uspijevaju usprkos malim prioritetnim bugovima u svom softveru, ali manje tvrtke i startupovi nemaju takav luksuz.
Kupci očekuju da proizvodi proizvode ono što tvrde na prodajnoj stranici ili u dokumentaciji. S toliko opcija vani, oni neće razmišljati dvaput o skakanje broda ako proizvod troši svoje vrijeme i novac. Stoga softver podvrgava strogim testovima prije objavljivanja kako bi se:
istaknuti razlike između izvornog koncepta i konačnog rezultata
provjerite je li softver funkcionirao na način na koji su dizajneri planirali
provjeriti krajnji proizvod - proizvod mora zadovoljiti zahtjeve kupaca
procijeniti značajke i kvalitetu
Testiranje slijedi strogi nacrt. Time se optimizira upotreba vrijednih resursa - vještina, vremena i novca, pružajući dionicima bitne informacije kako bi se proizvod preusmjerio. Cilj je olakšati dobar doživljaj krajnjeg korisnika kroz snažan program osiguranja kvalitete . S udjelima tako visokim, QA menadžeri su neki od najviših zaposlenika u tehnici. Testiranje obično slijedi ove korake:
Analiza potreba gdje menadžeri ocrtavaju plan za postavljanje odgovarajuće test strategije.
Testovi počinju i rezultati se analiziraju.
Bilo koji nedostatak ispravljen je, a softver prolazi kroz regresijsko ispitivanje - sustav za provjeru programa i dalje radi nakon izmjena.
Izvješće o zatvaranju pokusa detaljno prikazuje cijeli proces i ishode.
Metode testiranja softvera
Evo različitih metoda koje se koriste za ocjenjivanje ponašanja i performansi proizvoda.
Testiranje crne kutije i bijele kutije dvije su temeljne metode.
- Testiranje crne kutije - Zove se i funkcionalno ili ispitivanje temeljeno na specifikacijama, ova metoda se usredotočuje na izlaz. Testeri se ne bave unutarnjim mehanizmima. Oni samo provjeravaju da softver radi ono što treba. Poznavanje kodiranja nije potrebno, a testeri rade na razini korisničkog sučelja.
- Testiranje bijele kutije - Ova metoda koristi znanje o kodiranju kao dio postupka ispitivanja. Kada proizvod ne uspije, testeri idu duboko u kôd ako je potrebno kako bi pronašli uzrok. Softvereri to rade sami pošto određuju način na koji proizvod treba raditi. Testiranje na temelju strukture i staklenu kutiju su druga imena za ovu metodu.
- Statičko testiranje - Testeri pregledavaju kodove i dokumentaciju softvera, ali ne izvršavaju program. Statički testovi počinju rano u razvoju proizvoda tijekom postupka provjere.
- Dinamičko testiranje - Softver se izvodi s različitim ulazima, a ispitivači uspoređuju rezultate s očekivanim ponašanjem ovom metodom.
- GUI testiranje - Ovo testiranje značajki GUI - oblikovanje teksta, tekstualnih okvira, gumba, popisa, izgleda, boja, fontova, veličina fonta i tako dalje. Testiranje GUI-ja traži puno vremena, a treće strane tvrtke često preuzme zadatak umjesto programera.
Razine ispitivanja
To su nužni za prepoznavanje područja slabosti i preklapanja u svakoj fazi životnog ciklusa razvoja softvera.
- Testiranje jedinica - Programeri provjeravaju najosnovnije dijelove kodnih klasa, sučelja i funkcija / postupaka. Oni znaju kako bi njihov kod trebao reagirati i može prilagoditi ovisno o izlazu.
- Ispitivanje komponenata - Ostala imena su ispitivanje modula ili programa. Slično je testiranju jedinica, ali sadrži višu razinu integracije. Moduli softvera testirani su na nedostatke kako bi provjerili njihovu individualnu funkciju.
- Testiranje integracije - Ovo identificira pogreške prilikom integriranja modula. Različiti testovi integracije su odozdo, gore dolje i funkcionalni inkrementalni.
- Testiranje sustava - Komponente projekta testirane su u cjelini u različitim okruženjima s ovom metodom. Pada pod crnu kutiju i jedan je od konačnih testova u tom procesu. Određuje funkcionira li sustav kako bi trebao odgovarati poslovnim i korisničkim potrebama.
- Alfa testiranje - Interno osoblje testira softver na mjestu razvojnog programera u simuliranom ili stvarnom okruženju. Nakon toga, programeri ispravljaju greške i druge probleme.
- Beta testiranje - poznato kao ispitivanje na terenu, klijent ispituje proizvod na vlastitoj web stranici u stvarnim uvjetima. Klijent može ponuditi grupi krajnjih korisnika priliku za testiranje softvera putem prerelease ili beta verzije. Povratne informacije o mogućim poboljšanjima šalju se razvojnom programeru.
- Testiranje prihvaćanja - Isto tako, u okviru testiranja crne kutije, klijent testizira softver kako bi utvrdio je li programer izradio program željenim specifikacijama.
Vrste ispitivanja
Ovi testovi softvera usredotočeni su na specifične ciljeve.
- Testiranje instalacije - Softver test inženjer i upravitelj konfiguracije provode ovaj test kako bi krajnji korisnik mogao instalirati i pokrenuti program. Obuhvaća područja poput instalacijskih datoteka, mjesta instalacije i administrativnih privilegija.
- Testiranje razvoja - Ovo provodi niz sinkroniziranih strategija za otkrivanje i sprečavanje nedostataka. To uključuje analizu statičkog koda, recenzije vršnjaka, sljedivost i analizu mjernih podataka. Cilj je smanjiti rizike i uštedjeti troškove.
- Testiranje upotrebljivosti - Korisničko iskustvo dolazi pod svjetlošću ovog testa. To mjeri koliko je GUI dizajniran i jednostavnost korištenja. Test provjerava točnost i učinkovitost funkcija i emocionalne reakcije ispitanika.
- Ispitivanje zdravstvenog stanja - To ukazuje na to je li softver vrijedan vremena i troškova za nastavak daljnjih testiranja. Previše nedostataka i agresivniji testovi ne slijede.
- Ispitivanje dimljenja - Ispitivanje dimljenja otkriva osnovne kvarove koji su dovoljno ozbiljni da se spriječi ispuštanje. Kada se to provede na novoj gradnji, ono se zove provjera verifikacije gradnje.
- Regresijsko ispitivanje - Kad sustav prolazi modifikaciju, regresijsko testiranje prati neočekivano ponašanje. Ukazuje na štetne učinke na module ili komponente.
- Destruktivno ispitivanje - Testeri unose abnormalne unose i prepoznaju sposobnost softvera da upravlja neočekivanim unosom. To pokazuje programerima koliko je robustan program u upravljanju pogreškama.
- Testiranje oporavka - Ako hardverske ili druge funkcije ne uspiju, ovaj test pokazuje koliko dobro softver može oporaviti i nastaviti s radom.
- Automatsko testiranje - Ovo obavlja funkcije koje je teško implementirati ručno. Koristi specifični softver za pokretanje testova i pružanje podataka o stvarnom odnosu očekivanih ishoda.
- Ispitivanje kompatibilnosti - Softver se mora izvoditi u različitim računalnim okruženjima, stoga provjerava kompatibilnost s različitim sustavima. Na primjer, radi li softver s različitim operativnim sustavima i web preglednicima?
- Testiranje performansi - Ovo je dubinski test koji ispituje izvedbu softvera u različitim scenarijima. Prikupljaju se informacije o odazivu, stabilnosti, raspodjeli resursa i brzini. Štoviše, pod-testovi kao što su volumen, kapacitet i spike testiranje igraju dio u ovom procesu.
- Testiranje sigurnosti - Ovo mjeri sposobnost softvera da zaštiti sigurnost korisnika. To znači funkcije ovlaštenja, provjeru autentičnosti, povjerljivost, integritet, dostupnost i neodgodivost.
- Testiranje pristupačnosti - Ovo nije isto kao i testiranje upotrebljivosti. To određuje u kojoj mjeri korisnici različitih sposobnosti - učenje i tjelesne smetnje uključeni, mogu koristiti softver.
- Testiranje za internacionalizaciju i lokalizaciju - Rezultati pokazuju kako se softver može prilagoditi različitim jezicima i regionalnim zahtjevima. To uključuje dodavanje komponenti za određene lokacije i prevođenje teksta.
Testiranje softvera bitan je dio dovođenja proizvoda na tržište. I bez ispitivača, širok raspon dostupnih softvera ne bi postojao. Postanite certificirani softver tester putem organizacija kao što su BCS, Chartered Institute za IT, ISTQB® (International Testing Qualifications Board) i ASQ (bivši Američko društvo za kvalitetu).