types automation testing
Naučite različite vrste testiranja automatizacije s nekim zabludama o automatizaciji testova:
U ovom drugom dijelu serija tutorijala o automatizaciji ispitivanja , Ukratko ću opisati vrste automatiziranih testova, a zatim najvažnije razjasnit ću neke zablude o automatizaciji testova.
Što je ispitivanje automatizacije?
Automatsko testiranje može se definirati kao način izvođenja niza testova iznova i iznova, bez potrebe za ručnim izvršavanjem. Uvođenje testova automatizacije u vašu strategiju testiranja način je uštede novca i vremena.
Što ćete naučiti:
Vrste ispitivanja automatizacije
Vrste testova za automatizaciju definiraju kakve se vrste testova mogu automatizirati. Mnogi testeri brkaju ovu temu s vrstama automatizacijskih okvira koji definiraju kako ćete svoj testni paket dizajnirati u paket automatizacije koji se može jednostavno izvršiti.
U ovom ćemo članku pomno pogledati tipove ispitivanja automatizacije i na kraju kratki pogled na okvire automatizacije.
Razumimo detaljno gornje klasifikacije:
Automatizacija temeljena na vrsti ispitivanja
Automatizacija funkcionalnih ispitivanja:
Funkcionalni testovi napisani su za testiranje poslovne logike koja stoji iza aplikacije. Automatizacija ovih podrazumijeva pisanje skripti za provjeru poslovne logike i funkcionalnosti koja se očekuje od aplikacije.
Automatizacija nefunkcionalnih ispitivanja:
Nefunkcionalni testovi definiraju poslovne zahtjeve aplikacije. To su zahtjevi koji se odnose na izvedbu, sigurnost, baze podataka itd. Ovi zahtjevi mogu ostati stalni ili se mogu prilagoditi veličini softvera.
Automatizacija temeljena na fazi ispitivanja
Automatizacija jediničnih ispitivanja:
Ta se ispitivanja izvode tijekom same razvojne faze, idealno je da ih programeri razviju nakon završetka razvoja i prije predaje sustava testerima na testiranje.
Automatizacija API testova:
API testovi se izvode tijekom faze integracije. Njih može pokrenuti tim za razvoj ili testiranje, a mogu se pokrenuti prije ili nakon izrade sloja korisničkog sučelja za aplikaciju. Ovi testovi ciljaju testiranje na temelju zahtjeva i odgovora na kojima je izgrađena aplikacija.
Automatizacija testova temeljenih na korisničkom sučelju:
Testovi temeljeni na korisničkom sučelju izvode se tijekom faze izvršavanja testa. Njih posebno rade testeri i pokreću se samo jednom prije nego što im se preda korisničko sučelje aplikacije. Oni testiraju funkcionalnost i poslovnu logiku aplikacije s prednjeg kraja aplikacije.
Automatizacija temeljena na vrsti ispitivanja
Jedinstveni testovi:
Jedinstveni testovi su testovi koji se grade za testiranje koda aplikacije i obično se ugrađuju u sam kôd. Ciljaju se na standarde kodiranja, poput načina pisanja metoda i funkcija.
Te testove češće pišu sami programeri, međutim, u današnjem svijetu od ispitivača automatizacije također se može tražiti da ih napišu.
Izvršenje ovih testova i ne dobivanje grešaka s njih značit će da će se vaš kôd sastaviti i pokrenuti bez ikakvih problema s kodom. Ovi testovi obično ne ciljaju funkcionalne aspekte aplikacije, a kako ciljaju kod, prikladnije ih je automatizirati kako bi se mogli izvoditi kako i kada to zahtijeva programer.
Ispitivanja dima:
Test dima poznati je test izveden u životnom ciklusu testa. To su testovi nakon izrade, oni se izvršavaju odmah nakon što se bilo koja gradnja izda iz aplikacije kako bi se osiguralo da aplikacija još uvijek funkcionira nakon završetka gradnje.
Ovo je mali testni paket i nešto će se izvršiti više puta, pa ga ima smisla automatizirati. Ovi testovi obično će biti funkcionalne prirode i ovisno o vrsti primjene, za njih se može odabrati alat.
API testovi:
API testiranje postalo je vrlo poznato u posljednjih nekoliko godina. Aplikacije izgrađene na API arhitekturi mogu izvršiti ovo testiranje.
U API testiranju, testeri potvrđuju poslovni sloj aplikacije provjerom kombinacija zahtjeva i odgovora za različite API-je na kojima je aplikacija izgrađena. API testovi se također mogu provesti kao dio integracijskih testova u nastavku.
Testovi integracije:
Integracijski test kako i samo ime sugerira znači testiranje aplikacije integriranjem svih modula i provjerom funkcionalnosti aplikacije.
Integracijsko testiranje može se obaviti putem API testiranja ili se može izvršiti putem UI sloja aplikacije.
UI testovi:
UI testovi rade se iz UI sloja ili sučelja aplikacije. Oni mogu ciljati testiranje funkcionalnosti ili jednostavno testiranje UI elemenata aplikacije.
Uobičajena praksa je automatizacija korisničkog sučelja za testiranje funkcionalnosti. Međutim, automatizacija značajki GUI-a jedna je od složenijih automatizacija.
Regresijski testovi:
Jedan od najčešće automatiziranih ispitnih paketa je paket za regresijski test. Regresija je, kao što već znate, test koji se provodi na kraju testiranja novog modula kako bi se osiguralo da nijedan od postojećih modula nije na njega utjecao.
Ponavlja se nakon svake nove iteracije testiranja, a glavni slučajevi ispitivanja ostaju fiksni s obično nekoliko novih dodataka nakon nove iteracije. Kako se često izvodi, gotovo svi testni timovi pokušavaju automatizirati ovaj paket.
Automatizacija kao kontinuirana integracija:
Neprekidna integracija možda će se ponovno izvoditi na samim automatiziranim regresijskim testovima, međutim, postižući CI, omogućujemo pokretanje regresije ili identificiranog paketa testiranja svaki put kad se izvrši nova implementacija.
Sigurnosni testovi:
Sigurnosno testiranje može biti kako funkcionalno, tako i nefunkcionalno ispitivanje koje uključuje testiranje aplikacije na ranjivosti. Funkcionalni testovi sastojat će se od testova koji se odnose na autorizaciju itd., Dok nefunkcionalni zahtjevi mogu testirati SQL ubrizgavanje, skriptiranje na više lokacija, itd.
Ispitivanja performansi i kontrola kvalitete:
Ispitivanja performansi su nefunkcionalni testovi koji ciljaju zahtjeve poput ispitivanja opterećenja, naprezanja, skalabilnosti aplikacije.
Prihvatni testovi:
Ispitivanja prihvaćanja ponovno potpadaju pod funkcionalna ispitivanja koja se obično rade kako bi se osiguralo jesu li ispunjeni kriteriji prihvaćanja koje je dao klijent.
Do sada smo opisali vrstu testova koji se mogu automatizirati i razne iste klasifikacije, sve klasifikacije na kraju će dovesti do istih krajnjih rezultata automatiziranih paketa testova. Kao što smo ranije rekli, potrebno je malo razumijevanja kako se oni razlikuju od okvira.
Nakon što identificirate testove koje želite automatizirati iz gornje klasifikacije, morat ćete dizajnirati svoju logiku na način da te testove izvršite glatko, bez puno ručnih intervencija. Okviri ulaze u ovaj dizajn ručnog paketa za testiranje u automatizirani paket za testiranje.
Sada ćemo istražiti Top 3 vrste automatizacije ispitivanja
- Jedinstveno ispitivanje
- API ispitivanje
- GUI testiranje
# 1) Automatizirana jedinična ispitivanja
Automatizirani jedinični testovi napisani su za testiranje razine koda. Bug se identificira u funkcijama, metodama i rutinama koje su napisali programeri.
Neke tvrtke traže od programera da samostalno testiraju jedinice, a neke angažiraju specijalizirane resurse za automatizaciju ispitivanja. Ti resursi imaju pristup izvornom kodu i pišu jedinične testove kako bi razbili proizvodni kod.
Zbog prisutnosti jediničnih testova, kad god se kompajlira kod, svi se jedinični testovi pokreću i govore nam rezultat ako sve funkcije rade. Ako bilo koje jedinično testiranje ne uspije, to znači da je sada prisutna buga u proizvodnom kodu.
Neki od najpopularnijih alata prisutnih na tržištu uključuju NUnit i JUNIT . Microsoft također nudi vlastiti okvir za jedinstveno testiranje tzv MSTest . Pregledajte web stranice ovih alata i pružit će vam više primjera i vodiča o tome kako napisati unit testove.
#dva) Automatizirane web usluge / API testovi
Sučelje za programiranje aplikacija (API) omogućuje softveru da razgovara s drugim softverskim aplikacijama. Kao i bilo koji drugi softver, API-je treba testirati. U ovoj vrsti testiranja GUI obično nije uključen.
Ovdje testiramo obično probleme s funkcionalnošću, usklađenošću i sigurnošću. U web aplikacijama možemo testirati zahtjev i odgovor naše aplikacije ako su sigurni i šifrirani ili ne.
Ovo je jedan od primjera gdje možemo koristiti API testiranje. Najpopularniji alat za testiranje API-ja je SAPUN koja ima i besplatnu i plaćenu verziju. Postoje i drugi alati koje možete koristiti prema svojim potrebama.
# 3) Automatizirani GUI testovi.
Ova vrsta automatiziranog testiranja najteži je oblik automatizacije jer uključuje testiranje korisničkog sučelja aplikacije.
Teško je jer su GUI-i vrlo podložni promjenama. No, ova vrsta testiranja također je najbliža onome što će korisnici raditi s našom aplikacijom. Kako će korisnik koristiti miš i tipkovnicu, automatizirani GUI testovi također oponašaju isto ponašanje korištenjem miša i tipkovnice za klikanje ili pisanje na objekte prisutne na korisničkom sučelju.
Zbog toga greške možemo pronaći rano i mogu se koristiti u mnogim scenarijima, poput regresijskog testiranja ili popunjavanja obrazaca, što traje previše vremena.
Najpopularniji alati za testiranje GUI-a uključuju Objedinjeno funkcionalno ispitivanje mikrofokusa (UFT) , Selen , Test završen i Microsoftovo kodirano korisničko sučelje (koji je dio ultimativnog i premium izdanja Visual Studija).
Baš kao i tipovi testova automatizacije, postoji i više vrsta okvira.
Okviri za automatizaciju
Neki od najčešće korištenih okvira automatizacije uključuju:
- Linearno (snimanje i reprodukcija)
- Potaknuta ključnom riječi
- Podaci vođeni
- Model objekta stranice
- Modularni
Daljnje čitanje => Okviri za automatizaciju
Kao što vidite, prvi korak u procesu automatizacije je prepoznavanje vrste automatizacije, zatim možete identificirati okvir za dizajn i imajući na umu da možete odabrati alate koji odgovaraju vašim potrebama.
Alati za automatizaciju
Na temelju vrste testiranja koje ciljate i vrste okvira koji biste možda trebali sagraditi oko njega, dostupni su sljedeći alati:
- Selen : Vrlo moćan alat za testiranje web aplikacija. Pruža podršku za više preglednika.
- Junit i Nunit: Alati koje programeri uglavnom koriste za Unit testiranje.
- QTP : Izvrstan alat za ne-web aplikacije i dolazi s ugrađenim spremištem objekata.
- Sikuli: Alat otvorenog koda za testiranje grafičkog sučelja.
- Korisničko sučelje sapuna: Alat za API ispitivanje.
- Budite uvjereni: Biblioteka za stvaranje API test okvira.
- apijem : Alat koji podržava testiranje na mobilnim uređajima, testiranje izvornih aplikacija, hibridno testiranje i testiranje mobilnih web aplikacija.
- Jmeter : Alat koji se koristi za ispitivanje performansi.
- TestNG: TestNG sam po sebi nije alat za automatizaciju, ali pruža veliku podršku automatizacijskim okvirima izgrađenim od selena, appija, budite sigurni itd.
Daljnje čitanje => Ispitajte alate za automatizaciju
Zablude o ispitivanju automatizacije
Tijekom godina čuo sam neke zablude o automatizaciji ispitivanja. Mislim da bih i njih trebao očistiti u ovom članku.
Zabluda br. 1. Automatizacija je tu da zamijeni ručne testere.
Automatizacija testa pomaže testerima da testiranje učine bržim i na mnogo pouzdaniji način. Nikada ne može zamijeniti ljude.
Automatizaciju testa smatrajte automobilom. Ako hodate, trebat će vam oko 20 minuta da stignete do svog doma. Ali ako koristite automobil, stići ćete za dvije minute. Vozač automobila još uvijek ste vi, čovjek, ali .. automobil pomaže čovjeku da brže postigne svoj cilj. Također, štedi se većina vaše energije, jer niste hodali. Tako ovu energiju možete koristiti za obavljanje važnijih stvari.
Isto vrijedi i za ispitivanje automatizacije. Koristite ga za brzo testiranje većine ponovljenih, dugih i dosadnih testova i uštedu vremena i energije za fokusiranje i testiranje nove i važne funkcionalnosti.
Kao James Bach rekao je prekrasan citat:
„Alati ne testiraju. Samo ljudi testiraju. Alati izvode samo radnje koje 'pomažu' ljudima da testiraju. “
Alati mogu kliktati na objekte. Ali gdje treba kliknuti, uvijek će vam reći ručni tester. Mislim da ste sada shvatili moju poantu.
Zabluda br. 2 . Sve pod suncem može se automatizirati
Ako pokušate automatizirati 100% svojih testnih slučajeva, možda ćete to moći učiniti, ali ako biste to mogli učiniti, tada naša prva točka postaje lažna. Ako je sve automatizirano, što će onda raditi ručni ispitivač?
Zbunjen? Pravo?
Zapravo je poanta u tome da ne možete automatizirati 100% svojih test slučajeva. Budući da mi kao testeri vjerujemo da niti jedna aplikacija ne može biti 100% testirana. Uvijek će postojati neki scenariji koji će nam nedostajati. Uvijek će biti grešaka koje se pojavljuju samo kada klijenti koriste vašu aplikaciju.
Ako se aplikacija ne može 100% testirati, kako onda možete obećati 100% automatizaciju?
Također, vrlo su male šanse da ćete moći automatizirati sve svoje postojeće testove. Uvijek postoje scenariji koje je teško automatizirati, a lakše je ručno.
Na primjer , Jedan će korisnik unijeti podatke, drugi će odobriti podatke, treći korisnik će pregledati podatke, a četvrtom je zabranjeno pregledavanje podataka. Ti se scenariji mogu automatizirati, ali oduzet će puno vremena i truda. Tako će biti lakše ako to učinite samo ručno.
Zapamtite, koristimo automobile kako bismo se udaljili, ali na putu mogu biti dugotrajni signali, bit će potrošnje goriva, problema s parkirnim mjestima, naknada za parkiranje i puno više glavobolje. U nekim scenarijima samo hodamo i dolazimo do odredišta :) .
Stoga ne biste trebali pokušavati sve automatizirati. Automatizirajte samo one važne scenarije i one kojima ručno treba puno vremena.
Zabluda br. 3 . Automatizacija uključuje samo snimanje i reprodukciju.
Molim vas, nemojte živjeti u svijetu mašte. Tu su maštu zapravo stvorili lažni oglasi različitih dobavljača alata za automatizaciju. Kažu da samo bilježite i reproducirate svoje korake i vaši će se testovi automatizirati. Pa, to je velika laž!
Automatizacija je sve, a ne samo snimanje i reprodukcija. Čisti inženjeri automatizacije obično uopće ne koriste značajku snimanja i reprodukcije. Snimanje i reprodukcija obično se koriste za dobivanje ideje o tome kako alat generira skriptu za naše korake.
dobra aplikacija za preuzimanje glazbe za android
Jednom kada se upoznamo sa skriptiranjem, uvijek koristimo skripte za izradu automatiziranih testova. Zapamtiti, morate znati programiranje ako želite napraviti automatizaciju ispitivanja . S druge strane, nemojte biti neugodni ako ne znate programirati. Kao i bilo koji drugi zadatak, programiranje se također može naučiti s vježbom i predanošću.
Znam ljude koji čak i nisu iz računalnih znanosti, ali nauče programirati i sada su sjajni inženjeri automatizacije. U Microsoftu angažiraju testere koji se mogu baviti programiranjem. Zovu se SDET (Inženjeri za razvoj softvera za ispitivanje). U prvom retku opisa posla stoji 'SDET je napisao puno koda ...'.
Molimo vas naučite programirati, nemojte bježati od toga. To će vas stvoriti nevjerojatan tester .
Zaključak
Nadam se da bi vam ovaj članak pomogao da razjasnite neke koncepte povezane s automatizacijom ispitivanja.
Pokrili smo visoku razinu raznih vrsta ispitivanja automatizacije, s različitim načinima klasifikacije.
Glavne klasifikacije uključuju:
- Automatizacija temeljena na vrsti ispitivanja (funkcionalno ili nefunkcionalno).
- Automatizacija temeljena na fazi ispitivanja (jedinica, API ili UI).
- Automatizacija temeljena na različitim vrstama ispitivanja (više vrsta ispitivanja).
Također smo naveli razne alate koji se mogu koristiti za ove vrste automatiziranih ispitivanja.
U našem predstojećem članku razgovarat ćemo o korak po korak postupak kako pokrenuti automatizaciju ispitivanja u svojoj organizaciji .
PREV Vodič br. 1 | Sljedeći vodič # 3
Preporučena literatura
- Ispitivanje opterećenja pomoću HP LoadRunner vodiča
- Najbolji alati za testiranje softvera 2021. (Alati za automatizaciju ispitivanja kvalitete)
- Izgubljuju li ispitivači stisak zbog testiranja zbog automatizacije?
- Izazovi ručnog i automatiziranog ispitivanja
- Proces automatskog testiranja u 10 koraka: kako započeti automatsko testiranje u svojoj organizaciji
- Jeste li stručnjak za ručno ili automatizirano testiranje? Radite skraćeno za nas!
- 11 najboljih alata za automatizaciju za testiranje Android aplikacija (Android Tools Testing Tools)
- Top 10+ najboljih knjiga za testiranje softvera (knjige za ručno testiranje i automatizaciju)