Razdelitev enakovrednosti pri testiranju programske opreme je tehnika testiranja “črne škatle”, ki vam pomaga zgraditi učinkovite testne primere, ne da bi pri tem ogrozili pokritost testov.
V tem članku si bomo ogledali, kaj je delitev na enakovredne razrede, zakaj je uporabna, ter preučili nekatere postopke in pristope, ki jih lahko uporabite za izkoriščanje prednosti te tehnike.
Kaj je delitev na razrede enakovrednosti
pri testiranju programske opreme?
Vsa programska oprema ima posebne vhodne pogoje. V okviru testiranja programske opreme ti vhodni pogoji opisujejo vrednosti ali podatke, ki jih mora tester uporabiti za preverjanje kakovosti in funkcionalnosti svoje programske opreme. Ti vnosi so lahko tako preprosti, kot je klik miške, pa vse do besedila in številk.
Ekvivalentna razdelitev pri testiranju programske opreme raziskuje različne vhodne podatke, ki so potrebni za uporabo programske opreme, in jih razvrsti v razrede enakovrednosti, tj. sklope vhodnih podatkov, ki bodo imeli enakovreden učinek na obnašanje programske opreme.
Če veste, kako se bo obnašala vsaka skupina vhodov, vam ni treba testirati vsakega predstavnika skupine. Zato je delitev na enakovredne razrede odličen način, ki testerjem pomaga zmanjšati pogostost odvečnih testov. V hiperkonkurenčnem svetu razvoja programske opreme z vse krajšimi roki je prihranek časa in truda v življenjskem ciklu testiranja programske opreme (STLC) ključnega pomena.
Na koncu velja omeniti, da je testiranje enakovrednosti tehnika testiranja črne škatle. Na kratko to pomeni, da preizkuševalcem ni treba poznati notranje kode ali notranjega delovanja programa. Preizkusi temeljijo na vhodih, izhodih in zunanjem vedenju. Zato so ti testi zelo osredotočeni na vedenje uporabnika med uporabo programa.
1. Razdelitev enakovrednosti testiranja programske opreme na kratko
Enakovrednostna delitev razdeli vhodne podatke za testiranje programske opreme na dva tabora: veljavne in neveljavne vhodne podatke. Vrednosti v vsakem razdelku morajo povzročiti enako obnašanje programske opreme. Na primer:
- Če je pogoj ene vrednosti v razdelku A resničen, morajo biti resnične tudi druge vrednosti v razdelku A.
- Če so pogoji ene vrednosti v razdelku A napačni, morajo biti tudi druge vrednosti v razdelku A napačne.
Pri testiranju je treba vsak razdelek pokriti vsaj enkrat. Logično to pomeni, da če en vnos v razdelku A odpove, bodo odpovedali tudi vsi drugi vhodi. Ta postopek naj bi prihranil čas, saj lahko preizkuševalci namesto vsakega vhoda, ki je v razdelku A, preizkusijo le enega in na podlagi skupnih značilnosti ekstrapolirajo rezultat.
2. Zakaj je pri testiranju programske opreme pomembno testiranje razredov enakovrednosti?
Preden se lotimo neposrednih prednosti testiranja razredov enakovrednosti pri testiranju programske opreme, moramo opredeliti, zakaj je ta pristop pomemben.
Vsi preizkuševalci se zavedajo, da testiranje programske opreme zahteva kompromise. Čas in proračun sta omejena, kar pomeni, da morajo preizkuševalci kar najbolje izkoristiti svoja sredstva. Razdelitev enakovrednosti testiranja programske opreme pomaga skupinam najti ravnovesje med učinkovitostjo in zanesljivostjo testiranja z zmanjšanjem števila vhodnih podatkov.
Prednosti enakovredne razdelitve
pri testiranju programske opreme
Enote za testiranje programske opreme so iz različnih razlogov naklonjene enakovredni razdelitvi pri testiranju programske opreme. Tukaj je nekaj najbolj prepričljivih.
1. Učinkovitost
Velika prednost testiranja enakovrednih razdelkov je v njegovi učinkovitosti. Če preizkuševalci uporabljajo enakovredno delitev, lahko zmanjšajo število testnih primerov, ki jih potrebujejo, ne da bi pri tem ogrozili pokritost testov. Z izbiro vhodnega primera iz vsakega razreda enakovrednosti so preizkuševalci lahko prepričani, da razumejo, kako njihova programska oprema deluje z različnimi vhodnimi podatki.
2. Enostavnost
Druga velika prednost enakovredne razdelitve testiranja programske opreme je preprostost. Razdelitev raznolikega nabora vhodnih podatkov na veljavne in neveljavne pomeni, da je načrtovanje testov veliko preprostejše. Testiranje vsakega vhoda posebej zahteva veliko dokumentacije in usklajevanja. Zmanjšanje na en reprezentativen primer poenostavi postopek testiranja.
Okrepljeno kritje
Z uporabo razredov enakovrednosti pri testiranju lahko tudi učinkoviteje porabite čas za testiranje. Zmanjšanje testnih vnosov na razrede pomeni, da lahko temeljiteje preizkusite vsak razred. Ta celovit pristop bi bil nemogoč, če bi testirali vsak vhod posebej. Razdelitev enakovrednosti omogoča skupinam, da temeljito preizkusijo veljavne in neveljavne podatke, robne primere, mejne vrednosti in drugo.
3. Ponovna uporabnost
Začetni čas, ki ga vložite v vzpostavitev vsakega razreda enakovrednosti pri testiranju programske opreme, se vam bo obrestoval, če boste te razrede ponovno uporabili za prihodnje vhodne teste. Čeprav vse particije ne bodo pomembne za prihodnje teste, vam bodo tiste, ki bodo, prihranile veliko časa pri prihodnjih projektih ali celo pri regresijskem testiranju.
Pomanjkljivosti enakovredne delitve
pri testiranju programske opreme
Čeprav enakovredna delitev ponuja nekaj pomembnih prednosti, ni idealna rešitev za vsak scenarij. Preučimo nekatere njegove omejitve.
1. Vrstni red vnosa
V nekaterih primerih je vrstni red vnosa ključni del testiranja funkcionalnosti aplikacije. Tega ni mogoče zmanjšati z uporabo enakovredne razdelitve. Testerji morajo biti pozorni na te situacije in uporabiti alternativne tehnike za zagotavljanje dobrega pokritja.
2. Kompleksne vhodne odvisnosti
Kompleksna programska oprema z zapletenimi vhodnimi odvisnostmi je še eno področje, kjer se pokažejo omejitve enakovredne delitve. Na primer programska oprema, ki na podlagi različnih vhodnih podatkov pripravi izračune. V tem primeru bi morali preizkuševalci uporabiti različne tehnike za zmanjšanje kombinatorične eksplozije in povečanje verjetnosti za odkrivanje napak.
Alternativni pristopi za dopolnitev
omejitve preskušanja enakovrednosti
Medtem ko je testiranje enakovrednih razdelkov primerno za številne testne scenarije, lahko zelo zapletena programska oprema z zapletenimi odvisnostmi med vhodnimi vrednostmi zahteva dodatne dopolnilne pristope.
Pri pisanju testnih primerov za kompleksno programsko opremo je dobro uporabiti kombinacijo teh pristopov.
1. Testiranje v parih
Parno testiranje je tehnika testiranja programske opreme, ki testira vse možne kombinacije vsakega para vhodnih parametrov. Ta pristop zagotavlja, da se vsak par parametrov vsaj enkrat preizkusi skupaj.
2. Preizkušanje odločitvene tabele
Odločitvena tabela testerjem pomaga metodično načrtovati različne kombinacije vnosov. To je dober način za zagotavljanje sistematične pokritosti, kadar obstajajo zapletene odvisnosti.
3. Preizkušanje prehodov med stanji
Ta vrsta testiranja meri, kako programska oprema prehaja med različnimi stanji kot odziv na različne kombinacije vhodnih podatkov.
4. Testiranje na podlagi modela
Ta pristop zahteva izdelavo modela na podlagi notranje logike programske opreme in uporabo orodja za avtomatizacijo za ustvarjanje testnih primerov na podlagi tega modela. S to tehniko lahko obvladate zapletenost in zagotovite ustrezno pokritost.
Primeri testiranja razdelitve na ekvivalenčne razrede
Najboljši način za razumevanje enakovredne razdelitve je, da si ogledate, kako in kje lahko uporabite razred enakovrednosti pri testiranju programske opreme. V nadaljevanju je nekaj primerov, ki vam bodo pomagali pri lažji predstavitvi koncepta.
1. Primer preizkušanja razdelitve na ekvivalenčne razrede #1
Spletni obrazec za naročilo je dober primer razreda enakovrednosti pri testiranju programske opreme.
Recimo, da izdelujete aplikacijo za spletnega prodajalca stacionarne opreme. Obstaja tipičen obrazec za naročilo za šopke papirja A4. Tukaj je prikazano, kako lahko za preverjanje te oblike uporabite razrede enakovrednosti.
Ekvivalenčni razredi:
Količine papirja A4 so v določenem razponu, na primer od 1 do 100. Trije razredi so naslednji:
- 1 do 100
- Številke pod 1
- Številke nad 100.
Testni primeri:
Izvesti je treba tri testne primere z naslednjimi pričakovanimi rezultati
- Katera koli številka med 1 in 100 = obdelano naročilo
- Številke pod 1 = sporočilo o napaki
- Številke nad 100 = sporočilo o napaki
2. Primer testiranja enakovredne razdelitve #2
Razred enakovrednosti pri testiranju programske opreme lahko obravnava več kot le številke. V tem primeru bomo raziskali, kako lahko isto načelo uporabite za preverjanje portala za prenos datotek. Recimo, da morate testirati za spletno mesto, ki od uporabnikov zahteva nalaganje osebnih dokumentov, vendar lahko sprejme le določene formate.
Ekvivalenčni razredi:
- Podprti dokumenti so PDF in JPEG.
- nepodprti dokumenti so vsi drugi formati dokumentov
- Ni dokumenta
Testni primeri:
- Preizkus z nalaganjem PDF ali JPEG = uspešno nalaganje
- Preizkus z nalaganjem nepodprtega formata = sporočilo o napaki
- Test brez nalaganja datotek = sporočilo o napaki
Kako izvesti enakovredno delitev
pristop k testiranju programske opreme
Če želite pri testiranju uporabljati ekvivalenčne razrede, morate ubrati strateški pristop. Tukaj je uporaben vodnik po korakih za izvajanje enakovredne razdelitve pri testiranju programske opreme.
Korak #1: Določite vhodne spremenljivke
Vsaka programska oprema se odziva na različne vhodne spremenljivke. Pri zapleteni programski opremi je teh spremenljivk lahko ogromno. Preglejte zahteve in specifikacije programske opreme ter natančno določite vse spremenljivke, ki vplivajo na obnašanje programske opreme.
Med najbolj očitne vhodne podatke spadajo obrazci za vnos podatkov s strani uporabnika. Vendar morate upoštevati širši nabor podatkov za svoj seznam. Upoštevate lahko tudi okoljske spremenljivke, klice API, notranje izračune itd.
Nato morate razumeti različne vrste spremenljivih podatkov. Te spremenljivke lahko kategorizirate kot celoštevilske, logične, nizovne itd. in tako določite ustrezne razdelke.
Na koncu morate raziskati še vhodne omejitve. To so na primer dovoljeni znaki, opredeljeni formati ter najmanjše/najvišje vrednosti.
Korak št. 2. Določanje veljavnih in neveljavnih razdelkov
Oglejte si vsako vhodno spremenljivko in jo razdelite glede na veljavne in neveljavne rezultate. To bodo vaši ekvivalenčni razredi pri testiranju.
1. Veljavni predeli
Veljavne razdelke lahko razdelimo v dva razreda.
Pozitivni ekvivalenčni razredi:
Vrednosti, za katere pričakujete, da jih bo vaša programska oprema uspešno obdelala. Na primer, za programsko opremo, ki beleži ocene v odstotkih, velja vse od 0 do 100.
Negativni ekvivalenčni razredi:
Ta kategorija je namenjena vrednostim, ki so zunaj meja pričakovanega vnosa, vendar jih mora programska oprema obravnavati s sporočilom o napaki. Na primer, vnos je 110 za odstotno oceno, zaradi česar programska oprema vrne sporočilo o napaki: “Vse vrednosti morajo biti od 0 do 100”.
2. Neveljavne particije
Ti ekvivalenčni razredi bodo vključevali vhode, ki bodo sprožili napake ali nepričakovano obnašanje. V zgornjem primeru bi to lahko vključevalo poskuse vnosa ocene A+ ali B ali podobnih vnosov v odstotno oceno. Čeprav so ti vhodni podatki lahko tehnično pravilni, so zunaj številčnih pričakovanj.
#3. Pisanje učinkovitih testnih primerov
Nato morate oblikovati testne primere, ki bodo vsaj enkrat pokrili vsak enakovreden razdelek. Kot smo že omenili v članku, to zagotavlja ustrezno pokritost s testi.
Najprej morate izbrati reprezentativne vrednosti znotraj vsakega ekvivalenčnega predela, ki lahko zajemajo tako veljavne kot neveljavne podatke.
Nasveti za pisanje zanesljivih testnih primerov
- Razmislite o mejnih vrednostih: Preizkusite meje svojih pregrad. Minimalno, maksimalno, vključujoče, izključujoče itd., saj so ta področja zelo primerna za napake. Če na primer pričakujete, da bodo vhodni podatki med 0 in 100, preverite negativne vrednosti in števila, kot je 101.
- Upoštevajte pozitivne in negativne testne scenarije za veljavne in neveljavne testne primere.
- Kombinirano testiranje je dobra zamisel. Uporabite nekaj različnih pristopov, kot je opisano v naših alternativnih pristopih za dopolnitev omejitev iz zgornjega poglavja o testiranju enakovrednosti.
- Dokumentirajte razloge za razdelitev vhodnih vrednosti na določene razdelke in jasno opišite pričakovano obnašanje vsakega testa.
- Če je mogoče, uporabite vizualna orodja, da v testne primere vnesete občutek jasnosti in objektivnosti, in sicer z diagrami ali tabelami, v katerih so prikazane razdelitve.
#4. Načrtovanje in izvajanje testnih primerov
Prednostno razvrstite naloge glede na dejavnike, kot so:
- Katera področja imajo največjo verjetnost napak
- Kateri scenariji najverjetneje povzročijo hude scenarije, na primer sesutje ali zamrznitev.
Nato izvedite teste in zabeležite rezultate ter morebitne napake. Pri zapletenih programih z veliko vhodnimi podatki lahko uporabite orodja RPA, ki posnemajo dejanja uporabnikov.
#5. Analizirajte rezultate
Združite zbrane podatke o preskusih in analizirajte rezultate. Nekatere metode, ki jih morate uporabiti, so:
- Oglejte si vsak testni primer in primerjajte dejanske rezultate s pričakovanimi.
- Poiščite morebitna neskladja ter raziščite in prijavite vse napake in pomanjkljivosti.
#6 Dodatni nasveti
Čeprav ti nasveti ne bodo uporabni v vseh primerih, se bodo izkazali za koristne pri kompleksnem testiranju programske opreme.
- Odločitvene tabele so odličen način za vizualizacijo enakovrednih razdelkov in različnih vhodnih kombinacij, ki jih boste morda želeli uporabiti.
- Enakovredne razrede lahko združite, če se obnašajo skoraj enako, s čimer dodatno optimizirate postopek testiranja.
- Uporaba testiranja mejnih vrednosti za boljše odkrivanje napak
- Če je mogoče, avtomatizirajte testne primere delitve enakovrednosti.
Ekvivalentna razdelitev in analiza mejnih vrednosti
Enakovrednostno razdeljevanje temelji na predpostavki, da bo vsak test znotraj razdelitve dal enak rezultat. To je sicer res v številnih primerih, vendar ne deluje vedno. Na primer, vsi vhodi, ki so bili pomotoma dodani v razdelek, lahko ostanejo nepreverjeni, kar vodi do zmanjšane pokritosti in morebitne nestabilnosti programske opreme.
Rešitev tega vprašanja je testiranje mejnih vrednosti. Ekipam za testiranje programske opreme omogoča, da se osredotočijo na področja, ki najverjetneje vsebujejo tveganja, in na tej podlagi testirajo programsko opremo. Na kratko, predlaga, da se tveganja najverjetneje pojavljajo na robovih ali mejah vaših vhodnih razdelkov. Zato lahko preizkuševalci poleg drugih testnih primerov razreda enakovrednosti napišejo tudi testne primere na zgornji in spodnji meji vhodov.
Razdelitev enakovrednosti in avtomatizacija s programom ZAPTEST
Orodja za avtomatizacijo testiranja programske opreme, kot je ZAPTEST, lahko ekipam pomagajo avtomatizirati delitev enakovrednosti med ustvarjanjem in izvajanjem testov.
Raziščimo, kako vam lahko ZAPTEST pomaga sprostiti prednosti tega uporabnega pristopa testiranja črne škatle.
1. Izbira orodja
Pomembno je izbrati pravo orodje za delo. Večina orodij za avtomatizacijo testiranja je specializirana za spletno, mobilno ali namizno testiranje. ZAPTEST lahko izvaja testiranje na različnih platformah in aplikacijah, zato je zanesljiva izbira.
2. Pisanje in izvajanje testnih primerov
ZAPTEST 1Script vam omogoča skeniranje uporabniškega vmesnika za izdelavo avtomatizacije testiranja. Poleg tega lahko skenirate tudi makete aplikacij, če ste v zgodnji fazi razvoja. Z uporabo funkcije Scan GUI bo ZAPTEST pregledal vse testne predmete in jih dodal na seznam predmetov.
Od tu lahko v diagram dodajate predmete in sestavljate korake preskusa.
ZAPTEST omogoča avtomatizacijo pisanja primerov s preprostim vmesnikom povleci in spusti. Za izdelavo testnih primerov s programom ZAPTEST ne potrebujete strokovnega znanja o kodiranju. Od tu lahko s spustne metode izberete ustrezno operacijo in sestavite testni primer na podlagi vhodnih vrednosti, ki so potrebne za vaš vmesnik. Nato lahko sestavite testne primere za vsako ekvivalenco in jih izvedete. Testne primere lahko celo ponovno uporabite in jih urejate v urejevalniku Korak, s čimer prihranite veliko časa.
3. Poročanje in upravljanje testnih primerov
ZAPTEST vam omogoča vzporedno izvajanje testnih primerov, kar prihrani veliko časa. To vam lahko pomaga pri izvajanju velikega števila različnih enakovrednih razdelkov naenkrat ali pri izvajanju določenih skupin testov.
Rezultate je enostavno zbrati zaradi podrobnih poročil o neuspelih/prejetih testih, posnetkov zaslona, dnevnikov izvajanja in metrik uspešnosti, povezanih z vsakim testnim primerom.
4. Vzdrževanje testnih primerov
S kakovostnim nadzorom različic lahko preprosto spremljate in vzdržujete svoje testne primere. Poleg tega lahko uporabniki ZAPTEST-a klonirajo in ponovno uporabijo teste ter tako dosežejo novo raven učinkovitosti.
ZAPTEST poleg avtomatizacije testnih primerov ponuja še veliko več funkcionalnosti. ZAPTEST z naborom orodij RPA ponuja funkcionalnost 2 v 1, s čimer premošča vrzel med DevOps in BizOps v prihodnosti, ki jo zaznamuje hiperavtomatizacija, kjer bo avtomatizirano vse, kar je mogoče avtomatizirati.
Zaključne misli
Razdelitev enakovrednosti je elegantna rešitev za primere, ko morajo preizkuševalci najti ravnovesje med učinkovitostjo in natančnostjo. Ker nekatera programska oprema omogoča skoraj neskončno število vnosov, razdelitev na enakovredne razrede pomaga ekipam razdeliti podatke za testiranje na obvladljive, velike dele, ki jih je mogoče temeljito preizkusiti.