Az inkrementális tesztelés a szoftvertesztelésben egy olyan módszertan, amely lehetővé teszi a csapatok számára, hogy az egyes modulokat lebontsák, elszigetelten teszteljék és szakaszosan integrálják. Segít a hibák korai megtalálásában, csökkenti a komplexitást és növeli a tesztelés lefedettségét.
Ez a cikk mélyen belemerül az inkrementális tesztelésbe, elmagyarázza, hogy mi is ez, és feltárja a különböző típusokat, folyamatokat, megközelítéseket, eszközöket és egyebeket, amelyek ehhez a hasznos módszertanhoz kapcsolódnak.
Mi az inkrementális tesztelés?
A tesztelés a szoftverfejlesztési életciklus (SDLC) egyik legfontosabb szakasza. Az SDLC-hez hasonlóan a tesztelés is különböző logikai lépésekre oszlik. Az inkrementális tesztelés egyike ezeknek a szakaszoknak, és jellemzően a következő időszakokban történik
integrációs tesztelés
és rögtön utána
egységtesztelés
.
Inkrementális tesztelés egy pragmatikus szoftvertesztelési megközelítés, amely a nagy vagy összetett programokat kezelhető, apró darabokra bontja. A teljes szoftverrendszer egyszerre történő integrálása és tesztelése helyett az inkrementális tesztelés modulokat vizsgál, és szakaszos ellenőrzési folyamatot hajt végre.
A szoftvermodulok jellemzően olyan önálló kódegységek, amelyek meghatározott feladatokat vagy funkciókat látnak el. Az, hogy ezek a modulok mennyire szemcsések, különböző tényezőktől függ, például a kódolási gyakorlatoktól, a fejlesztési módszertanoktól vagy akár az Ön által használt programozási nyelvtől.
A modulokat egymástól függetlenül tesztelik az egységtesztelés során. Ezután az integrációs tesztelés során az egyes modulokat darabonként – vagy lépcsőzetesen – integrálják. Ez a folyamat biztosítja, hogy az egyes modulok jól működjenek együtt. Az egyes modulok teljes körű ellenőrzéséhez azonban a tesztelőknek szimulálniuk kell a még megvalósításra váró komponenseket vagy külső rendszereket. Ehhez a csonkok és a vezetők segítségére van szükségük.
Mik a stubs és a driverek az inkrementális tesztelésben?
A csonkok és illesztőprogramok kritikus szoftvertesztelési eszközök. Ezeket az ideiglenes kódrészleteket az integrációs tesztelés során használják, mivel a csapatoknak lehetőséget nyújtanak a különböző modulok vagy komponensek viselkedésének és interfészeinek utánzására.
1. Csonkok:
A csonkok olyan modulokat utánoznak, amelyeket még nem fejlesztettek ki, és mint ilyenek, nem állnak rendelkezésre a teszteléshez. Lehetővé teszik, hogy a tesztelt modul (MUT) meghívja a nem teljes modulokat. Ennek az az eredménye, hogy az MUT elszigetelten is tesztelhető, még akkor is, ha a kapcsolódó modulok nem állnak rendelkezésre.
2. Vezetők:
A meghajtók viszont az MUT-ot hívó modulok viselkedését szimulálják. A tesztelési környezetben ezek az illesztőprogramok elküldhetik az MUT tesztadatokat. Ez ismét megkönnyíti a modulok elszigetelt tesztelését külső függőségek nélkül.
A stubok vagy meghajtók használata csökkenti a fejlesztési időt, javítja a kód minőségét és növeli a csapat termelékenységét. Annak eldöntése azonban, hogy melyiket használja, attól függ, hogy melyik tesztelési módszertan a legmegfelelőbb. Ezt az alábbi, az inkrementális integrációs tesztelés különböző típusait tárgyaló részben bővebben kifejtjük.
Különböző típusú inkrementális
integrációs tesztelés
Az inkrementális tesztelési típusok nagyjából három kategóriába sorolhatók. Vizsgáljuk meg mindegyiket.
1. Felülről lefelé haladó inkrementális integráció
A felülről lefelé haladó inkrementális integráció a rendszeren belüli legmagasabb rendű modulok tesztelésével kezdődik. Innen fokozatosan integrálja és teszteli az alacsonyabb rendű modulokat.Két fő forgatókönyv létezik, amikor a felülről lefelé irányuló inkrementális integrációt alkalmazzák. Ezek a következők:
- Ha egy rendszer nagyon nagy vagy rendkívül összetett
- Amikor a fejlesztőcsapat egyszerre több modulon dolgozik.
A felülről lefelé haladó inkrementális integrációk lépései
- A kritikus modulok azonosítása
- Létrehozza az alacsonyabb rendű modulok utánzását szolgáló csonkokat
- A magasabb rendű modulokkal interakcióba lépő illesztőprogramok fejlesztése, hogy adatokat küldjenek nekik és értelmezzék a modulok kimeneteit.
- Kritikus modulok egységtesztelése illesztőprogramokkal és stubokkal
- Integrálja az alacsonyabb rendű modulokat és fokozatosan váltsa fel a csonkokat valódi megvalósításokkal.
- Az illesztőprogramok átdolgozása az új modulok befogadására
- Ismételje ezt addig, amíg az összes alacsonyabb rendű modult integrálja és teszteli.
2. Alulról felfelé haladó inkrementális integráció
Az alulról felfelé haladó inkrementális integrációk az ellenkező irányba mennek. Ezzel a megközelítéssel a rendszer alacsonyabb rendű (vagy legkevésbé kritikus) moduljait tesztelik, majd fokozatosan hozzáadják a magasabb rendű modulokat. Ez a megközelítés különböző forgatókönyvek esetén alkalmas, például:
- Ha kisebb rendszerekkel foglalkozik
- Amikor egy rendszer modularizált
- Ha aggályai vannak a csonkok pontosságával vagy teljességével kapcsolatban.
Az alulról felfelé haladó inkrementális integrációk lépései
- Alacsonyabb rendű modulok azonosítása
- alacsonyabb rendű modulok egységtesztelése az egyedi funkcionalitásuk ellenőrzésére
- Az alacsonyabb rendű modulokkal való közvetítésre alkalmas meghajtók kifejlesztése
- Stubok létrehozása a magasabb rendű modulok viselkedésének szimulálásához
- Integrálja a következő modulokat, alacsonyabb rendűtől magasabb rendűig, és fokozatosan cserélje le a csonkokat valódi megvalósításokra.
- Az illesztőprogramok átdolgozása az új modulok befogadására
- Ismételje ezt addig, amíg az összes magasabb rendű modult integrálja és teszteli.
3. Funkcionális inkrementális integráció
A funkció-inkrementális integrációs tesztelés a következő gyakori típus a szoftver tesztelésében. Míg az előző két típus a magasabb és alacsonyabb rendű modulokra összpontosított, addig a funkcionális inkrementális tesztelés egy adott modul funkcionalitásán alapul.
A funkcionális inkrementális integrációt a következőkben használják
Agilis/DevOps módszertanok
, és kiváló választás a modulok vagy komponensek közötti összetett függőséggel rendelkező alkalmazásokhoz.
A funkcionális inkrementális integráció lépései
- Egyedi modulok és komponensek azonosítása jól meghatározott interfészekkel
- Az egyes modulok funkcionalitásának ellenőrzése egységteszteléssel
- A rendszer legminimálisabb alapmoduljainak integrálása és működésének biztosítása.
- Fokozatosan adjunk hozzá egyes modulokat, minden egyes lépésnél tesztelve a funkcionalitást.
- A kód átdolgozása az egyes modulok hozzáadásakor
- Ha minden modul hozzáadásra került, teszteljük a funkcionalitást és a teljesítményt.
Az inkrementális tesztelési megközelítés előnyei és hátrányai
Mostanra már biztosan van némi fogalma arról, hogy miért népszerű a növekményes tesztelés. Azonban, mint minden szoftvertesztelési módszertannak, ennek is megvannak az előnyei és hátrányai. Vizsgáljunk meg néhányat ezek közül az előnyök és hátrányok közül.
Az inkrementális tesztelési megközelítés előnyei
1. Rugalmasság
Mint azt minden szoftverfejlesztő és tesztelő jól tudja, a követelmények az SDLC során változhatnak és fejlődhetnek, néha egészen drámai mértékben. Az inkrementális tesztelés elég dinamikus ahhoz, hogy a csapatok a tesztelési folyamat során alkalmazkodni tudjanak, és új terveket és irányokat építsenek be.
2. Korai hiba felismerés
A hiba vagy hiányosság észlelésére a lehető legkorábbi időpontban van a legjobb lehetőség. Amikor a fejlesztők egyenként ellenőrzik a modulokat, a problémák azonosítása és javítása sokkal könnyebb. Ráadásul segít csökkenteni a fejlesztés során későn felmerülő nagy problémák valószínűségét.
3. Egyszerűség
A szoftvertesztelés rendkívül összetett folyamat lehet. Az inkrementális tesztelés egyik legmeggyőzőbb aspektusa abban rejlik, ahogyan a tesztelés városát működőképes részekre bontja. Ahelyett, hogy a tesztelők a túlságosan nagy komplexitással foglalkoznának, egyes modulokra összpontosíthatnak, és akár prioritást is adhatnak nekik. Ez az előny a nagy és összetett alkalmazások számára istenáldás.
4. Alacsonyabb regressziós kockázat
A regresszió időigényes és összetett kérdés a szoftverfejlesztésen belül. Az inkrementális tesztelés csökkentheti a regresszió okozta gyakoriságot és kockázatokat, mivel lehetővé teszi a csapatok számára, hogy a modulokat egyenként teszteljék, és a felmerülő problémákat a felmerülésükkor kezeljék. Ha szilárd
regressziós tesztelés
, a csapatok sok időt és szívfájdalmat spórolhatnak meg.
5. Visszajelzési lehetőségek
Az inkrementális tesztelés egyik gyakran figyelmen kívül hagyott előnye, hogy a csapatok számára lehetővé teszi a prototípusok és MVP-k összeállítását. Az érdekeltek és a befektetők innen értékelhetik a folyamat alapvető működését, és felbecsülhetetlen értékű visszajelzést adhatnak. Ez a helyzet sok időt és pénzt takaríthat meg, és robusztusabb termékekhez vezethet.
Az inkrementális tesztelési megközelítés hátrányai
1. Integrációs kérdések
A modulok külön-külön történő tesztelése azért kívánatos, mert így egy összetett alkalmazás kezelhető darabokra bontható. Ezen modulok integrálása azonban új és váratlan hibákat eredményezhet. Ezért az inkrementális tesztelési megközelítést gondosan és tudatosan kell megtervezni.
2. Tesztcsomag összetettsége
Az egyes modulokhoz tartozó több teszteset és azok egymás közötti kölcsönhatása miatt a tesztkészletek nyomon követése és kezelése bonyolulttá válhat. A nagy és bonyolult alkalmazások esetében ez szükségessé teszi az alapos dokumentációt vagy a tesztmenedzsment eszközöket.
3. Több munka
A monolitikus tesztelés, bár összetettebb, kevesebb tesztelést igényel. A sok modul külön-külön történő tesztelésével az inkrementális tesztelés több munkát igényel. Az inkrementális tesztelés előnyei – például a hibák korai felfedezése – azonban azt jelentik, hogy a plusz erőfeszítés időtakarékos befektetés. Természetesen,
szoftver teszt automatizálás
segíthet csökkenteni ezeket az erőfeszítéseket.
4. Megnövekedett vezetői igények
Az inkrementális teszteléshez több csapat együttműködésére van szükség. Például a fejlesztési, tesztelési és DevOps-csapatoknak együtt kell működniük. Ez a helyzet további vezetői igényeket támaszt, és jó kommunikációt igényel e csapatok között, hogy biztosítsa, hogy összpontosítanak és ugyanazon célok felé haladnak.
Inkrementális tesztelési példa
Talán a legkönnyebben egy példán keresztül érthető meg a növekményes tesztelési megközelítés. Íme egy egyszerű helyzet, amely segít szemléltetni a folyamatot.
1. Inkrementális tesztelési példa egy mobil banki alkalmazáshoz
Forgatókönyv: Egy csapat mobil banki alkalmazást készít. Az alkalmazás több különböző modulból áll, amelyek lehetővé teszik:
- 2FA és biometrikus felhasználói ellenőrzés
- Tranzakciók feldolgozása
- Pénzügyi adatkezelési műszerfal
Célkitűzés: A csapat szeretné tesztelni az egyes modulok integrációját, és megállapítani, hogy jól működnek-e együtt. Ennek eredményeképpen három tesztesetet készítenek.
1. vizsgálati eset
Az első tesztesetben a csapat azt szeretné biztosítani, hogy a biometrikus vagy jelszavas adatok megadásával a felhasználó mind a tranzakciók feldolgozásához, mind a pénzügyi adatok kezelésének műszerfalához hozzáférést kapjon.
Az alkalmazás akkor felel meg a tesztnek, ha a felhasználó meg tudja adni az adatait, és hozzáférhet a tranzakciókhoz.
2. tesztelési eset
A következő teszteset azt vizsgálja, hogyan kezeli az alkalmazás a nem engedélyezett tranzakciókat.
Az alkalmazás átmegy a teszten, ha a jogosulatlan tranzakcióra tett kísérletet blokkolja a rendszer, és az alkalmazás hibaüzenetet ad.
3. tesztelési eset
Az utolsó integrációs teszt annak ellenőrzését foglalja magában, hogy az alkalmazás képes-e egyidejűleg tranzakciókat végrehajtani.
Az alkalmazás akkor felel meg a tesztnek, ha a felhasználó egyszerre tud tranzakciót indítani és hozzáférni a pénzügyi információihoz anélkül, hogy az adatok között ellentmondások vagy problémák lennének.
Az inkrementális tesztelési megközelítés a
ugyanaz, mint az inkrementális tesztelés?
Nem. Az inkrementalitás tesztelése egy olyan statisztikai marketing módszerre utal, amely talán attribúciós modellezés néven a legismertebb. Röviden, segít a marketingcsapatoknak megérteni a reklámkampányok, a marketingcsatornák vagy az egyes stratégiák hatását.
Bár a cookie-k és a harmadik féltől származó adatok “halálának” köszönhetően az elmúlt években megnőtt az érdeklődés az ilyen típusú modellezés iránt, az inkrementális teszteléssel csak egy közös szó van kapcsolatban.
A 3 legjobb eszköz az inkrementális teszteléshez
#1. ZAPTEST
Amellett, hogy első osztályú
RPA
képességeit, a ZAPTEST számos olyan szoftvertesztelési automatizálási eszközt kínál, amelyek tökéletesen alkalmasak a növekményes tesztelésre. Néhány a funkciók közül:
Tesztadatok kezelése
: Csökkentse az inkrementális teszteléssel járó időt és erőfeszítést azáltal, hogy lehetővé teszi a csapatok számára a tesztadatok újrafelhasználását.- Szkript felvétele és lejátszása: Ez a kód nélküli eszköz lehetővé teszi a csapatok számára, hogy szkripteket rögzítsenek és futtassanak, és sok időt takarítsanak meg a növekményes tesztelés során.
- Újrafelhasználható tesztmodulok: A ZAPTEST rendkívül moduláris, és lehetővé teszi a csapatok számára, hogy tesztmodulokat hozzanak létre és használjanak újra, és jelentős időt takarítsanak meg a tesztelési folyamatból.
Összességében a ZAPTEST egy erőteljes és változatos teszt-automatizálási csomagot kínál, amely bármilyen típusú tesztelésre alkalmas, beleértve a növekményes tesztelést is.
#2. Szelén
A Selenium egy nyílt forráskódú tesztautomatizálási platform, amely a mobilalkalmazások tesztelésének megkönnyítésére készült. Az eszközök több mobilplatformot (Android, iOS, Windows) támogatnak, és a modulok szimulálásához stubokat és illesztőprogramokat használnak.
#3. Testsigma
A Testsigma egy felhőalapú tesztautomatizálási platform. Használható webes és mobil alkalmazások tesztelésére, és alkalmas inkrementális tesztelésre a kód nélküli tesztkészítésnek és a CI/CD pipelines integrációnak köszönhetően.
Végső gondolatok
Az inkrementális tesztelés a szoftvertesztelésben az integrációs tesztelés fontos része. Ez lehetővé teszi a csapatok számára, hogy a modulokat könnyen tesztelhető részekre bontsák, mielőtt lassan integrálják őket. Ennek az az előnye, hogy minden egyes modul ellenőrizhető a hibák szempontjából, majd pedig az, hogy hogyan integrálódik a kapcsolódó részekkel.
A kategóriájában legjobb
RPA
eszközökkel, a ZAPTEST kód nélküli szoftver teszt automatizálást kínál, amely platform- és alkalmazásközi. Ezenfelül tesztelési csomagunk olyan funkciókkal rendelkezik, mint a CI/CD integráció, a megbízható jelentéskészítés és analitika, valamint az első osztályú támogatás és ügyfélszolgálat.