Az ekvivalencia partícionálás a szoftvertesztelésben egy fekete dobozos tesztelési technika, amely segít hatékony teszteseteket készíteni anélkül, hogy a tesztlefedettséget veszélyeztetné.
Ebben a cikkben megvizsgáljuk, hogy mi is az ekvivalenciaosztály-felosztás, miért hasznos, és megvizsgálunk néhány olyan eljárást és megközelítést, amelyekkel kiaknázhatja ennek a technikának az előnyeit.
Mi az ekvivalenciaosztály-felosztás
a szoftvertesztelésben?
Minden szoftver bizonyos bemeneti feltételekkel rendelkezik. A szoftverteszteléssel összefüggésben ezek a bemeneti feltételek azokat az értékeket vagy adatokat írják le, amelyeket a tesztelőnek a szoftver minőségének és funkcionalitásának ellenőrzéséhez kell használnia. Ezek a bemenetek lehetnek olyan egyszerűek, mint egy egérkattintás, egészen a szövegig és számokig.
A szoftvertesztelésben az egyenértékű felosztás feltárja a szoftver használatához szükséges különböző bemeneteket, és azokat ekvivalenciaosztályokba csoportosítja, azaz olyan bemenetek halmazaiba, amelyek egyenértékű hatást gyakorolnak a szoftver viselkedésére.
Ha tudja, hogy a bemenetek egyes csoportjai hogyan fognak viselkedni, akkor nem kell a csoport minden egyes képviselőjét tesztelnie. Az ekvivalenciaosztályok felosztása nagyszerű módja annak, hogy a tesztelők csökkenthessék a felesleges tesztek gyakoriságát. Az egyre szorosabb határidőkkel járó, hiper-versenyképes szoftverfejlesztés világában a szoftvertesztelési életciklus (STLC) során az idő- és fáradságmegtakarítás kulcsfontosságú.
Végezetül érdemes megjegyezni, hogy az ekvivalencia tesztelés egy black-box tesztelési technika. Röviden ez azt jelenti, hogy a tesztelőknek nem kell ismerniük a program belső kódját vagy belső működését. A tesztek bemeneteken, kimeneteken és külső viselkedésen alapulnak. Mint ilyenek, ezek a tesztek nagymértékben a felhasználó viselkedésére összpontosítanak a program használata közben.
1. Szoftvertesztelési ekvivalencia partícionálás dióhéjban
Az ekvivalencia felosztás a szoftvertesztelés bemeneti adatait két táborra osztja: érvényes és érvénytelen bemeneti adatokra. Az egyes partíciókon belüli értékeknek ugyanazt a viselkedést kell kiváltaniuk a szoftverben. Például:
- Ha az A partíció egyik értékének feltétele igaz, akkor az A partíció többi értékének is igaznak kell lennie.
- Hasonlóképpen, ha az A partíció egyik értékének feltételei hamisak, akkor az A partíció többi értékének is hamisnak kell lennie.
Tesztelési kontextusban minden partíciót legalább egyszer le kell fedni. Logikailag ez azt jelenti, hogy ha az A partíció egyik bejegyzése meghibásodik, akkor az összes többi bemenet is meghibásodik. Ez a folyamat időt takarít meg, mivel a tesztelők az A partícióban található összes bemenet tesztelése helyett csak egyet tesztelhetnek, és a közös vonások alapján extrapolálhatják az eredményt.
2. Miért fontos az ekvivalenciaosztályok tesztelése a szoftvertesztelésben?
Mielőtt rátérnénk az ekvivalenciaosztály-tesztelés közvetlen előnyeire a szoftvertesztelésben, meg kell határoznunk, hogy miért fontos ez a megközelítés.
Minden tesztelő tisztában van azzal, hogy a szoftvertesztelés kompromisszumokat igényel. Az idő és a költségvetés korlátozott, ami azt jelenti, hogy a tesztelőknek a lehető legtöbbet kell kihozniuk az erőforrásaikból. A szoftvertesztelés egyenértékűségének felosztása segít a csapatoknak abban, hogy a bemenetek számának csökkentésével megtalálják az egyensúlyt a hatékonyság és a megbízhatóság között a tesztelés során.
Az egyenértékűség felosztás előnyei
a szoftvertesztelésben
A szoftvertesztelésben az ezzel egyenértékű felosztást a tesztelő csapatok több okból is előnyben részesítik. Íme néhány a legmeggyőzőbbek közül.
1. Hatékonyság
Az ekvivalenciapartíció-vizsgálat nagy előnye a hatékonyságában rejlik. Ha a tesztelők ekvivalencia partícionálást használnak, csökkenthetik a szükséges tesztesetek számát anélkül, hogy a tesztlefedettséget veszélyeztetnék. Azáltal, hogy minden egyes ekvivalenciaosztályból kiválasztanak egy bemeneti esetet, a tesztelők biztosak lehetnek abban, hogy megértik, hogyan működik a szoftverük a különböző bemeneti adatokkal.
2. Egyszerűség
A szoftvertesztelés ekvivalenciapartícionálásának másik nagy előnye az egyszerűség. A bemenetek változatos halmazának érvényes és érvénytelen adatokra való bontása azt jelenti, hogy a teszttervezés sokkal egyszerűbb. Az egyes bemenetek külön-külön történő tesztelése sok dokumentációt és koordinációt igényel. Ha ezt egy reprezentatív példára csökkentjük, az egyszerűsíti a tesztelési folyamatot.
Fokozott lefedettség
Az ekvivalenciaosztályok használata a tesztelésben azt is lehetővé teszi, hogy hatékonyabban használja ki a tesztelési időt. A tesztbemenetek osztályokra való redukálása azt jelenti, hogy minden egyes osztályt alaposabban tesztelhet. Ez az átfogó megközelítés őszintén szólva lehetetlen lenne, ha minden egyes bemenetet külön-külön tesztelne. Az ekvivalencia partícionálás lehetővé teszi a csapatok számára, hogy alaposan megvizsgálják és teszteljék az érvényes és érvénytelen adatokat, az éles eseteket, a határértékeket és így tovább.
3. Újrafelhasználhatóság
A kezdeti idő, amelyet az egyes ekvivalenciaosztályok létrehozásába fektet a szoftvertesztelés során, később megtérül, ha ezeket az osztályokat a jövőbeni bemeneti tesztekhez újra felhasználja. Bár nem minden partíció lesz releváns a jövőbeli tesztek szempontjából, azok, amelyek igen, sok időt takarítanak meg a jövőbeli projektek vagy akár a regressziós tesztelési helyzetek során.
Az ekvivalencia partícionálás hátrányai
a szoftvertesztelésben
Bár az egyenértékű partícionálás jelentős előnyökkel jár, nem minden forgatókönyvhöz ideális megoldás. Vizsgáljuk meg néhány korlátját.
1. Beviteli sorrend
Bizonyos helyzetekben a bemeneti sorrend kritikus szerepet játszik az alkalmazás működésének tesztelésében. Ezt nem igazán lehet csökkenteni az ekvivalencia partícionálással. A tesztelőknek szem előtt kell tartaniuk ezeket a helyzeteket, és alternatív technikákat kell alkalmazniuk a jó lefedettség biztosítása érdekében.
2. Komplex bemeneti függőségek
Az összetett bemeneti függőségekkel rendelkező komplex szoftverek egy másik olyan terület, ahol az ekvivalenciapartícionálás korlátai megmutatkoznak. Például olyan szoftverek, amelyek különböző bemenetek alapján számításokat adnak ki. Ebben a forgatókönyvben a tesztelőknek többféle technikát kell alkalmazniuk a kombinatorikus robbanás csökkentése és a hibák elkülönítésének valószínűségének növelése érdekében.
Alternatív megközelítések a
az egyenértékűségi vizsgálat korlátai
Míg az ekvivalenciapartíció tesztelése számos tesztelési forgatókönyv esetében megfelelő, a rendkívül összetett, a bemeneti értékek közötti bonyolult függőségeket tartalmazó szoftverek további kiegészítő megközelítéseket igényelhetnek.
Amikor összetett szoftverek teszteseteinek írására kerül sor, a fenti megközelítések kombinációjának használata jó ötlet.
1. Páros tesztelés
A páros tesztelés olyan szoftvertesztelési technika, amely a bemeneti paraméterek minden egyes párjának minden lehetséges kombinációját teszteli. Ez a megközelítés biztosítja, hogy minden paraméterpár legalább egyszer együtt kerüljön tesztelésre.
2. Döntési táblázat tesztelése
A döntési táblázat segít a tesztelőknek a különböző bemeneti kombinációk módszeres feltérképezésében. Ez egy jó módszer a szisztematikus lefedettség biztosítására, ha összetett függőségek léteznek.
3. Állapotátmenet tesztelése
Ez a tesztelési típus azt méri, hogy a szoftver hogyan lép át a különböző állapotok között különböző bemeneti kombinációk hatására.
4. Modellalapú tesztelés
Ez a megközelítés a szoftver belső logikáján alapuló modell elkészítését és egy automatizálási eszköz segítségével a modell alapján tesztesetek létrehozását igényli. Ez a technika jól kezeli a komplexitást és biztosítja a megfelelő lefedettséget.
Az ekvivalenciaosztályok felosztásának vizsgálati példái
Az ekvivalencia partícionálást úgy érthetjük meg a legjobban, ha megvizsgáljuk, hogyan és hol használhatunk ekvivalenciaosztályt a szoftvertesztelésben. Íme néhány példa a koncepció további szemléltetésére.
1. Az egyenértékűségi osztályok felosztásának tesztelési példája #1
Egy online rendelési űrlap jó példa az ekvivalenciaosztályra a szoftvertesztelésben.
Tegyük fel, hogy egy online helyhez kötött felszerelésekkel foglalkozó kiskereskedő számára készít alkalmazást. Van egy tipikus megrendelőlap A4-es papírkötegekre. Az alábbiakban bemutatjuk, hogyan használhatja az ekvivalenciaosztályokat ennek a formának a tesztelésére.
Egyenértékűségi osztályok:
Az A4-es papírmennyiségek egy meghatározott tartományon belül vannak, például 1 és 100 között. Tehát a három osztály a következő:
- 1-től 100-ig
- 1 alatti számok
- 100 feletti számok.
Tesztek:
Három tesztelési esetet kell lefuttatni, a következő várható eredményekkel
- Bármely szám 1 és 100 között = feldolgozott megrendelés
- 1 alatti számok = hibaüzenet
- 100 feletti számok = hibaüzenet
2. Ekvivalencia partícionálási tesztelési példa #2
Egy ekvivalenciaosztály a szoftvertesztelésben nem csak számokkal foglalkozhat. Ebben a példában azt vizsgáljuk meg, hogyan használhatja ugyanezt az elvet egy fájlfeltöltő portál ellenőrzésére. Tegyük fel, hogy egy olyan webhelyhez kell tesztelnie, amely megköveteli a felhasználóktól a személyazonossági dokumentumok feltöltését, de csak bizonyos formátumokat fogadhat el.
Egyenértékűségi osztályok:
- A támogatott dokumentumok PDF és JPEG formátumúak.
- A nem támogatott dokumentumok az összes többi dokumentumformátum
- Nincs dokumentum
Tesztek:
- Teszt PDF vagy JPEG feltöltésével = sikeres feltöltés
- Tesztelés nem támogatott formátum feltöltésével = hibaüzenet
- Teszt fájlfeltöltés nélkül = hibaüzenet
Hogyan kell végrehajtani az ekvivalencia partícionálást?
szoftvertesztelési megközelítés
Ha ekvivalenciaosztályokat szeretne használni a tesztelésben, stratégiai megközelítést kell alkalmaznia. Íme egy hasznos, lépésről lépésre követhető útmutató az ekvivalencia partícionálás szoftver tesztelésben történő megvalósításához.
1. lépés: A bemeneti változók azonosítása
Minden szoftver különböző bemeneti változókra reagál. Összetett szoftverek esetében ezek a változók hatalmasak lehetnek. Tehát nézze át a szoftver követelményeit és specifikációit, és határozza meg az összes olyan változót, amely hatással van a szoftver viselkedésére.
A legnyilvánvalóbb bemenetek közé tartoznak a felhasználói beviteli űrlapok. A listájához azonban a bemenetek szélesebb körét kell figyelembe vennie. Figyelembe vehet környezeti változókat, API-hívásokat, belső számításokat stb. is.
Ezután meg kell értenie a változó adatok különböző típusait. Ezeket a változókat egész szám, Boolean, string stb. kategóriákba sorolhatja a megfelelő partíciók meghatározásához.
Végül pedig fel kell tárnia a bemeneti korlátokat. Ilyenek például a megengedett karakterek, a meghatározott formátumok és a minimális/maximális értékek.
2. lépés. Érvényes és érvénytelen partíciók meghatározása
Nézze meg az egyes bemeneti változókat, és kezdje el felosztani őket érvényes és érvénytelen eredmények szerint. Ezek lesznek az egyenértékűségi osztályok a tesztelés során.
1. Érvényes partíciók
Az érvényes partíciók két osztályba sorolhatók.
Pozitív ekvivalenciaosztályok:
Olyan értékek, amelyeket a szoftver várhatóan sikeresen kezel. Például a százalékos osztályzatokat rögzítő szoftverek esetében a 0 és 100 közötti értékek érvényesek.
Negatív ekvivalenciaosztályok:
Ez a kategória azokra az értékekre vonatkozik, amelyek kívül esnek az elvárt input határain, de amelyeket a szoftvernek hibaüzenettel kell kezelnie. Például a százalékos osztályzathoz a beviteli érték 110, ami arra készteti a szoftvert, hogy a következő hibaüzenetet küldje vissza: “Minden értéknek 0 és 100 között kell lennie”.
2. Érvénytelen partíciók
Ezek az ekvivalenciaosztályok olyan bemeneteket tartalmaznak, amelyek hibákat vagy váratlan viselkedést váltanak ki. A fenti példánkban ez magában foglalhatja az A+ vagy B vagy hasonló beviteli kísérleteket a százalékos osztályzatba. Bár ezek a bemenetek technikailag helyesek lehetnek, a számszerű elvárásokon kívül esnek.
#3. Hatékony tesztesetek írása
Ezután olyan teszteseteket kell terveznie, amelyek minden egyes ekvivalenciapartíciót legalább egyszer lefednek. Ahogy a cikkben korábban említettük, ez biztosítja a megfelelő tesztlefedettséget.
Először is ki kell választania az egyes egyenértékűségi partíciókon belül olyan reprezentatív értékeket, amelyek mind az érvényes, mind az érvénytelen adatokat lefedik.
Tippek a megbízható tesztesetek írásához
- Gondoljon a határértékekre: Győződjön meg róla, hogy teszteli a partíciók határait. Minimum, maximum, inkluzív, exkluzív, stb., mivel ezek a területek erős jelöltek a hibákra. Ha például a bemeneti elvárások 0 és 100 között vannak, akkor tesztelje a negatív értékeket, valamint az olyan számokat, mint a 101.
- Fontolja meg a pozitív és negatív tesztforgatókönyveket mind az érvényes, mind az érvénytelen tesztesetekhez.
- A kombinált tesztelés jó ötlet. Használjon néhány különböző megközelítést az alternatív megközelítéseinkben vázoltak szerint, hogy kiegészítse a fenti egyenértékűségvizsgálati szakasz korlátait.
- Dokumentálja a bemeneti értékek meghatározott partíciókra való felosztásának indoklását, és világosan vázolja fel az egyes tesztek várható viselkedését.
- Ahol lehetséges, használjon vizuális eszközöket, hogy a tesztesetek áttekinthetőségét és objektivitását diagramok vagy táblázatok segítségével tegye lehetővé a partíciók feltérképezéséhez.
#4. A tesztesetek ütemezése és végrehajtása
A feladatok rangsorolása olyan tényezők alapján, mint:
- Mely területeken van a legnagyobb valószínűséggel hiba
- Melyek azok a forgatókönyvek, amelyek a legnagyobb valószínűséggel súlyos forgatókönyveket, például összeomlást vagy lefagyást okoznak.
Ezután hajtsa végre a teszteket, és rögzítse a kimeneteket és az esetleges hibákat. A sok bemenetet tartalmazó összetett programok esetében az RPA-eszközökkel utánozhatja a felhasználói műveleteket.
#5. Elemezze az eredményeket
Összegyűjti az összegyűjtött vizsgálati adatokat, és elemzi az eredményeket. Néhány módszer, amit használnia kell:
- Nézze meg az egyes teszteseteket, és hasonlítsa össze a tényleges kimeneteket a várt kimenetekkel.
- Találjon meg minden eltérést, és vizsgálja ki és jelentse a hibákat és hiányosságokat.
#6 További tippek
Bár ezek a tippek nem minden forgatókönyvre vonatkoznak, hasznosnak bizonyulnak az összetett szoftvertesztelés során.
- A döntési táblázatok kiválóan alkalmasak az egyenértékűségi partíciók és az esetleg használni kívánt különböző bemeneti kombinációk megjelenítésére.
- Összevonhatja az ekvivalencia osztályokat, ha azok közel azonos viselkedést mutatnak, tovább optimalizálva a tesztelési folyamatot.
- Határérték-tesztelés a hibák felismerésének javítása érdekében
- Ahol lehetséges, automatizáljuk az ekvivalencia partícionálási teszteseteket.
Ekvivalencia partícionálás és határérték-elemzés
Az egyenértékű partícionálás azon a feltételezésen alapul, hogy egy partícióban minden egyes teszt ugyanazt az eredményt fogja produkálni. Bár ez sok helyzetben igaz, nem mindig működik. Például a partícióhoz tévedésből hozzáadott bemeneteket nem lehet ellenőrizni, ami a lefedettség csökkenéséhez és a szoftver esetleges instabilitásához vezethet a későbbiekben.
A megoldás erre a problémára a határértékvizsgálat. Ez lehetővé teszi a szoftvertesztelő csapatok számára, hogy a legnagyobb valószínűséggel kockázatot tartalmazó területekre összpontosítsanak, és ezek alapján teszteljék a szoftvert. Röviden, azt javasolja, hogy a kockázatok nagy valószínűséggel a bemeneti partíciók széleinél vagy határainál jelentkeznek. Ezért a tesztelők a többi ekvivalenciaosztály tesztesetein kívül a bemenetek felső és alsó határán is írhatnak teszteseteket.
Ekvivalencia partícionálás és automatizálás a ZAPTEST segítségével
Az olyan szoftverteszt-automatizálási eszközök, mint a ZAPTEST, segíthetnek a csapatoknak automatizálni az egyenértékűség felosztását mind a tesztek létrehozása, mind a végrehajtás során.
Vizsgáljuk meg, hogy a ZAPTEST hogyan segíthet Önnek kihasználni ennek a hasznos fekete dobozos tesztelési megközelítésnek az előnyeit.
1. Szerszám kiválasztása
Fontos, hogy a munkához a megfelelő szerszámot válasszuk ki. A legtöbb tesztautomatizálási eszköz vagy webes, mobil vagy asztali tesztelésre specializálódott. A ZAPTEST képes különböző platformok és alkalmazások tesztelésére, így megbízható választás.
2. Tesztes esetek írása és végrehajtása
A ZAPTEST 1Script lehetővé teszi a felhasználói felület beolvasását a teszt automatizálásához. Ezenkívül beolvashatja az alkalmazásmintákat is, ha a fejlesztés korai szakaszában van. A Scan GUI funkció használatával a ZAPTEST beolvassa az összes tesztobjektumot, és hozzáadja azokat az objektumok listájához.
Innen objektumokat adhat hozzá a diagramhoz, és felépítheti a tesztlépéseket.
A ZAPTEST lehetővé teszi az esetek írásának automatizálását egy egyszerű drag-and-drop felülettel. A ZAPTEST segítségével történő tesztesetek létrehozásához nincs szükség kódolási szakértelemre. Tehát innen kiválaszthatja a megfelelő műveletet egy legördülő módszerből, és létrehozhat egy tesztesetet az interfészhez szükséges bemeneti értékek alapján. Ezután minden egyes ekvivalenciához készíthet teszteseteket, és végre tudja hajtani a teszteseteket. A teszteseteket akár újra is használhatja, és szerkesztheti őket a Step szerkesztőben, így rengeteg időt takaríthat meg.
3. Jelentés és teszteset-kezelés
A ZAPTEST lehetővé teszi a tesztesetek párhuzamos futtatását, ami jelentős időmegtakarítást jelent. Ez segíthet nagyszámú különböző ekvivalenciapartíció egyidejű futtatásában vagy bizonyos tesztcsoportok futtatásában.
Az eredmények könnyen összegyűjthetők a részletes sikertelen/teljesített jelentéseknek, képernyőképeknek, végrehajtási naplóknak és az egyes tesztesetekhez kapcsolódó teljesítménymérőknek köszönhetően.
4. Teszteset karbantartása
A minőségi verziókezelő funkcióknak köszönhetően egyszerűen nyomon követheti és karbantarthatja teszteseteit. Ráadásul a ZAPTEST felhasználói klónozhatják és újrafelhasználhatják a teszteket, hogy új hatékonysági szintet érjenek el.
A ZAPTEST a tesztesetek automatizálásán kívül sokkal több funkciót kínál. A ZAPTEST az RPA-eszközök csomagjával 2 az 1-ben funkcionalitást kínál, áthidalva a DevOps és a BizOps közötti szakadékot egy olyan jövőben, amelyet a hiperautomatizálás jellemez, ahol minden, ami automatizálható, automatizálva lesz.
Végső gondolatok
Az ekvivalencia partícionálás elegáns megoldás olyan helyzetekben, amikor a tesztelőknek egyensúlyt kell találniuk a hatékonyság és a pontosság között. Mivel egyes szoftverek szinte végtelen számú bemenetet tesznek lehetővé, az ekvivalenciaosztályok felosztása segít a csapatoknak a tesztelési adatokat kezelhető, apró darabokra bontani, amelyek mindegyike alaposan tesztelhető.