Testirajte savjete za automatizaciju i najbolje prakse

Automatizirano testiranje je važna aktivnost testiranja tijekom životnog ciklusa razvoja softvera, jer može pružiti brzu povratnu informaciju timu kada se razvije nova značajka.

Također uklanja teret s QA-a da opetovano izvodi regresijske testove što štedi vrijeme da se QA usredotoči na druge aktivnosti testiranja.

Automatizacija testa, kada se dobro izvede, može biti vrlo korisna za tim. Savjeti u nastavku pomoći će vam da maksimalno iskoristite svoj automatizirani postupak testiranja i aktivnosti te naglašavaju zamke koje biste trebali izbjeći prilikom pokretanja automatizacije testova.

Ručno vs Automatizirano - Ispitivanje vs Provjera

Izbjegavajte usporedbu ručnog i automatiziranog testiranja. Oboje su potrebne, jer svaka ima drugu svrhu. Automatizirani testovi skup su uputa koje je osoba napisala za obavljanje određenog zadatka. Svaki put kad se pokrene automatizirano testiranje, slijedit će točno iste korake kao što je navedeno u uputama i provjeravat će samo stvari koje se trebaju provjeriti.

S druge strane, tijekom ručnog testiranja mozak ispitivača je uključen i može uočiti druge kvarove u sustavu. Ispitni koraci ne moraju nužno biti isti svaki put, jer ispitivač može promijeniti protoke tijekom ispitivanja; to je osobito istinito u slučaju istražnih ispitivanja.

Automatizirajte regresijske testove

Glavni razlog zašto želite automatizirati test jest da test želite izvoditi više puta na svakom novom izdanju. Ako se test treba izvršiti samo jednom, tada napor na automatizaciji testa može nadmašiti koristi.



Regresijski testovi moraju se izvoditi više puta kako se softver koji se testira razvija. To može zahtijevati puno vremena i dosadan zadatak QA-a da svakodnevno mora provoditi regresijske testove. Regresijski testovi dobri su kandidati za automatizaciju ispitivanja.

Testovi dizajna prije automatizacije

Uvijek je dobra praksa stvoriti test slučajeve i scenarije prije nego što počnete automatizirati testove. Dobar dizajn testa može pomoći u prepoznavanju nedostataka, automatizirani testovi samo izvršavaju dizajn testa.

Opasnost od skoka ravno na automatizaciju je u tome što vas zanima samo da skripta radi, a obično automatizirate samo pozitivne i sretne scenarije, a ne razmišljate o ostalim mogućim scenarijima koji se mogu testirati.

Također, nemojte smanjivati ​​opseg testiranja samo da bi test uspio ili prošao.

Uklonite nesigurnost iz automatiziranih testova

Jedna od ključnih točaka automatiziranog testiranja je sposobnost davanja dosljednih rezultata kako bismo bili sigurni da je nešto zapravo pošlo po zlu kada test ne uspije.

Ako automatizirano testiranje prođe u jednom pokretu, a ne uspije u sljedećem, bez ikakvih promjena na testiranom softveru, ne možemo biti sigurni je li kvar posljedica aplikacije ili drugih čimbenika, kao što su problemi s testnim okruženjem ili problemi u sam testni kod.

Kada postoje kvarovi, moramo analizirati rezultate kako bismo vidjeli što je pošlo po zlu, a kada imamo puno nedosljednih ili lažno pozitivnih rezultata, to povećava vrijeme analize.

Ne bojte se ukloniti nestabilne testove iz regresijskih paketa; umjesto toga, ciljajte na dosljedne čiste rezultate na koje se možete pouzdati.

Pregledajte automatizirane testove za valjanost

Uznemirit će vas ogroman broj automatiziranih testova koji su zastarjeli, samo nemojte ništa provjeravati ili ne provjeravate najvažnije provjere!

To bi mogao biti simptom skoka ravno na automatizaciju bez prethodnog trošenja dovoljno vremena na planiranje onoga što treba učiniti i osmišljavanje dobrih scenarija ispitivanja.

Uvijek imajte kolegu koji će pregledati automatizirane testove na valjanost i razumnost. Provjerite jesu li testovi ažurni.

Nemojte automatizirati nestabilnu funkcionalnost

Kako se razvija nova značajka ili funkcionalnost, mnoge stvari mogu poći po zlu, pa čak i značajka više neće biti primjenjiva jer su se poduzeće predomislili.

Ako ste počeli automatizirati testove dok se značajka razvijala, testovi se moraju ažurirati mnogo puta kako se značajka razvija, a može biti prilično zastrašujuće pokušavati pratiti sve promjene. A ako značajka više nije primjenjiva, sav taj trud oko automatizacije testa se troši.

Stoga je uvijek najbolje automatizirati značajku nakon što je stabilizirana i manje podložna promjenama.

Ne očekujte magiju od automatizacije testa

Primarni razlog automatizacije ispitivanja je oslobađanje QA vremena za zanimljiva istraživačka ispitivanja i davanje povjerenja timu da je aplikacija još uvijek u dobrom stanju dok se donose nove promjene.

Ne očekujte da će automatizacija pronaći puno bugova . U stvari, broj grešaka pronađenih automatizacijom uvijek je mnogo manji od ručnog i istraživačkog testiranja.

Ne oslanjajte se samo na automatizaciju - čuvajte se polaganja testova

Automatizirani regresijski testovi mogu dati osjećaj samopouzdanja za tim, jer regresijski testovi i dalje trebaju prolaziti kako se isporučuje nova funkcionalnost. Tim se počinje oslanjati na testove, a dobar set regresijskih testova može djelovati kao zaštitna mreža.

Međutim, imajte na umu da nisu svi testovi automatizirani ili se mogu automatizirati, zato automatizirana ispitivanja uvijek popraćujte istraživačkim ispitivanjima.

Ponekad bi promjena softvera trebala pasti na testu; međutim, ako svi testovi prođu, to znači da je nedostatak propušten i budući da nije bilo poziva na akciju, kvar je prošao nezapaženo.

Cilj za brzom povratnom informacijom

Brza povratna informacija jedan je od ciljeva automatiziranih testova jer programeri žele znati funkcionira li ono što su razvili i nije li pokvarilo trenutnu funkcionalnost.

Da bi se dobila ova petlja brze povratne informacije, testovi moraju biti automatizirani na komponentnom ili API sloju bez oslanjanja na korisničko sučelje.

Testovi koji se izvode na korisničkom sučelju puno su sporiji i skloni su pogreškama zbog promjena u GUI. Drugim riječima, funkcionalnost i dalje radi kako se očekivalo, ali testovi ne uspijevaju zbog promjena u korisničkom sučelju. Stoga testovi mogu postati nepouzdani.

Razumijevanje konteksta

Testovi se mogu automatizirati na bilo kojem sloju, jedinici, API-ju, usluzi, GUI-u. Svaki sloj ima različitu svrhu za ispitivanje.
Jedinstveni testovi osiguravaju da kôd radi na razini klase, da se kompajlira i da je logika onakva kakva se očekuje. Ispitivanja na ovom sloju više su provjera nego provjera valjanosti.

API testovi ili integracijski testovi osiguravaju da skup funkcija i klasa mogu raditi zajedno i da se podaci mogu prenositi iz jedne klase u drugu.

GUI testovi, s druge strane, testiraju korisničke tokove i putovanja. Općenito, ne bismo testirali funkcionalnost iz korisničkog sučelja. To bi trebalo učiniti na nižim slojevima.

Glavna svrha UI testova je osigurati da cijeli sustav radi prema nekim uobičajenim korisničkim scenarijima i slučajevima korištenja. Testiranje na ovom sloju više je provjera valjanosti nego provjera

Na razini korisničkog sučelja automatiziramo scenarije, a ne priče.

Nemojte automatizirati svaki test

100% pokrivenost testom nije moguća jer mogu biti milijuni kombinacija. Uvijek izvršavamo podskup mogućih testova. Isti se princip odnosi na automatizirano ispitivanje.

Da bi se stvorila automatizirana skripta, potrebno je vrijeme i napor, a za 'Automatski svaki test' trebamo puno resursa i vremena, što u mnogim slučajevima nije moguće.

Umjesto toga, upotrijebite pristup zasnovan na riziku da biste odredili koje testove treba automatizirati. Da biste automatizaciji izvukli najveću vrijednost, automatizirajte samo najvažnije poslovne slučajeve i scenarije.

Također, veliki broj automatiziranih testova dodaje troškove održavanja i teško ih je održavati.

Sljedeća napomena koju treba imati na umu jest da se svi testovi ne mogu automatizirati. Neki su testovi po svojoj prirodi vrlo složeni i zahtijevaju mnoge provjere sustava nizvodno i mogu biti nedosljedni. U tim je slučajevima najbolje ove čekove ostaviti za ručno testiranje.

Koristite tehnike ispitivanja u automatizaciji ispitivanja

Tehnike ispitivanja koje ste naučili na ISTQB-u nisu samo za ručno testiranje. Također su primjenjive na automatizirano testiranje. Tehnike poput analize granica, podjele ekvivalencije, ispitivanja prijelaza države, ispitivanja u paru mogu pružiti puno prednosti u automatiziranom ispitivanju.

Ne automatizirajte kaos

Da biste iz automatiziranog testiranja izvukli maksimum, trebao bi biti uspostavljen dobar postupak osiguranja kvalitete. Ako je QA postupak kaotičan i ako tom kaosu dodamo automatizirano testiranje, dobivamo samo brži kaos.

Pokušajte odgovoriti na pitanja poput: Što automatizirati, Kada automatizirati , Kada izvršiti automatizirane testove, Tko će automatizirati testove, Koje alate treba koristiti za automatizaciju testova, itd ...

Ovi su savjeti prikupljeni uglavnom iz iskustva kao ispitivača automatizacije i nekih dobrih praksi koje slijede drugi.

Imate li savjete za automatizaciju testa koji treba dodati na ovaj popis?