types automation testing
Spoznajte različne vrste preizkušanja avtomatizacije z nekaj napačnimi predstavami o avtomatizaciji preskusov:
V tem drugem delu serija vaj za avtomatizacijo preskusov , Na kratko bom opisal vrste avtomatiziranih testov in nato najpomembneje razjasnil nekaj napačnih predstav o avtomatizaciji testov.
Kaj je avtomatizirano testiranje?
Avtomatizacijsko testiranje lahko definiramo kot način, kako znova in znova izvajati niz testov, ne da bi jih bilo treba izvajati ročno. Uvedba testov za avtomatizacijo v strategijo preizkušanja je način prihranka denarja in časa.
Kaj se boste naučili:
Vrste preizkusov avtomatizacije
Vrste testov za avtomatizacijo določajo, katere vrste testnih paketov je mogoče avtomatizirati. Številni preizkuševalci to temo zamenjujejo z vrstami sistemov za avtomatizacijo, ki določajo, kako boste zasnovo svojega testa zasnovali v paketu za avtomatizacijo, ki ga je mogoče preprosto izvajati.
V tem članku si bomo natančno ogledali tipe preizkušanja avtomatizacije in na koncu na kratko pregledali ogrodja avtomatizacije.

Podrobno razumemo zgornje klasifikacije:
Avtomatizacija na podlagi vrste preskušanja
Avtomatizacija funkcionalnih testov:
Funkcionalni testi so napisani za preizkus poslovne logike, ki stoji za aplikacijo. Avtomatizacija teh pisanja skriptov za potrditev poslovne logike in funkcionalnosti, ki se pričakuje od aplikacije.
Avtomatizacija nefunkcionalnih testov:
Nefunkcionalni testi opredeljujejo poslovne zahteve aplikacije. To so zahteve, povezane z zmogljivostjo, varnostjo, bazami podatkov itd. Te zahteve lahko ostanejo nespremenjene ali jih je mogoče prilagoditi glede na velikost programske opreme.
Avtomatizacija na podlagi faze preskušanja
Avtomatizacija preskusov enot:
Ti testi se izvajajo med samo razvojno fazo, v idealnem primeru jih razvijejo po zaključku razvoja in preden sistem predajo preizkuševalcem v testiranje.
Avtomatizacija testov API:
Preskusi API se izvajajo v fazi integracije. Te lahko izvaja skupina za razvoj ali preskušanje in jih je mogoče izvajati pred ali po izdelavi sloja uporabniškega vmesnika za aplikacijo. Ti testi ciljajo na testiranje na podlagi zahteve in odziva, na katerem je zgrajena aplikacija.
Avtomatizacija testov, ki temeljijo na uporabniškem vmesniku:
Preizkusi, ki temeljijo na uporabniškem vmesniku, se izvajajo v fazi izvajanja preizkusa. Te preizkuševalce posebej zaženejo in se zaženejo samo enkrat, preden jim je izročen uporabniški vmesnik aplikacije. Ti preizkušajo funkcionalnost in poslovno logiko aplikacije s sprednjega dela aplikacije.
Avtomatizacija na podlagi vrste testov
Enotni testi:
pretvori YouTube v mp4 visoke kakovosti
Preizkusi enot so preskusi, ki so vgrajeni za testiranje kode aplikacije in so običajno vgrajeni v samo kodo. Ciljajo na kodirne standarde, na primer na način pisanja metod in funkcij.
Te teste pogosteje pišejo razvijalci sami, vendar pa lahko v današnjem svetu preizkuševalce avtomatizacije tudi zaprosijo, da jih napišejo.
Izvedba teh testov in odvzemanje napak zanje pomeni, da se bo vaša koda zbrala in zagnala brez kakršnih koli težav s kodo. Ti testi običajno ne ciljajo na funkcionalne vidike aplikacije in ker ciljajo na kodo, je primerneje, da jih avtomatizirate, tako da jih je mogoče izvajati, ko in ko jih zahteva razvijalec.
Preskusi dima:
Test dima je znan test, ki se izvaja v življenjskem ciklu preskusa. To so preskusi po izdelavi in se izvedejo takoj, ko je kakršna koli gradnja dana iz aplikacije, da se zagotovi, da aplikacija še vedno deluje po končani gradnji.
To je majhen testni paket, ki se bo izvedel večkrat, zato ga je smiselno avtomatizirati. Ti testi so ponavadi funkcionalne narave in zanje je odvisno od vrste aplikacije.
Preskusi API:
Testiranje API je postalo zelo znano v zadnjih nekaj letih. Aplikacije, ki temeljijo na arhitekturi API, lahko izvajajo to preskušanje.
Pri preskušanju API preizkuševalci potrdijo poslovno plast aplikacije s preverjanjem kombinacij zahteva-odziv za različne API-je, na katerih je aplikacija zgrajena. Preizkuse API lahko opravite tudi kot del spodnjih preskusov integracije.
Integracijski testi:
Integracijski test, kot že samo ime pove, pomeni testiranje aplikacije z integracijo vseh modulov in preverjanjem funkcionalnosti aplikacije.
Preizkušanje integracije je mogoče opraviti s preskušanjem API-ja ali prek uporabniškega vmesnega sloja aplikacije.
Preizkusi uporabniškega vmesnika:
Preizkusi uporabniškega vmesnika se izvajajo iz sloja uporabniškega vmesnika ali prednje strani aplikacije. Ti lahko ciljajo na testiranje funkcionalnosti ali preprosto preizkušanje elementov uporabniškega vmesnika aplikacije.
Pogosta praksa je avtomatizacija uporabniškega vmesnika za preizkušanje funkcionalnosti. Vendar je avtomatizacija funkcij grafičnega uporabniškega vmesnika ena bolj zapletenih avtomatizacij.
Regresijski testi:
Eden najpogosteje avtomatiziranih testnih paketov je paket regresijskih testov. Kot morda že veste, je regresija preizkus, ki se opravi na koncu testiranja novega modula, da se zagotovi, da ni vplival na nobenega od obstoječih modulov.
Ponovi se po vsaki novi ponovitvi preskušanja, glavni primeri preskusov pa ostanejo popravljeni z običajno nekaj novimi dodatki po novi ponovitvi. Ker se pogosto izvaja, skoraj vse testne skupine poskušajo avtomatizirati ta paket.
Avtomatizacija kot stalna integracija:
Neprekinjena integracija se lahko spet izvaja na avtomatiziranih regresijskih testih, vendar pri doseganju CI omogočimo, da se regresija ali identificirani testni paket zažene vsakič, ko je končana nova razmestitev.
Varnostni testi:
Varnostno testiranje je lahko tako funkcionalno kot tudi nefunkcionalno vrsto testiranja, ki vključuje testiranje aplikacije za ranljivosti. Funkcionalni testi bodo sestavljali teste, povezane z avtorizacijo itd., Medtem ko nefunkcionalne zahteve morda preskušajo vbrizgavanje SQL, skriptiranje na več mestih itd.
Preskusi učinkovitosti in nadzor kakovosti:
Preskusi učinkovitosti so nefunkcionalni preskusi, ki ciljajo na zahteve, kot so testiranje obremenitve, obremenitve, razširljivosti aplikacije.
Sprejemni testi:
Preskusi sprejemljivosti spet spadajo v funkcionalne teste, ki se običajno izvajajo, da se zagotovi, ali so bila izpolnjena merila sprejemljivosti, ki jih je dala stranka.
Do zdaj smo opisali vrsto testov, ki jih je mogoče avtomatizirati, in različne klasifikacije istih, vse klasifikacije bodo sčasoma privedle do enakih končnih rezultatov avtomatiziranih testnih paketov. Kot smo že omenili, je treba malo razumeti, kako se ti razlikujejo od okvirov.
Ko določite teste, ki jih želite avtomatizirati iz zgornje razvrstitve, boste morali svojo logiko oblikovati tako, da bodo te teste izvedli gladko, brez večjih ročnih posegov. Ta zasnova ročnega testnega kompleta v avtomatiziran testni paket je tisto, kjer vstopajo okviri.
Zdaj bomo raziskali Top 3 vrste avtomatizacije preizkusov
- Enotno preskušanje
- Testiranje API
- Testiranje grafičnega uporabniškega vmesnika
# 1) Avtomatizirani preskusi enot
Avtomatizirani enotni testi so napisani za preizkus ravni kode. Napake so prepoznane v funkcijah, metodah in rutinah, ki so jih napisali razvijalci.
Nekatera podjetja prosijo razvijalce, naj enotno testirajo sami, nekatera pa najamejo posebne vire za avtomatizacijo preskusov. Ti viri imajo dostop do izvorne kode in pišejo enotne teste, da prekinejo produkcijsko kodo.
Zaradi prisotnosti enotnih testov se vsakič, ko se prevede koda, zaženejo vsi enotni testi in nam sporočijo rezultat, da če vse funkcije delujejo. Če kateri koli preskus enote ne uspe, to pomeni, da je zdaj v proizvodni kodi prisotna napaka.
Nekatera izmed najbolj priljubljenih orodij, ki so prisotna na trgu, vključujejo NUnit in JUnit . Microsoft ponuja tudi lastno ogrodje za enotno testiranje, imenovano MSTest . Pojdite na spletna mesta teh orodij in tam vam bodo zagotovili več primerov in vadnic o pisanju enotnih testov.
#two) Avtomatizirani testi spletnih storitev / API
Aplikacijski vmesnik za programiranje (API) omogoča programski opremi, da se pogovarja z drugimi programskimi aplikacijami. Tako kot katero koli drugo programsko opremo je treba tudi API-je preizkusiti. Pri tej vrsti testiranja GUI običajno ni vključen.
Tu preizkušamo običajno težave s funkcionalnostjo, skladnostjo in varnostjo. V spletnih aplikacijah lahko preizkusimo zahtevo in odgovor naše aplikacije, če so varne in šifrirane ali ne.
To je eden od primerov, kjer lahko uporabimo testiranje API. Najbolj priljubljeno orodje za testiranje API je MILO ki ima tako brezplačno kot plačljivo različico. Obstajajo tudi druga orodja, ki jih lahko uporabite glede na vaše potrebe.
# 3) Avtomatizirani testi GUI.
Ta vrsta avtomatiziranega testiranja je najtežja oblika avtomatizacije, saj vključuje testiranje uporabniškega vmesnika aplikacije.
kako kopirati matriko
Težko je, saj se GUI zelo spreminja. Toda tovrstno testiranje je tudi najbližje temu, kar bodo uporabniki počeli z našo aplikacijo. Ker bo uporabnik uporabljal miško in tipkovnico, tudi avtomatizirani testi GUI posnemajo enako vedenje, tako da z miško in tipkovnico kliknejo ali pišejo na predmete v uporabniškem vmesniku.
Zaradi tega lahko napake najdemo zgodaj in jih lahko uporabimo v številnih scenarijih, kot so regresijsko testiranje ali izpolnjevanje obrazcev, kar traja preveč časa.
Najbolj priljubljena orodja za testiranje grafičnega uporabniškega vmesnika vključujejo Poenoteno funkcionalno testiranje z mikro fokusom (UFT) , Selen , Test končan in Microsoftov kodirani uporabniški vmesnik (ki je del končne in premium izdaje Visual Studio).
Tako kot vrste testov avtomatizacije obstaja tudi več vrst ogrodja.
Okviri za avtomatizacijo
Nekateri najpogosteje uporabljeni avtomatizacijski okviri vključujejo:
- Linearno (snemanje in predvajanje)
- Ključne besede usmerjene
- Na podlagi podatkov
- Predmetni model strani
- Modularna
Nadaljnje branje => Okviri za avtomatizacijo

Kot lahko vidite, je prvi korak v procesu avtomatizacije prepoznavanje vrste avtomatizacije, nato pa lahko določite okvir za načrtovanje in ob upoštevanju teh lahko izberete orodja, ki ustrezajo vašim potrebam.
Orodja za avtomatizacijo
Glede na vrsto testiranja, na katero ciljate, in vrsto okolja, ki bi ga morda želeli zgraditi, so na voljo naslednja orodja:
- Selen : Zelo zmogljivo orodje za testiranje spletnih aplikacij. Ponuja podporo za več brskalnikov.
- Junit in Nunit: Orodja, ki jih razvijalci večinoma uporabljajo za enotno testiranje.
- QTP : Odlično orodje za ne-spletne aplikacije in ima vgrajeno skladišče predmetov.
- Sikuli: Odprtokodno orodje za testiranje grafičnega uporabniškega vmesnika.
- Uporabniški vmesnik mila: Orodje za testiranje API.
- Bodite prepričani: Knjižnica za ustvarjanje preskusnega ogrodja API.
- appium : Orodje, ki podpira testiranje za mobilne naprave, testiranje izvornih aplikacij, hibridno testiranje in testiranje spletnih aplikacij za mobilne naprave.
- Jmeter : Orodje, ki se uporablja za preizkuse učinkovitosti.
- TestNG: TestNG sam po sebi ni orodje za avtomatizacijo, vendar nudi odlično podporo avtomatizacijskim ogrodjem, zgrajenim s selenom, apijem, prepričani itd.
Nadaljnje branje => Preizkusite orodja za avtomatizacijo
Napačne predstave o preizkušanju avtomatizacije
V preteklih letih sem slišal nekaj napačnih predstav o avtomatizaciji preskusov. Mislim, da bi jih tudi v tem članku moral počistiti.
Zmota # 1. Avtomatizacija je tu, da nadomesti ročne preizkuševalce.
Avtomatizacija preskusov je namenjena preskuševalcem pri hitrejšem in zanesljivejšem testiranju. Nikoli ne more nadomestiti ljudi.
Avtomatizacijo preizkusov si predstavljajte kot avtomobil. Če hodite, boste do doma potrebovali približno 20 minut. Če pa uporabljate avto, boste prišli v dveh minutah. Voznik avtomobila ste še vedno vi, človek, ampak .. avto človeku pomaga, da hitreje doseže svoj cilj. Prav tako je prihranjena večina vaše energije, saj niste hodili. Tako lahko to energijo uporabite za izvajanje pomembnejših stvari.
Enako velja za testiranje avtomatizacije. Uporabljate ga za hitro preizkušanje večine ponavljajočih se, dolgih in dolgočasnih testov ter prihranek časa in energije za osredotočanje in preizkušanje novih in pomembnih funkcij.
Kot James Bach je rekel čudovit citat:
»Orodja ne preizkušajo. Testirajo samo ljudje. Orodja izvajajo samo dejanja, ki ljudem 'pomagajo' pri testiranju. “
Orodja lahko kliknejo na predmete. Kje klikniti, pa bo vedno povedal ročni preizkuševalec. Mislim, da ste zdaj razumeli moje stališče.
Zmota # 2 . Vse pod soncem je mogoče avtomatizirati
Če poskusite avtomatizirati 100% svojih testnih primerov, boste morda to lahko storili, če pa bi to lahko storili, potem naša prva točka postane napačna. Če je vse avtomatizirano, kaj bo počel ročni tester?
Zmeden? Prav?
Pravzaprav je bistvo v tem, da ne morete avtomatizirati 100% svojih testnih primerov. Ker kot preizkuševalci verjamemo, da nobene aplikacije ni mogoče stoodstotno preizkusiti. Vedno bo nekaj scenarijev, ki jih bomo pogrešali. Vedno se bodo pojavile napake, ki bodo prišle šele takrat, ko bodo stranke uporabile vašo aplikacijo.
Če aplikacije ni mogoče 100% preizkusiti, kako potem lahko obljubite 100% avtomatizacijo?
Obstaja tudi zelo majhna verjetnost, da boste lahko avtomatizirali vse svoje obstoječe testne primere. Vedno obstajajo scenariji, ki jih je težko avtomatizirati in jih je lažje narediti ročno.
Na primer , En uporabnik bo vnesel podatke, drugi uporabnik jih bo odobril, tretji uporabnik si bo ogledal podatke in četrti uporabnik bo prepovedal ogled podatkov. Te scenarije je mogoče avtomatizirati, vendar bodo vzeli veliko časa in truda. Torej bo lažje, če to storite ročno.
Ne pozabite, da z avtomobili odhajamo na daljave, vendar so na poti lahko dolgotrajni signali, poraba goriva, težave s parkirnim prostorom, parkirnine in še veliko več preglavic. V nekaterih primerih preprosto hodimo in pridemo do cilja :) .
Zato ne bi smeli poskušati avtomatizirati vsega. Avtomatizirajte samo tiste scenarije, ki so pomembni, in tiste, za katere je treba veliko časa narediti ročno.
Zmota # 3 . Avtomatizacija vključuje samo snemanje in predvajanje.
Prosim, ne živite v domišljijskem svetu. To domišljijo dejansko ustvarjajo lažni oglasi različnih prodajalcev orodij za avtomatizacijo. Pravijo, da samo posnamete in predvajate korake in vaši testni primeri bodo avtomatizirani. No, to je velika laž!
Avtomatizacija je vse, ne samo snemanje in predvajanje. Čisti inženirji avtomatizacije običajno sploh ne uporabljajo funkcije snemanja in predvajanja. Snemanje in predvajanje se običajno uporabljata, da dobimo idejo o tem, kako orodje ustvarja skript za naše korake.
Ko spoznamo skript, ga vedno uporabljamo za ustvarjanje avtomatiziranih testov. Ne pozabite, če želite izvesti avtomatizacijo preskusov, morate poznati programiranje . Po drugi strani pa ne bodite razočarani, če ne poznate programiranja. Tako kot katero koli drugo nalogo se tudi pri programiranju lahko učimo z vajo in predanostjo.
Poznam ljudi, ki niti niso iz računalništva, a se naučijo programirati in so zdaj super inženirji avtomatizacije. Pri Microsoftu najemajo preizkuševalce, ki se lahko ukvarjajo s programiranjem. Pokličejo se SDET (Inženirji za razvoj programske opreme za preizkus). V prvi vrstici opisa zaposlitve piše 'SDET je napisal veliko kode ...'.
Naučite se programirati, ne bežite pred njim. Naredil vas bo neverjeten tester .
Zaključek
Upam, da bi vam ta članek pomagal razjasniti nekatere koncepte, povezane s avtomatizacijo preskusov.
Pokrili smo visoko raven različnih vrst testiranja avtomatizacije z različnimi načini razvrščanja.
Glavne klasifikacije vključujejo:
- Avtomatizacija na podlagi vrste testiranja (funkcionalna ali nefunkcionalna).
- Avtomatizacija na podlagi faze testiranja (enota, API ali uporabniški vmesnik).
- Avtomatizacija, ki temelji na različnih vrstah preskusov (več vrst preskusov).
Našteli smo tudi različna orodja, ki jih lahko uporabimo za tovrstne avtomatizirane preizkuse.
V našem prihodnjem članku bomo razpravljali o korak za korakom kako začeti avtomatizacijo preizkusov v svoji organizaciji .
PREV Vadnica # 1 | NASLEDNJA Vadnica # 3
Priporočeno branje
- Testiranje obremenitve z vadnicami HP LoadRunner
- Najboljša orodja za testiranje programske opreme 2021 (QA Test Automation Tools)
- Ali preizkuševalci zaradi avtomatizacije izgubljajo oprijem zaradi preskušanja?
- Izzivi ročnega in avtomatiziranega preskušanja
- 10-stopenjski postopek samodejnega testiranja: kako začeti samodejno testiranje v svoji organizaciji
- Ste strokovnjak za ročno ali avtomatizirano testiranje? Delo s krajšim delovnim časom za nas!
- 11 najboljših orodij za avtomatizacijo za testiranje aplikacij za Android (orodja za testiranje aplikacij za Android)
- Top 10+ najboljših knjig za testiranje programske opreme (knjige za ročno preizkušanje in avtomatizacijo)