Ekvivalentsuse partitsioneerimine tarkvara testimisel on musta kasti testimistehnika, mis aitab teil luua tõhusaid testjuhtumeid, ilma et teeksite järeleandmisi testide katvuse osas.
Selles artiklis vaatleme, mis on ekvivalentsusklassi partitsioneerimine, miks see on kasulik ning uurime mõningaid protsesse ja lähenemisviise, mida saate kasutada selle tehnika eeliste ärakasutamiseks.
Mis on ekvivalentsusklassi partitsioneerimine
tarkvara testimisel?
Kõigil tarkvaradel on konkreetsed sisendtingimused. Tarkvara testimise kontekstis kirjeldavad need sisendtingimused väärtusi või andmeid, mida testija peab kasutama oma tarkvara kvaliteedi ja funktsionaalsuse kontrollimiseks. Need sisendid võivad olla nii lihtsad kui hiirekliki, kuni teksti ja numbriteni välja.
Tarkvara testimisel uuritakse tarkvara kasutamiseks vajalikke erinevaid sisendeid ja rühmitatakse need ekvivalentsusklassidesse, st sisendite kogumitesse, millel on tarkvara käitumisele samaväärne mõju.
Kui te teate, kuidas iga sisendrühm käitub, siis ei ole vaja testida iga rühma esindajat. Seega on ekvivalentsusklasside jaotamine suurepärane võimalus aidata testijatel vähendada üleliigsete testide sagedust. Üha tihedamate tähtaegadega hüperkonkurentses tarkvaraarenduse maailmas on aja ja jõupingutuste kokkuhoid tarkvara testimise elutsüklis (STLC) ülioluline.
Lõpetuseks tasub märkida, et samaväärsuse testimine on musta kasti testimise meetod. Lühidalt öeldes tähendab see, et testijad ei pea teadma programmi sisekoodi või sisemisi toiminguid. Testid põhinevad sisenditel, väljunditel ja välistel käitumistel. Seega keskenduvad need testid eelkõige kasutaja käitumisele programmi kasutamise ajal.
1. Tarkvara testimise ekvivalentsuse partitsioneerimine lühidalt
Ekvivalentsuse jaotamine jagab tarkvara testimise sisendandmed kahte leeri: kehtivad ja kehtetud sisendid. Igas partitsioonis olevad väärtused peavad tekitama tarkvara ühesuguse käitumise. Näiteks:
- Kui osa A ühe väärtuse tingimus on tõene, siis peavad ka teised osa A väärtused olema tõesed.
- Samamoodi, kui osa A ühe väärtuse tingimused on valed, peavad ka teised osa A väärtused olema valed.
Testimise kontekstis tuleb iga partitsiooni katta vähemalt üks kord. Loogiliselt tähendab see, et kui üks kirje partitsioonis A ebaõnnestub, siis ebaõnnestuvad ka kõik teised sisendid. See protsess peaks säästma aega, sest selle asemel, et testida iga sisendit, mis asub jaotises A, saavad testijad testida ainult ühte ja ekstrapoleerida tulemused selle ühisosa põhjal.
2. Miks ekvivalentsusklassi testimine tarkvara testimisel on oluline.
Enne kui me käsitleme ekvivalentsusklassi testimise otsest kasu tarkvara testimisel, peame määratlema, miks see lähenemisviis on oluline.
Kõik testijad mõistavad, et tarkvara testimine nõuab kompromisse. Aeg ja eelarve on piiratud, mis tähendab, et testijad peavad oma ressursse maksimaalselt ära kasutama. Tarkvara testimise ekvivalentsuse jaotamine aitab meeskondadel leida tasakaalu tõhususe ja usaldusväärsuse vahel, vähendades sisendite arvu.
Ekvivalentsuse jaotamise eelised
tarkvara testimine
Tarkvara testimisel eelistavad testimismeeskonnad erinevatel põhjustel samaväärset jaotust. Siin on mõned kõige mõjuvamad.
1. Efektiivsus
Ekvivalentsuse partitsiooni testimise suur eelis seisneb selle tõhususes. Kui testijad kasutavad ekvivalentsuse partitsioneerimist, saavad nad vähendada vajalike testjuhtumite arvu, ilma et see kahjustaks testide katvust. Valides sisendjuhtumi igast ekvivalentsusklassist, võivad testijad olla kindlad, et nad mõistavad, kuidas nende tarkvara töötab erinevate sisendite puhul.
2. Lihtsus
Teine suur eelis tarkvara testimise samaväärsuse partitsioneerimisel on lihtsus. Erinevate sisendite jaotamine nii kehtivate kui ka kehtetute andmete kaupa tähendab, et testide planeerimine on palju lihtsam. Iga sisendi eraldi testimine nõuab palju dokumenteerimist ja kooskõlastamist. Selle vähendamisega ühele representatiivsele näidisele lihtsustatakse testimisprotsessi.
Täiustatud katvus
Ekvivalentsusklasside kasutamine testimisel võimaldab teil ka tõhusamalt kasutada testimisele kuluvat aega. Testi sisendite vähendamine klassidesse tähendab, et saate iga klassi põhjalikumalt testida. Selline kõikehõlmav lähenemisviis oleks ausalt öeldes võimatu, kui te testiksite iga sisendit eraldi. Võrdsuse partitsioneerimine võimaldab meeskondadel saada põhjalikult ja testida kehtivaid ja kehtetuid andmeid, äärmuslikke juhtumeid, piirväärtusi ja muud.
3. Taaskasutatavus
Esialgne aeg, mida te investeerite iga ekvivalentsusklassi loomisesse tarkvara testimisel, tasub end hiljem ära, kui te kasutate neid klasse tulevikus sisendtestide jaoks uuesti. Kuigi kõik partitsioonid ei ole tulevaste testide jaoks olulised, säästavad need, mis on, palju aega kas tulevaste projektide või isegi regressioonitestide puhul.
Ekvivalentsuse jaotamise puudused
tarkvara testimine
Kuigi samaväärne partitsioneerimine pakub mõningaid olulisi eeliseid, ei ole see iga stsenaariumi jaoks ideaalne lahendus. Uurime mõningaid selle piiranguid.
1. Sisendjärjestus
Teatud olukordades on sisendjärjestus rakenduse funktsionaalsuse testimise kriitiline osa. Seda ei saa tegelikult vähendada, kui kasutada ekvivalentsuse partitsioneerimist. Testijad peavad neid olukordi silmas pidama ja kasutama alternatiivseid meetodeid, et tagada hea katvus.
2. Keerulised sisendist sõltuvused
Kompleksne tarkvara, millel on keerulised sisendussõltuvused, on teine valdkond, kus ekvivalentsuse partitsioneerimise piirangud tulevad esile. Näiteks tarkvara, mis väljastab arvutusi erinevate sisendite põhjal. Sellise stsenaariumi korral peaksid testijad kasutama erinevaid tehnikaid, et vähendada kombineeritud plahvatust ja suurendada defektide isoleerimise tõenäosust.
Alternatiivsed lähenemisviisid, mis täiendavad
samaväärsuse kontrollimise piirangud
Kuigi ekvivalentsusjaotuse testimine on paljude testimisstsenaariumide puhul asjakohane, võib väga keerukas tarkvara, mille sisendväärtuste vahel on keerulised sõltuvused, nõuda täiendavaid täiendavaid lähenemisviise.
Kui tegemist on keerulise tarkvara testjuhtumite kirjutamisega, on nende lähenemisviiside kombinatsiooni kasutamine hea mõte.
1. Paaripõhine testimine
Paaripõhine testimine on tarkvara testimise meetod, mis testib iga sisendparameetrite paari kõiki võimalikke kombinatsioone. Selline lähenemisviis tagab, et iga parameetripaari testitakse koos vähemalt üks kord.
2. Otsuse tabeli testimine
Otsustabel aitab testijatel metoodiliselt kaardistada erinevaid sisendkombinatsioone. See on hea viis süstemaatilise katvuse tagamiseks, kui on olemas keerulised sõltuvused.
3. Riigi ülemineku testimine
Selle testimise tüübiga mõõdetakse, kuidas tarkvara erinevate sisendkombinatsioonide korral erinevate seisundite vahel üle läheb.
4. Mudelipõhine testimine
See lähenemisviis eeldab, et tarkvara sisemise loogika põhjal koostatakse mudel ja selle mudeli põhjal luuakse testjuhtumid automatiseerimisvahendi abil. See tehnika on osav keerukuse käsitlemisel ja piisava katvuse tagamisel.
Ekvivalentsusklassi jaotuse testimise näited
Parim viis ekvivalentsuse partitsioneerimise mõistmiseks on vaadata, kuidas ja kus te võiksite ekvivalentsusklassi kasutada tarkvara testimisel. Siin on mõned näited, mis aitavad teil kontseptsiooni paremini visualiseerida.
1. Ekvivalentsusklassi jaotamise testimise näide nr 1
Veebipõhine tellimisvorm on hea ekvivalentsusklassi näide tarkvara testimisel.
Oletame, et te ehitate rakendust statsionaarse varustuse jaemüüja jaoks. A4-paberipakendite jaoks on olemas tüüpiline tellimisvorm. Siin on, kuidas saate selle vormi testimiseks kasutada ekvivalentsusklasse.
Ekvivalentsusklassid:
A4-paberi kogused jäävad teatavasse vahemikku, näiteks 1 kuni 100. Niisiis, kolm klassi on järgmised:
- 1 kuni 100
- Numbrid alla 1
- Numbrid üle 100.
Testjuhtumid:
Tuleks läbi viia kolm testjuhtumit, mille oodatavad tulemused on järgmised.
- Iga number vahemikus 1 kuni 100 = töödeldud tellimus
- Numbrid alla 1 = veateade
- Numbrid üle 100 = veateade
2. Ekvivalentsuse jagamise testimise näide nr 2
Ekvivalentsusklass tarkvara testimisel võib käsitleda enamat kui ainult numbreid. Selles näites uurime, kuidas saate sama põhimõtet kasutada faili üleslaadimise portaali kontrollimiseks. Oletame, et teil on vaja testida saiti, mis nõuab kasutajatelt isikut tõendavate dokumentide üleslaadimist, kuid te saate aktsepteerida ainult teatud formaate.
Ekvivalentsusklassid:
- Toetatud dokumendid on PDF ja JPEG.
- Toetamata dokumendid on kõik muud dokumendivormingud
- Dokument puudub
Testjuhtumid:
- Testi PDF või JPEG üleslaadimisega = edukas üleslaadimine
- Testi üleslaadimisega toetamata formaadis = veateade
- Test ilma faili üleslaadimiseta = veateade
Kuidas rakendada ekvivalentsuse partitsioneerimist
tarkvara testimise lähenemisviis
Kui soovite testimisel kasutada ekvivalentsusklasse, peate kasutama strateegilist lähenemist. Siin on kasulik samm-sammuline juhend samaväärsuse jaotamise rakendamiseks tarkvara testimisel.
Samm nr 1: Sisendmuutujate kindlaksmääramine
Iga tarkvara reageerib erinevatele sisendmuutujatele. Keerulise tarkvara puhul võivad need muutujad olla väga suured. Niisiis, vaadake läbi tarkvara nõuded ja spetsifikatsioonid ning leidke kõik muutujad, mis mõjutavad tarkvara käitumist.
Mõned kõige ilmsemad sisendid hõlmavad kasutajate sisendvorme. Siiski peate oma nimekirja jaoks kaaluma laiemat valikut sisendeid. Samuti saate arvesse võtta keskkonnamuutujaid, API-kõnesid, sisemisi arvutusi jne.
Järgmisena peaksite mõistma erinevaid muutujaandmete tüüpe. Neid muutujaid saab liigitada täisarvudeks, booleteks, stringideks jne, et määratleda sobivad jaotused.
Lõpuks peate uurima sisendpiiranguid. See hõlmab selliseid asju nagu lubatud tähemärgid, määratletud vormingud ja minimaalsed/maksimaalsed väärtused.
2. samm. Kehtivate ja kehtetute partitsioonide kindlaksmääramine
Vaadake iga sisendmuutujat ja hakake neid jaotama vastavalt kehtivatele ja kehtetutele tulemustele. Need on teie ekvivalentsusklassid testimisel.
1. Kehtivad jaotised
Kehtivad jaotused võib jagada kahte klassi.
Positiivsed ekvivalentsusklassid:
Väärtused, mida teie tarkvara eeldatavasti edukalt töötleb. Näiteks tarkvara puhul, mis salvestab protsentuaalseid hindeid, kehtib kõik vahemikus 0 kuni 100.
Negatiivsed ekvivalentsusklassid:
See kategooria on mõeldud väärtuste jaoks, mis jäävad väljapoole oodatava sisendi piire, kuid mida teie tarkvara peaks käsitlema veateatega. Näiteks on protsentuaalse hinde jaoks sisestatud 110, mis sunnib tarkvara tagastama veateate “Kõik väärtused peavad olema 0 kuni 100”.
2. Ebakorrektsed partitsioonid
Need ekvivalentsusklassid sisaldavad sisendeid, mis põhjustavad vigu või ootamatut käitumist. Meie ülaltoodud näites võiks see hõlmata katseid sisestada A+ või B või sarnaseid sisendeid protsentuaalsesse hindesse. Kuigi need sisendid võivad olla tehniliselt korrektsed, jäävad need väljapoole arvulisi ootusi.
#3. Tõhusate testjuhtumite kirjutamine
Järgmisena peate koostama testjuhtumid, mis hõlmavad iga ekvivalentsuse partitsiooni vähemalt üks kord. Nagu varem artiklis mainitud, tagab see asjakohase testide katvuse.
Kõigepealt tuleb valida igas ekvivalentsuspartitsioonis representatiivsed väärtused, mis võivad hõlmata nii kehtivaid kui ka kehtetuid andmeid.
Näpunäiteid usaldusväärsete testjuhtumite kirjutamiseks
- Mõelge piirväärtustele: Veenduge, et testite oma vaheseinte piire. Minimaalne, maksimaalne, kaasav, eksklusiivne jne, kuna need valdkonnad on tugevad kandidaadid vigade jaoks. Näiteks kui teie sisendi ootused jäävad vahemikku 0 kuni 100, testige negatiivseid väärtusi ja ka selliseid numbreid nagu 101.
- Kaaluge positiivseid ja negatiivseid testimisstsenaariume nii kehtivate kui ka kehtetute testjuhtumite jaoks.
- Kombineeritud testimine on hea mõte. Kasutage mõningaid erinevaid lähenemisviise, nagu on kirjeldatud meie alternatiivsetes lähenemisviisides, et täiendada eespool esitatud samaväärsuse kontrollimise osas sätestatud piiranguid.
- dokumenteerida, miks sisendväärtused on jaotatud konkreetsetesse partitsioonidesse, ja kirjeldada selgelt iga testi eeldatav käitumine.
- Võimaluse korral kasutage visuaalseid vahendeid, et tuua oma testjuhtumitesse selgust ja objektiivsust, kasutades diagrammide või tabelite abil oma jaotuste kaardistamist.
#4. Testjuhtumite ajakava ja täitmine
Seadke oma ülesanded tähtsuse järjekorda selliste tegurite alusel nagu:
- Millistes valdkondades on kõige tõenäolisemalt defektid
- Millised stsenaariumid põhjustavad kõige tõenäolisemalt tõsiseid stsenaariume, nagu kokkupõrked või külmutamine.
Seejärel viige oma testid läbi ja registreerige väljundid ning kõik tekkivad vead. Paljude sisenditega keerukate programmide puhul saate kasutada RPA vahendeid kasutaja tegevuste jäljendamiseks.
#5. Analüüsige tulemusi
Koondage kogutud katseandmed ja analüüsige tulemusi. Mõned meetodid, mida peate kasutama:
- Vaadake iga testjuhtumit ja võrrelge tegelikke väljundeid oma oodatud väljunditega.
- Leidke kõik lahknevused ning uurige ja teatage kõikidest vigadest ja puudustest.
#6 Täiendavad nõuanded
Kuigi need nõuanded ei kehti iga stsenaariumi puhul, osutuvad need kasulikuks keerulise tarkvara testimisel.
- Otsustabelid on suurepärane võimalus visualiseerida oma ekvivalentsusjaotusi ja erinevaid sisendkombinatsioone, mida võiksite kasutada.
- Saate ühendada samaväärsed klassid, kui need näitavad peaaegu identset käitumist, optimeerides veelgi testimisprotsessi.
- Kasutage piirväärtuste testimist, et parandada defektide tuvastamist
- Võimaluse korral automatiseerige oma ekvivalentsuse partitsioneerimise testjuhtumid.
Ekvivalentsuse jaotamine ja piirväärtuste analüüs
Võrdsuse partitsioneerimine põhineb eeldusel, et iga test partitsiooni sees annab sama tulemuse. Kuigi see on paljudes olukordades tõsi, ei toimi see alati. Näiteks võivad partiisse kogemata lisatud sisendid jääda kontrollimata, mis viib vähenenud katvuse ja võimaliku tarkvara ebastabiilsuse tekkimiseni.
Selle probleemi lahenduseks on piirväärtuste testimine. See võimaldab tarkvara testimismeeskondadel keskenduda valdkondadele, mis kõige tõenäolisemalt sisaldavad riske, ja testida tarkvara selle põhjal. Lühidalt öeldes pakub see välja, et riskid tekivad kõige tõenäolisemalt teie sisendpartiide servadel või piiridel. Seetõttu saavad testijad lisaks muudele ekvivalentsusklassi testjuhtumitele kirjutada ka testjuhtumeid sisendite ülemise ja alumise piiri juures.
Ekvivalentsuse partitsioneerimine ja automatiseerimine ZAPTESTiga
Tarkvara testide automatiseerimise tööriistad, nagu ZAPTEST, võivad aidata meeskondadel automatiseerida samaväärsuse jagamist nii testide loomise kui ka täitmise ajal.
Uurime, kuidas ZAPTEST aitab teil selle kasuliku musta kasti testimise lähenemisviisi eeliseid ära kasutada.
1. Tööriistade valik
Õige tööriista valimine on oluline. Enamik testide automatiseerimise vahendeid on spetsialiseerunud kas veebi-, mobiil- või töölaua testimisele. ZAPTEST on võimeline töötama erinevate platvormide ja rakenduste testimisega, mistõttu on see kindel valik.
2. Testjuhtumite kirjutamine ja täitmine
ZAPTEST 1Script võimaldab teil skannida kasutajaliidest testide automatiseerimiseks. Lisaks saate skaneerida ka rakenduse makette, kui olete arenduse varajases etapis. Kasutades funktsiooni Scan GUI, skaneerib ZAPTEST kõik katseobjektid ja lisab need objektide loendisse.
Siit saate diagrammile lisada objekte ja koostada testimise sammud.
ZAPTEST võimaldab automatiseerida juhtumite kirjutamist lihtsa drag-and-drop-liidesega. ZAPTESTiga testjuhtumite koostamiseks ei ole vaja kodeerimisalaseid teadmisi. Nii et siit saate valida rippmenüüst asjakohase operatsiooni ja koostada testjuhtumi, mis põhineb teie liidese jaoks vajalike sisendväärtuste alusel. Seejärel saate koostada testjuhtumid iga ekvivalentsuse jaoks ja teostada oma testjuhtumid. Saate isegi testjuhtumeid uuesti kasutada ja neid Step redaktoris redigeerida, mis säästab palju aega.
3. Aruandlus ja testjuhtumite haldamine
ZAPTEST võimaldab teil testjuhtumeid paralleelselt käivitada, säästes sellega märkimisväärselt aega. See aitab teil käivitada korraga suure hulga erinevaid ekvivalentsuspartitsioone või käivitada konkreetseid testirühmi.
Tulemusi on lihtne koguda tänu üksikasjalikele ebaõnnestunud/ läbitud aruannetele, ekraanipiltidele, täitmislogidele ja iga testjuhtumiga seotud jõudlusnäitajatele.
4. Testjuhtumite hooldus
Samuti saate tänu kvaliteetsele versioonikontrollile lihtsalt jälgida ja hooldada oma testjuhtumeid. Veelgi enam, ZAPTESTi kasutajad saavad kloonida ja taaskasutada teste, et saavutada uus tõhususe tase.
ZAPTEST pakub lisaks testjuhtumite automatiseerimisele palju rohkem funktsioone. ZAPTEST pakub RPA tööriistade komplektiga 2-in-1-funktsionaalsust, ületades lõhe DevOps ja BizOps vahel tulevikus, mida iseloomustab hüperautomatsioon, kus kõik, mida saab automatiseerida, automatiseeritakse.
Lõplikud mõtted
Ekvivalentsuse partitsioneerimine on elegantne lahendus olukordades, kus testijad peavad leidma tasakaalu tõhususe ja täpsuse vahel. Mõne tarkvara puhul, mis võimaldab peaaegu lõputut hulka sisendeid, aitab ekvivalentsusklasside jaotamine meeskondadel jagada testimisandmed hallatavateks, väikesteks tükkideks, millest igaüht saab põhjalikult testida.