Rozdelenie ekvivalencie pri testovaní softvéru je technika testovania čiernej skrinky, ktorá vám pomôže vytvoriť efektívne testovacie prípady bez toho, aby ste museli robiť kompromisy v pokrytí testov.
V tomto článku sa pozrieme na to, čo je rozdelenie tried ekvivalencie, prečo je užitočné, a preskúmame niektoré postupy a prístupy, ktoré môžete použiť na využitie výhod tejto techniky.
Čo je rozdelenie triedy ekvivalencie
v testovaní softvéru?
Všetok softvér má určité vstupné podmienky. V kontexte testovania softvéru tieto vstupné podmienky opisujú hodnoty alebo údaje, ktoré musí tester použiť na overenie kvality a funkčnosti svojho softvéru. Tieto vstupy môžu byť tak jednoduché, ako je kliknutie myšou, až po text a čísla.
Ekvivalentné rozdelenie pri testovaní softvéru skúma rôzne vstupy potrebné na používanie softvéru a zoskupuje ich do tried ekvivalencie, t. j. množín vstupov, ktoré budú mať ekvivalentný vplyv na správanie softvéru.
Ak viete, ako sa bude správať každá skupina vstupov, nemusíte testovať každého zástupcu skupiny. Rozdelenie tried ekvivalencie je preto skvelým spôsobom, ako pomôcť testerom znížiť frekvenciu nadbytočných testov. V hyperkonkurenčnom svete vývoja softvéru s čoraz prísnejšími termínmi je úspora času a úsilia v životnom cykle testovania softvéru (STLC) kľúčová.
Na záver je potrebné poznamenať, že testovanie ekvivalencie je technika testovania čiernej skrinky. V skratke to znamená, že testeri nemusia poznať vnútorný kód programu ani jeho vnútorné fungovanie. Testy sú založené na vstupoch, výstupoch a vonkajšom správaní. Tieto testy sa preto vo veľkej miere zameriavajú na správanie používateľov počas používania programu.
1. Rozdelenie ekvivalencie testovania softvéru v kocke
Rozdelenie podľa ekvivalencie rozdeľuje vstupné údaje testovania softvéru na dva tábory: platné a neplatné vstupy. Hodnoty v rámci každého oddielu musia spôsobiť, že softvér sa bude správať rovnako. Napríklad:
- Ak platí podmienka jednej hodnoty v oblasti A, musia platiť aj ostatné hodnoty v oblasti A.
- Podobne, ak sú podmienky jednej hodnoty v oblasti A nepravdivé, ostatné hodnoty v oblasti A musia byť tiež nepravdivé.
V kontexte testovania musí byť každý oddiel pokrytý aspoň raz. Logicky to znamená, že ak zlyhá jedna položka v oblasti A, zlyhajú aj všetky ostatné vstupy. Tento proces by mal ušetriť čas, pretože namiesto testovania každého vstupu, ktorý sa nachádza v oblasti A, môžu testeri otestovať len jeden a extrapolovať výsledok na základe jeho spoločných znakov.
2. Prečo je testovanie tried ekvivalencie pri testovaní softvéru dôležité
Skôr ako sa dostaneme k priamym výhodám testovania tried ekvivalencie pri testovaní softvéru, musíme definovať, prečo je tento prístup dôležitý.
Všetci testeri si uvedomujú, že testovanie softvéru si vyžaduje kompromisy. Čas a rozpočty sú obmedzené, čo znamená, že testeri musia svoje zdroje využiť čo najlepšie. Rozdelenie ekvivalencie testovania softvéru pomáha tímom nájsť rovnováhu medzi efektívnosťou a spoľahlivosťou pri testovaní znížením počtu vstupov.
Výhody rozdelenia na základe ekvivalencie
v testovaní softvéru
Rovnaké rozdelenie v testovaní softvéru uprednostňujú testovacie tímy z rôznych dôvodov. Tu sú niektoré z najpresvedčivejších.
1. Účinnosť
Veľká výhoda testovania rozdelenia ekvivalencie spočíva v jeho účinnosti. Ak testeri používajú rozdelenie na základe ekvivalencie, môžu znížiť počet potrebných testovacích prípadov bez toho, aby sa znížilo pokrytie testov. Výberom vstupného prípadu z každej triedy ekvivalencie si testeri môžu byť istí, že rozumejú tomu, ako ich softvér funguje s rôznymi vstupmi.
2. Jednoduchosť
Ďalšou veľkou výhodou rozdelenia ekvivalencie testovania softvéru je jednoduchosť. Rozdelenie rôznorodého súboru vstupov na platné a neplatné údaje znamená, že plánovanie testov je oveľa jednoduchšie. Testovanie každého vstupu osobitne si vyžaduje veľa dokumentácie a koordinácie. Zníženie tohto počtu na jeden reprezentatívny príklad zjednodušuje proces testovania.
Rozšírené pokrytie
Používanie tried ekvivalencie pri testovaní tiež umožňuje efektívnejšie využívať čas potrebný na testovanie. Zredukovanie testovacích vstupov na triedy znamená, že môžete dôkladnejšie otestovať každú triedu. Tento komplexný prístup by bol úprimne nemožný, ak by ste testovali každý vstup samostatne. Rozdelenie ekvivalencie umožňuje tímom dôkladne otestovať platné a neplatné údaje, okrajové prípady, hraničné hodnoty a ďalšie.
3. Opätovná použiteľnosť
Počiatočný čas, ktorý investujete do vytvorenia každej triedy ekvivalencie pri testovaní softvéru, sa vám neskôr vráti, ak tieto triedy opätovne použijete pre budúce vstupné testy. Hoci nie všetky oddiely budú relevantné pre budúce testy, tie, ktoré sú, vám ušetria veľa času buď pri budúcich projektoch, alebo dokonca pri regresnom testovaní.
Nevýhody rozdelenia ekvivalencie
v testovaní softvéru
Hoci rozdelenie na základe ekvivalencie ponúka niektoré významné výhody, nie je to ideálne riešenie pre každý scenár. Preskúmame niektoré jeho obmedzenia.
1. Vstupné poradie
V určitých situáciách je poradie vstupov kritickou súčasťou testovania funkčnosti aplikácie. To nie je niečo, čo by ste mohli znížiť pomocou rozdelenia ekvivalencie. Testeri musia mať tieto situácie na pamäti a používať alternatívne techniky na zabezpečenie dobrého pokrytia.
2. Komplexné vstupné závislosti
Komplexný softvér so zložitými vstupnými závislosťami je ďalšou oblasťou, v ktorej sa prejavujú obmedzenia delenia ekvivalencie. Ide napríklad o softvér, ktorý na základe rôznych vstupov poskytuje výpočty. V tomto scenári by testeri museli použiť rôzne techniky na zníženie kombinatorickej explózie a zvýšenie pravdepodobnosti izolácie chýb.
Alternatívne prístupy na doplnenie
obmedzenia testovania rovnocennosti
Zatiaľ čo testovanie rozdelenia ekvivalencie je vhodné pre mnohé testovacie scenáre, veľmi zložitý softvér so zložitými závislosťami medzi vstupnými hodnotami si môže vyžadovať ďalšie doplnkové prístupy.
Pri písaní testovacích prípadov pre komplexný softvér je vhodné použiť kombináciu týchto prístupov.
1. Párové testovanie
Párové testovanie je technika testovania softvéru, ktorá testuje všetky možné kombinácie každej dvojice vstupných parametrov. Tento prístup zabezpečuje, že každá dvojica parametrov sa testuje spoločne aspoň raz.
2. Testovanie rozhodovacej tabuľky
Rozhodovacia tabuľka pomáha testerom metodicky mapovať rôzne kombinácie vstupov. Je to dobrý spôsob, ako zabezpečiť systematické pokrytie v prípade existencie komplexných závislostí.
3. Testovanie prechodov medzi stavmi
Tento typ testovania meria, ako softvér prechádza medzi rôznymi stavmi v reakcii na rôzne kombinácie vstupov.
4. Testovanie na základe modelu
Tento prístup si vyžaduje vytvorenie modelu založeného na vnútornej logike softvéru a použitie automatizačného nástroja na vytvorenie testovacích prípadov na základe tohto modelu. Táto technika je vhodná na zvládnutie zložitosti a zabezpečenie primeraného pokrytia.
Príklady testovania rozdelenia tried ekvivalencie
Najlepší spôsob, ako pochopiť rozdelenie ekvivalencie, je pozrieť sa na to, ako a kde môžete použiť triedu ekvivalencie pri testovaní softvéru. Tu je niekoľko príkladov, ktoré vám pomôžu lepšie si predstaviť tento koncept.
1. Príklad testovania rozdelenia tried ekvivalencie č. 1
Online objednávkový formulár je dobrým príkladom triedy ekvivalencie pri testovaní softvéru.
Povedzme, že vytvárate aplikáciu pre online predajcu stacionárnych zariadení. K dispozícii je typický objednávkový formulár na balíky papiera formátu A4. Tu je uvedený spôsob, ako môžete použiť triedy ekvivalencie na testovanie tohto formulára.
Triedy ekvivalencie:
Množstvo papiera A4 sa pohybuje v určitom rozsahu, napríklad od 1 do 100. Ide o tieto tri triedy:
- 1 až 100
- Čísla pod 1
- Čísla nad 100.
Testovacie prípady:
Mali by sa vykonať tri testovacie prípady s týmito očakávanými výsledkami
- Akékoľvek číslo od 1 do 100 = spracovaná objednávka
- Čísla pod 1 = chybová správa
- Čísla nad 100 = chybová správa
2. Príklad testovania rozdelenia ekvivalencie č. 2
Trieda ekvivalencie v testovaní softvéru sa môže zaoberať nielen číslami. V tomto príklade preskúmame, ako môžete rovnaký princíp použiť na overenie portálu na odosielanie súborov. Povedzme, že potrebujete otestovať lokalitu, ktorá od používateľov vyžaduje, aby nahrávali doklady totožnosti, ale môžete akceptovať len určité formáty.
Triedy ekvivalencie:
- Podporované dokumenty sú PDF a JPEG.
- Nepodporované dokumenty sú všetky ostatné formáty dokumentov
- Žiadny dokument
Testovacie prípady:
- Testovanie nahraním PDF alebo JPEG = úspešné nahratie
- Test nahrávaním nepodporovaného formátu = chybové hlásenie
- Test bez nahrávania súborov = chybová správa
Ako implementovať rozdelenie ekvivalencie
prístup k testovaniu softvéru
Ak chcete pri testovaní používať triedy ekvivalencie, musíte zvoliť strategický prístup. Tu je užitočný sprievodca krok za krokom na implementáciu rozdelenia ekvivalencie pri testovaní softvéru.
Krok č. 1: Identifikácia vstupných premenných
Každý softvér reaguje na rôzne vstupné premenné. V prípade zložitého softvéru môžu byť tieto premenné obrovské. Prejdite si teda požiadavky a špecifikácie softvéru a určte všetky premenné, ktoré majú vplyv na správanie softvéru.
Medzi najzrejmejšie vstupy budú patriť vstupné formuláre používateľa. Musíte však zvážiť širší rozsah vstupov pre váš zoznam. Môžete tiež zvážiť premenné prostredia, volania API, interné výpočty atď.
Ďalej by ste mali porozumieť rôznym typom premenných údajov. Tieto premenné môžete kategorizovať ako celočíselné, logické, reťazcové atď., aby ste mohli definovať príslušné oddiely.
Nakoniec je potrebné preskúmať vstupné obmedzenia. Ide napríklad o povolené znaky, definované formáty a minimálne/maximálne hodnoty.
Krok č. 2. Určenie platných a neplatných oddielov
Pozrite sa na každú vstupnú premennú a začnite ju rozdeľovať podľa platných a neplatných výsledkov. Toto budú vaše triedy ekvivalencie pri testovaní.
1. Platné oddiely
Platné oddiely možno rozdeliť do dvoch tried.
Pozitívne triedy ekvivalencie:
Hodnoty, ktoré má váš softvér úspešne spracovať. Napríklad v prípade softvéru, ktorý zaznamenáva percentuálne známky, je platná akákoľvek hodnota od 0 do 100.
Záporné triedy ekvivalencie:
Táto kategória bude určená pre hodnoty, ktoré sú mimo rámca očakávaného vstupu, ale ktoré by váš softvér mal spracovať pomocou chybovej správy. Napríklad vstupná hodnota je 110 pre percentuálnu známku, čo spôsobí, že softvér vráti chybové hlásenie: “Všetky hodnoty musia byť 0 až 100”.
2. Neplatné oddiely
Tieto triedy ekvivalencie budú obsahovať vstupy, ktoré spôsobia chyby alebo neočakávané správanie. V našom príklade by to mohlo zahŕňať pokusy o zadanie A+ alebo B alebo podobných vstupov do percentuálneho hodnotenia. Hoci tieto vstupy môžu byť technicky správne, sú mimo číselných očakávaní.
#3. Písanie efektívnych testovacích prípadov
Ďalej je potrebné navrhnúť testovacie prípady, ktoré aspoň raz pokryjú každú oblasť ekvivalencie. Ako už bolo spomenuté v predchádzajúcom článku, zabezpečuje to primerané pokrytie testami.
Najskôr musíte vybrať reprezentatívne hodnoty v rámci každej oblasti ekvivalencie, ktoré môžu pokrývať platné aj neplatné údaje.
Tipy na písanie spoľahlivých testovacích prípadov
- Premýšľajte o hraničných hodnotách: Uistite sa, že ste otestovali hranice svojich oddielov. Minimálne, maximálne, inkluzívne, exkluzívne atď., pretože tieto oblasti sú silnými kandidátmi na chyby. Ak sú napríklad vaše vstupné očakávania v rozmedzí od 0 do 100, testujte záporné hodnoty, ako aj čísla ako 101.
- Zvážte pozitívne a negatívne testovacie scenáre pre platné aj neplatné testovacie prípady.
- Kombinované testovanie je dobrý nápad. Použite niekoľko rôznych prístupov, ako je uvedené v našich alternatívnych prístupoch na doplnenie obmedzení uvedených v časti o testovaní rovnocennosti.
- zdokumentujte dôvody, prečo boli vstupné hodnoty rozdelené do konkrétnych oblastí, a jasne načrtnite očakávané správanie každého testu
- Ak je to možné, použite vizuálne nástroje, aby ste do svojich testovacích prípadov vniesli pocit jasnosti a objektívnosti pomocou diagramov alebo tabuliek na zmapovanie rozdelenia.
#4. Naplánujte a vykonajte svoje testovacie prípady
Stanovte si priority úloh na základe faktorov, ako sú:
- Ktoré oblasti majú najväčšiu pravdepodobnosť výskytu chýb
- Ktoré scenáre s najväčšou pravdepodobnosťou spôsobia závažné scenáre, ako sú pády alebo zamrznutia.
Potom vykonajte testy a zaznamenajte ich výstupy a prípadné chyby. V prípade zložitých programov s množstvom vstupov môžete použiť nástroje RPA na napodobňovanie činností používateľa.
#5. Analyzujte výsledky
Zhromaždite zozbierané údaje z testov a analyzujte výsledky. Niektoré metódy, ktoré je potrebné použiť, sú:
- Pozrite sa na každý testovací prípad a porovnajte skutočné výstupy s očakávanými výstupmi
- Zistiť akékoľvek nezrovnalosti, preskúmať a nahlásiť chyby a nedostatky.
#6 Ďalšie tipy
Hoci tieto tipy neplatia pre každý scenár, budú užitočné pri komplexnom testovaní softvéru.
- Rozhodovacie tabuľky sú vynikajúcim spôsobom, ako vizualizovať rozdelenia ekvivalencie a rôzne kombinácie vstupov, ktoré možno budete chcieť použiť.
- Ak triedy vykazujú takmer identické správanie, môžete ich zlúčiť, čím sa ďalej optimalizuje proces testovania.
- Používanie testovania hraničných hodnôt na zlepšenie detekcie chýb
- Ak je to možné, automatizujte testovacie prípady rozdelenia ekvivalencie
Rozdelenie ekvivalencie a analýza hraničných hodnôt
Ekvivalenčné rozdelenie je založené na predpoklade, že každý test v rámci rozdelenia prinesie rovnaký výsledok. Hoci je to v mnohých situáciách pravda, nie vždy to funguje. Napríklad všetky vstupy, ktoré boli do oddielu pridané omylom, môžu zostať neskontrolované, čo môže viesť k zníženiu pokrytia a potenciálnej nestabilite softvéru.
Riešením tohto problému je testovanie hraničných hodnôt. Umožňuje tímom testujúcim softvér zamerať sa na oblasti, ktoré s najväčšou pravdepodobnosťou obsahujú riziká, a na základe toho testovať softvér. Stručne povedané, navrhuje, že riziká sa s najväčšou pravdepodobnosťou vyskytujú na okrajoch alebo hraniciach vašich vstupných oblastí. Preto môžu testeri okrem iných testovacích prípadov triedy ekvivalencie písať aj testovacie prípady na hornej a dolnej hranici vstupov.
Rozdelenie ekvivalencie a automatizácia pomocou ZAPTEST
Nástroje na automatizáciu testovania softvéru, ako napríklad ZAPTEST, môžu tímom pomôcť automatizovať rozdelenie ekvivalencie počas vytvárania aj vykonávania testov.
Poďme preskúmať, ako vám ZAPTEST môže pomôcť odhaliť výhody tohto užitočného prístupu k testovaniu čiernej skrinky.
1. Výber nástroja
Dôležitý je výber správneho nástroja na danú prácu. Väčšina nástrojov na automatizáciu testovania sa špecializuje buď na testovanie webu, mobilných zariadení alebo počítačov. ZAPTEST dokáže testovať rôzne platformy a aplikácie, čo z neho robí spoľahlivú voľbu.
2. Napísať a vykonať testovacie prípady
ZAPTEST 1Script vám umožňuje skenovať používateľské rozhranie na vytvorenie automatizácie testovania. Okrem toho môžete skenovať aj makety aplikácií, ak ste v počiatočnej fáze vývoja. Pomocou funkcie Scan GUI (Skenovať grafické rozhranie) ZAPTEST naskenuje všetky testovacie objekty a pridá ich do zoznamu objektov.
Odtiaľto môžete do diagramu pridávať objekty a vytvárať kroky testovania.
ZAPTEST vám umožňuje automatizovať písanie prípadov pomocou jednoduchého rozhrania drag-and-drop. Na vytváranie testovacích prípadov pomocou ZAPTEST-u nepotrebujete odborné znalosti kódovania. Odtiaľto môžete vybrať príslušnú operáciu z rozbaľovacej metódy a vytvoriť testovací prípad na základe vstupných hodnôt potrebných pre vaše rozhranie. Potom môžete vytvoriť testovacie prípady pre každú ekvivalenciu a vykonať ich. Môžete dokonca opakovane používať testovacie prípady a upravovať ich v editore Step, čím ušetríte veľa času.
3. Vykazovanie a správa testovacích prípadov
ZAPTEST umožňuje paralelné spúšťanie testovacích prípadov, čo šetrí značný čas. To vám môže pomôcť spustiť naraz veľký počet rôznych oddielov ekvivalencie alebo spustiť určité skupiny testov.
Výsledky sa dajú ľahko získať vďaka podrobným správam o neúspešných/úspešných testoch, snímkam obrazovky, protokolom o vykonávaní a metrikám výkonu súvisiacim s každým testovacím prípadom.
4. Údržba testovacích prípadov
Testovacie prípady môžete tiež jednoducho sledovať a udržiavať vďaka možnostiam kvalitnej kontroly verzií. Používatelia ZAPTEST-u môžu navyše klonovať a opakovane používať testy, čím dosiahnu novú úroveň efektivity.
ZAPTEST ponúka okrem automatizácie testovacích prípadov oveľa viac funkcií. Vďaka súprave nástrojov RPA ponúka ZAPTEST funkcie 2 v 1, ktoré preklenujú priepasť medzi DevOps a BizOps v budúcnosti poznačenej hyperautomatizáciou, kde všetko, čo sa dá automatizovať, bude automatizované.
Záverečné myšlienky
Rozdelenie ekvivalencie je elegantným riešením v situáciách, keď testeri musia nájsť rovnováhu medzi efektívnosťou a presnosťou. Keďže niektoré softvéry umožňujú takmer nekonečný rozsah vstupov, rozdelenie na triedy ekvivalencie pomáha tímom rozdeliť testovacie údaje na zvládnuteľné, veľké kúsky, z ktorých každý možno dôkladne otestovať.