A határérték-elemzés – jellemzően BVA-nak rövidítve – egy általános fekete dobozos tesztelési technika. A megközelítés a szoftverhibákat a bemeneti értékeknek a megengedett tartományok határán történő ellenőrzésével vizsgálja.
Ez a cikk feltárja, hogy mi a határelemzési tesztelés, miért hasznos, és megvizsgál néhány különböző megközelítést, technikát és különböző határelemzési eszközt.
Mi az a határérték-elemzés a szoftvertesztelésben?
A határérték-elemzés a funkcionális tesztelés egyik típusa. Ez a fajta tesztelés annak ellenőrzésével foglalkozik, hogy a szoftver minden egyes funkciója megfelel-e a követelményeknek és a specifikációknak. A határtesztelés esetében ez a funkcionalitás magában foglalja azt, hogy a szoftver hogyan kezeli a különböző bemeneteket.
A BVA egy olyan szoftvertesztelési technika, amely validálja, hogy a szoftver hogyan reagál a bemenetekre a bemeneti határoknál vagy azok környékén. Lényegében minden bemenetnek vannak megengedett tartományai. Lehet például egy olyan jelszómezője a bejelentkezéshez, amely 8 és 12 karakter közötti jelszavakat fogad el. A határtesztelés a 7, 8, 12 és 13 karakter hosszúságú jelszavakat vizsgálja.
A gondolkodásmód itt az, hogy a határértékek határai, azaz a 7, 8, 12 és 13 nagyobb valószínűséggel dobnak hibát, mint a határértékeken belüli számok, például a 9, 10 és 11. Míg a 8 és 12 karakter közötti karaktereket fogadó meződobozok esetében az előnyök marginálisnak tűnhetnek, sokkal nyilvánvalóbbá válnak, amikor olyan meződobozok teszteseteit kell megírni, amelyek 1 és 20 karakter közötti karaktereket vagy 1 és 1000 közötti számokat fogadnak el, és így tovább.
Tehát, hogy időt takarítson meg és csökkentse a tesztesetek számát a funkcionális tesztelésen belül, a határérték-elemzés az értékeket vizsgálja:
- Minimális értéken
- Közvetlenül a minimális érték alatt
- Maximális értéken
- Közvetlenül a maximális érték felett
A határérték-elemzés előnyei a tesztelésben
A határmenti tesztelésnek számos előnye van a minőségbiztosítási csapatok számára.
#1. Jobb szoftverminőség
A tesztelők rémálma a hibák és hiányosságok észrevétlen maradása. Mivel annyi mindent kell ellenőrizni, néhány hiba kicsúszhat a kezünkből. A határtesztelés a szoftver azon területeinek működőképességét bizonyítja, amelyek nagyobb valószínűséggel tartalmaznak hibákat, ami jobb szoftverkészítéshez és végső soron megbízhatóbb, stabilabb alkalmazáshoz vezet.
#2. Fokozott tesztelési lefedettség
A BVA a szoftvertesztelésben azért olyan hasznos, mert segít csökkenteni az átfogó tesztlefedettséghez szükséges tesztesetek számát. A határérték-elemzés biztosítja, hogy a fontos értékek és az egyes értékek alaposabban tesztelhetők legyenek.
#3. A hibák korai felismerése
A határérték-tesztelés egy olyan megközelítés része, amely a hibák korai felismerését helyezi előtérbe. A hibák korai felismerése azt jelenti, hogy a fejlesztőcsapatok időt és pénzt takaríthatnak meg, nem is beszélve arról, hogy a fejlesztés korai szakaszában sokkal könnyebb a hibákat orvosolni.
#4. Hatékonyság
A határérték-tesztelés szuperhatékony, mert csökkenti a sok teszteset szükségességét. A bemenetek csökkentése a legvalószínűbb problémákat okozó tényezők kivételével jelentősen időt takaríthat meg a tesztelő csapatoknak mind a tesztesetek megírására, mind a tesztek végrehajtására.
A határérték-elemzés hátrányai a tesztelésben
Természetesen egyetlen szoftvertesztelési technika sem tökéletes vagy korlátok nélküli. Bár a határérték-elemzésnek számos előnye van, a funkcionális tesztelési technikával való munkavégzésnek vannak bizonyos korlátai.
#1. Szűk hatókör
A BVA az érvényes adatbevitelek határain vagy szélein dolgozik. Általában figyelmen kívül hagyja a középső bemeneteket azzal az érveléssel, hogy azok rendben lesznek, ha a széleken lévő érvényes bemenetek is azok. Nem példa nélküli azonban, hogy néhány ilyen érték, amelyet nem teszteltek, problémás lehet.
#2. Túlságosan leegyszerűsítő
A határelemzés a dolgok leegyszerűsítéséről szól. Míg ez a tesztesetek csökkentésére alkalmas, a megközelítés kevésbé alkalmas a több határt, kölcsönhatást vagy függőséget tartalmazó, rendkívül összetett tartományok esetében. Valójában nehezen tudja kezelni az összetett forgatókönyveket, ami azt jelenti, hogy a megfelelő lefedettség érdekében más technikákat kell keresnie.
#3. Feltételezések
Minden olyan folyamat, amely a hatékonyság növelésére törekszik, azzal a kockázattal jár, hogy bizonyos hibák kimaradnak. A BVA a tartomány szélén lévő határokat veszi górcső alá. Ennek során feltételezéseket kell tennie a határértékek bármelyik oldalára eső egyéb bemenetekre vonatkozóan. A tesztelőknek egyensúlyt kell teremteniük a hatékonyság és a lefedettség között, ami egy kis kockázatot jelent, ha csak a határtesztelést alkalmazzák.
#4. A pontos specifikációkra és követelményekre való támaszkodás
A hatékony BVA a specifikációk és a követelménydokumentáció minőségétől és pontosságától függ. Az ezekben a dokumentumokban található ellenőrizetlen hibák átterjedhetnek a határérték-tesztelésre, és ahhoz vezethetnek, hogy a fejlesztés kritikus, késői szakaszáig nem ellenőrzött és felfedezetlen hibák maradnak.
#5. Az ekvivalenciaosztályokra való támaszkodás
Az alapos BVA elvégzéséhez az ekvivalenciaosztályok alapos ismerete szükséges. Ezen osztályok pontos beállítása tapasztalatot és némi háttérinformációt igényel az alkalmazásról.
A határérték-elemzés kihívásai
a szoftvertesztelésben
Mostanra már eléggé tisztában kell lennie a határtesztelés előnyeivel és hátrányaival. Ha azonban a megközelítést saját szoftvertesztelésében szeretné alkalmazni, akkor tisztában kell lennie a különböző kihívásokkal, amelyeket le kell küzdenie.
Íme néhány kihívás a határérték-tesztelés megvalósítása során a szoftvertesztelésben.
#1. Határok kijelölése
Az egyszerű rendszereken belüli határok azonosítása kevés kihívást jelent a hozzáértő tesztelők számára. Vannak azonban összetettebb helyzetek is, mint például:
- Összetett bemeneti tartományok különböző bemeneti változókkal vagy bonyolult kapcsolatokkal
- Dokumentálatlan határok, amelyeket nem vázoltak fel egyértelműen a specifikációs dokumentumokban.
- Dinamikus határok, amelyek a felhasználói műveletek vagy egyéb feltételek alapján változnak
#2. Kétértelmű követelmények
A rosszul megírt vagy nem egyértelmű követelménydokumentumok akadályozhatják a határértékek azonosítását. Az egyértelműség, a teljesség és a kimerítő specifikációs dokumentumok iránti elkötelezettség időbe telik, de végül kifizetődik.
#3. Szakértelem
A határérték-elemzés megtévesztően bonyolult lehet. A tesztelő csapatoknak valóban szükségük van a területen tapasztalt és jártas személyzetre, hogy megértsék a technika finomságait. Ráadásul a tesztelőknek rendelkezniük kell némi szoftverismerettel, vagy legalábbis megbízható specifikációs dokumentumokkal, amelyekre támaszkodhatnak.
#4. Hibák
A határelemzés célja az érvényes és érvénytelen bemenetek ellenőrzéséhez szükséges tesztesetek számának csökkentése. A vizsgálati tartományon kívül eső hibák azonban könnyen észrevétlenek maradhatnak. Ezenkívül az “off-by-one” hibák gyakori kódolási hibák, amelyek a határoknál vagy azok közelében fordulhatnak elő. A tesztelőknek tisztában kell lenniük ezekkel a forgatókönyvekkel, és rendelkezniük kell a tesztelésről.
#5. Tesztelési eset robbanás
Több bemeneti határértékkel a tesztesetek hamarosan összetetté válhatnak, és irányíthatatlanul megsokszorozódhatnak. Ezekben a helyzetekben a határteszteléssel megtakarítható idő és pénz elveszik, ami aláássa a megoldás előnyeit. A sok kombinációt vagy permutációt tartalmazó összetett szoftverek hasonló hatással járhatnak.
#6. Az elemzési eszköz korlátai
A szoftverteszt-automatizálási eszközök segíthetnek a csapatoknak a megfelelő határérték-elemzés elvégzésében. Ezek az eszközök azonban még a legjobb esetben is igényelnek némi kézi beavatkozást mind a teszteléshez, mind a tesztek létrehozásához. Ez a helyzet súlyosbodhat a többváltozós kölcsönhatásokat tartalmazó összetett építmények esetében.
Különböző típusú határértékek
tesztelés a szoftvertesztelésben
A Szoftvertesztelés című könyvben: A Craftsman’s Approach című könyv szerzői, Paul C. Jorgensen és Byron DeVries a határérték-tesztelés négy különböző típusát írják le, amelyek a következők:
1. Normál határérték tesztelés (NBVT)
- Érvényes bemeneti értékek tesztelése a bemeneti tartomány éleinél
- Feltárja a minimális és maximális értékeket a határértékek feletti és alatti bemenetek mellett.
- Ez a határérték-elemzés klasszikus típusa.
2. Robusztus határérték-tesztelés (RBVT)
- Hasonló a fenti NBVT-hez, de az érvénytelen bemeneteket is tartalmazza.
- A határoknál és közvetlenül azokon túl végez vizsgálatokat, de figyelembe veszi az érvénytelen bemeneteket is
- A szélsőséges vagy váratlan kimenetekből eredő hibák megtalálására összpontosít.
3. Legrosszabb eset határérték vizsgálata (WBVT)
- A szoftver viselkedésének ellenőrzése extrém érvényes és érvénytelen értékek segítségével
- Feltárja a bemeneti tartományok szélén lévő értékeket és az ezeken a határokon túli értékeket.
- A szoftverek viselkedésének megértése szélsőségesebb körülmények között
4. Robusztus legrosszabb esetre vonatkozó határérték-tesztelés (RWBVT)
- Az RBVT és a WBVT keverékét használja a legalaposabb határérték-teszteléshez.
- Érvényes és érvénytelen bemeneti értékek tesztelése tipikus és szélsőséges határértékeken egyaránt
- A legjobb lehetőséget kínálja a határokkal kapcsolatos hibák megtalálására.
Ezek a megközelítések különböznek egymástól a teljesség tekintetében, az RWBVT a legátfogóbb. A tesztelőknek azonban tudomásul kell venniük, hogy a hibák felfedezésének e további szintjéhez többletbefektetés szükséges mind időben, mind erőfeszítésben.
Ekvivalencia partícionálás és határértékek
elemzés: hasonlóságok és különbségek
Az ekvivalenciapartícionálást és a határérték-elemzést gyakran együtt használják. A két technika ugyanis nagymértékben kiegészíti egymást. Az adatbevitel validálására azonban különböző megközelítéseket írnak le. Íme egy pillantás a kettő közötti hasonlóságokra és különbségekre.
1. Hasonlóságok
Az ekvivalenciapartícionálás és a határérték-elemzés remek párost alkotnak. Íme néhány hasonlóság a két technika között.
- Mindkettő fekete dobozos tesztelési technika, ami azt jelenti, hogy a bemenetekre és kimenetekre összpontosítanak, amelyek az alkalmazás forráskódjának előzetes ismerete nélkül tesztelhetők.
- Mindkettő része a bemenetek alapos teszteléséhez való hozzáállásnak.
- Mindkettő segít a tesztelőknek megtalálni az egyensúlyt az átfogó tesztlefedettség között anélkül, hogy túlzott mennyiségű tesztesetet írnának.
2. Különbségek
Ahhoz, hogy feltárjuk az ekvivalenciapartícionálás és a határérték-elemzés közötti különbségeket, külön-külön kell megvizsgálnunk mindkettőt.
Ekvivalencia partícionálás
- A bemeneti adatokat olyan ekvivalenciaosztályokra osztja, amelyeknek hasonló rendszer kimeneteket kell eredményezniük.
- Minden osztályból egyetlen reprezentatív értéket használ, és ezzel az értékkel teszteli a rendszert.
- Az érvényes és érvénytelen ekvivalenciaosztályok azonosításával foglalkozik.
Határérték-elemzés
- Az ekvivalenciaosztályok határain vagy szélein lévő értékek vizsgálata
- Számos érték tesztelése, beleértve a minimumot, a maximumot és a határ mindkét oldalán lévő értékeket.
- A határok szélén található hibákat keresi.
Ekvivalencia partícionálás és határérték analízis példák
Az egyenértékűség-felosztás és a határérték-analízis megértésének elősegítése érdekében íme néhány példa.
Egyenértékűség felosztási példa:
Tegyük fel, hogy van egy gépkocsi-regisztrációs beviteli mezője. Az amerikai rendszámtáblák általában 6 és 7 karakter közöttiek. Az egyszerűség kedvéért a különleges rendszámtáblákat figyelmen kívül hagyjuk.
Érvényes adatok = 6 vagy 7 karakteres táblák
Érvénytelen adatok = >6 vagy >7 karaktert tartalmazó rendszámtáblák.
Példa a határérték-elemzésre:
A fenti számtábla példát használva a határérték-elemzés a következőket vizsgálja
Érvényes adatok = 6 vagy 7 karakteres rendszámtáblák
Érvénytelen adatok = 5 vagy 8 karakteres, illetve egyes esetekben 4 és 9 karakteres rendszámtáblák.
Példa a határérték-elemzésre
Talán a fogalom teljes megértéséhez a legjobb módja, ha egy-két másik határérték-elemzési példát nézünk.
Határérték-tesztelési példa #1
A határérték-tesztelés részletesebb feltárásához nézzünk meg egy példát egy korhűségi tartományra.
Van egy mezőnk, ahol a felhasználó megadhatja a korát.
A határértékek a következők:
- Minimum életkor = 18 év
- Maximális életkor = 120 év
Példa a határesetekre:
Összesen hat teszteset van:
- 17, 18 és 19, amelyek a minimum, a minimum és a minimum alatt, illetve felett vannak.
- 119, 18 és 19, amelyek a maximális érték alatt, a maximális érték felett, illetve a maximális érték felett vannak.
Határértékvizsgálati példa #2.
A következő határérték-tesztelési példánkban egy olyan weboldalt vizsgálunk meg, ahol a 100 dolláros vagy annál nagyobb értékű rendelések esetén 20%-os minimális vásárlási kedvezményt adunk.
Ebben a példában a 600 dollár feletti vásárlás 25%-os kedvezményt eredményez. A határérték-teszt 100 és 600 dollár közötti inputokkal foglalkozik.
A határértékek a következők:
Minimális kedvezmény = 100 $
Maximális jogosult kedvezmény = 600 $
Példa a határesetekre:
Ismét összesen hat tesztesetet generálunk, amelyek a következők:
- 99,99 $, 100 $ és 100,01 $, amelyek a minimum, a minimum és a minimum felett vannak.
- $599,99, $600, illetve $600,01, amelyek a maximum alatt, maximum, illetve a maximum felett vannak.
Pontos-e a határtesztelés a szoftvertesztelésben?
A Black Box Testing with Equivalence Partitioning and Boundary Value Analysis Methods (Fekete doboz tesztelés egyenértékűség partícionálással és határérték-elemzéssel) című kutatási dokumentumban a szerzők az egyenértékűség partícionálás és a határérték-elemzés felhasználásával vizsgálják az indonéziai Mataram Egyetem tudományos információs rendszerének tesztelését.
A szerzők a népszerű nyílt forráskódú Selenium tesztelő eszközt használták a tesztekhez, és összesen 322 tesztesetet futtattak le. Az ekvivalenciateszt és a határérték-elemzés körülbelül 80 sikertelen esetet tárt fel, ami nagyjából 75:25 arányt eredményezett az érvényes és érvénytelen tesztpontszámok között. Összességében az ekvivalenciapartícionálás és a BVA kombinációjának használata a szoftvertesztelésben alapos és hasznos tesztelést eredményezett a szoftver számára.
A legjobb határérték-tesztelő eszközök
Míg a dedikált határtesztelő szoftvereszközök ritkák, számos figyelemre méltó tesztelési eszköz alkalmas a feladat elvégzésére.
#3. TestCaseLab
A TestCaseLab egy felhőalapú tesztkezelő eszköz, amely segíthet a BVA tesztelésben. A szoftver lehetővé teszi a csapatok számára, hogy intuitív és vonzó megjelenésű felhasználói felületéről teszteseteket hozzanak létre és kezeljenek. A TestCaseLab rugalmas és funkciógazdag, de megvannak a maga korlátai, többek között a korlátozott jelentéskészítési és testreszabási lehetőségek.
#2. Micro Focus UFT One
A Micro Focus UFT One egy szoftvertesztelő eszköz, amely a funkcionális és regressziós tesztelésre összpontosít. Támogatja a különböző platformokat, eszközöket és API-teszteléseket, és erős integrációs lehetőségeket kínál. Kód nélküli és kulcsszóvezérelt tesztkészítést is kínál, és segít a csapatoknak a határérték-elemzés teszteseteinek egyszerű elkészítésében. Vannak bizonyos korlátok, amelyeket figyelembe kell vennie, például a meredek tanulási görbe és a teljesítmény hiánya az olyan eszközökhöz képest, mint a ZAPTEST.
#1. ZAPTEST
A ZAPTEST egy átfogó szoftverautomatizálási tesztelő eszköz fejlett RPA képességekkel. Úgy épült fel, hogy a tesztelők számára felhasználóbarát és robusztus teszt-automatizálási eszközkészletet biztosítson, amely számos módon segíthet a szoftverek ellenőrzésében, többek között a BVA-val a szoftvertesztelésben.
A ZAPTEST legmeggyőzőbb felhasználási esetei közé tartozik a határérték-elemzést segítő tesztesetek generálása, a tesztadatok kezelése, a tesztek végrehajtása, valamint a jelentéskészítés és elemzés. A ZAPTEST felhasználók számos sablon és a magas szintű testreszabhatóság, valamint a kód nélküli tesztesetek létrehozásával kombinálva gyorsan és egyszerűen létrehozhatnak és kezelhetnek robusztus teszteseteket minden típusú határelemzéshez.
A tesztesetek generálásán és kezelésén túl a ZAPTEST RPA-képességei más módon is segíthetik a tesztelő csapatokat a határérték-elemzéses tesztelésben. Például automatizálhatja a tesztesetek végrehajtását, tesztadatokat generálhat, és hatékony integrációkat építhet más tesztelési eszközökkel.
Tippek a határérték-teszteléshez
- Kombinálja a határérték-elemzést az ekvivalencia partícionálással, hogy a tesztesetek különböző bemeneti forgatókönyveket fedjenek le.
- Használjon érvénytelen bemeneti forgatókönyveket (pl. negatív tesztelés), hogy ellenőrizze, hogyan kezeli a szoftver a hibákat és a váratlan bemeneti adatokat.
- Fektessen időt a különböző adattípusok, például szöveg, számok, Boolean stb. határértékeinek meghatározására.
- A kritikus funkciók vagy olyan területek határérték-tesztelésének előtérbe helyezése, ahol a hibák előfordulásának valószínűsége nagyobb.
- Használjon olyan reális adatokat, amelyek reprezentálják, hogy a felhasználók milyen adatokat fognak bevinni a domainjeibe.
Végső gondolatok
A határérték-elemzés egy hasznos funkcionális tesztelési megközelítés. Ha van egy bemeneti tartomány, akkor ellenőriznie kell, hogy az érvényes adatokat fogad-e el, és hibaüzeneteket küld, ha érvénytelen adatokat kap. A határelemzéses tesztelés segít a funkcionalitás hatékony ellenőrzésében azáltal, hogy csak az átfogó teszteléshez szükséges teszteseteket készíti el.
A határértékek tesztelése az elfogadható tartományon belüli vagy azt körülvevő értékeket vizsgálja, és ellenőrzi, hogy a rendszer hogyan reagál ezekre a bemenetekre. Az eredmény rengeteg megtakarított idő és csökkentett erőfeszítés, mivel nem kell felesleges teszteseteket készítenie. A szoftverfejlesztés rohanó világában, ahol a határidők sűrűn és gyorsan jönnek, a tesztelő csapatoknak minden segítségre szükségük van.