Zahvaljujući automatskim testovima možete na vreme, u ranoj fazi razvoja softvera, da identifikujete potencijalne probleme i da izmenite manjkavosti u kôdu.
Kada radite na velikim projektima sa javnom upravom i državnim institucijama, na jedno sigurno možete da računate: ono što je definisano na početku projekta podleže malim mogućnostima promene. Pod time se podrazumeva budžet koji je na raspolaganju, vreme u kome je neophodno završiti projekat i broj definisanih funkcionalnosti. Da biste sa predviđenim parametrima mogli uspešno da završite projekat, potrebno je da razvijete dobar plan od samog početka.
Na ovakvim, često višegodišnjim i izazovnim projektima rade timovi sastavljeni od velikog broja ljudi. Sa back end strane morate da obezbedite da poslovna logika funkcioniše, a sa front end strane da korisnički interfejs radi kako je zamišljeno. Zato je bitno da se automatski testovi uključe od samog starta razvoja softverskog sistema, da biste sa većom dozom sigurnosti mogli da kažete da su gore pomenute aktivnosti uspešno kompletirane.
Pisanje testova nije lak posao. Ako institucija za koju radite sama odabere i nametne tehnologiju u kojoj treba da razvijate softver onda ta ista tehnologija može da bude ograničavajući faktor za testiranje. S druge strane, kada sami birate tehnološko rešenje, javlja se dilema o optimalnoj tehnologiji za zadatak koji je ispred vas. Zato razvojni timovi koji razvoj baziraju na testovima, prilikom odabira tehnologije biraju one koje na jednostavan način omogućavaju njihovo pisanje i integraciju u softversko rešenje.
Pre, ili u toku pisanja automatskih testova, praksa je da se koriste i manuelni testovi. Oni mogu da budu neformalni, gde tester proverava da li je implementirana funkcionalnost u skladu sa dokumentacijom, ili formalni, gde se test sprovodi po unapred definisanom setu koraka, koji simuliraju ponašanje korisnika. Osnovni nedostatak ovih testova je njihova fokusiranost na proveru određene funkcionalnosti, pri čemu se celokupna slika sistema može lako izgubiti iz vida. Tako manuelnim testiranjem možete da potvrdite da je određeni deo softvera zadovoljavajući, ali da previdite da je narušeno funkcionisanje drugog dela sistema izazvano tom promenom. Ovo posebno važi u situacijama kada razvojni timovi generalizuju jednu funkcionalnost kako bi je koristili u više različitih modula. Te situacije su česte.
Zahvaljujući automatskim testovima možete na vreme, u ranoj fazi razvoja softvera, da identifikujete potencijalne probleme i da izmenite manjkavosti u kôdu.
Testovi mogu da se podelie u n kategorija, a ovde su navedeni oni koji se najčešće koriste u razvoju:
• Unit testovi (jedinični) koji služe za zasebno testiranje svake programske komponente tj. funkcionalnosti nezavisno od ostalih delova sistema;
• Integracioni testovi koji proveravaju da li sistemske komponente sarađuju, kao što je opisano u specifikacijama dizajna sistema i programa. Njima se testira sve, od korisničkog interfejsa do baze podataka i služe za simulaciju rada korisnika;
• Funkcionalnim testovima proverava se da li integrisani sistem zaista izvršava funkcije opisane u specifikaciji zahteva. Tokom razvoja, najčešće su pokriveni integracionim testovima;
• Performance testovi kojima se testiraju performanse softverskog rešenja.