Mi az a tesztkábel? (Példák)
⚡ Okos összefoglaló
A szoftvertesztelésben alkalmazott Test Harness (tesztelési hám) egyesíti a csonkokat, illesztőprogramokat, tesztadatokat és végrehajtási eszközöket, így a csapatok még az összes függőség létezése előtt validálhatják a modulokat, a blokkolt tesztciklusokat megismételhető, automatizált ellenőrzéssé alakítva, amely manuális erőfeszítés nélkül jelenti az eredményeket.

Teszt kábelkészlet a szoftvertesztelésben
Teszt kábelkészlet a szoftvertesztelésben a tesztvégrehajtás automatizálásához szükséges csonkok, illesztőprogramok és egyéb támogató eszközök gyűjteménye. A tesztkábel egy tesztkönyvtár használatával teszteket hajt végre, és tesztjelentéseket készít. A tesztkábel minden olyan információt tartalmaz, amely egy teszt összeállításához és futtatásához szükséges, például tesztesetek, céltelepítési port (TDP), tesztelés alatt álló forrásfájl, csonkok stb.
Egyszerűen fogalmazva, egy kábelköteg (haram) egy ellenőrzött környezetbe foglalja az ellenőrizni kívánt komponenst. A hiányzó szomszédos modulokat kis, próbaprogramok helyettesítik, a bemenetek egy fix adatkészletből érkeznek, és minden eredmény egy naplóba kerül, ahelyett, hogy egy képernyőről olvasnánk le. A következő szakaszok elmagyarázzák, hogy miért építenek a csapatok egyet, miből áll, hogyan működik, és hová illik.
Miért érdemes tesztkábelt használni?
Létezik egy kábelköteg, amely kiiktatja a várakozást a tesztciklusból. Mivel azt szimulálja, ami még nem áll készen, a szoftver tesztelés A csapat már az első sprintben elkezdheti a viselkedés ellenőrzését, ahelyett, hogy a végső integráció után tenné. Az alábbi ábra azt mutatja, hogy hol helyezkedik el a kábelköteg a tesztszkriptek és a tesztelt alkalmazás között.
- Automatizálja a tesztelési folyamatot
- Tesztesetek tesztcsomagjainak végrehajtása
- Kapcsolódó tesztjelentések generálása
- Hibakeresés támogatása
- Az egyes tesztek vizsgálati eredményeinek rögzítése
- Segít a fejlesztőknek a kódlefedettség kódszintű mérésében
- Növelje a rendszer termelékenységét automatizálással
- A szoftverösszetevők és az alkalmazások minőségének javítása
- Annak az összetett állapotnak a kezelésére, amelyet a tesztelők nehezen szimulálnak
Ezek az előnyök a rövid kiadási ciklusoknál a legfontosabbak. Amikor a kód hetente többször is megjelenik, egy integrációs szakaszig fennmaradó hiba sokkal többe kerül. tractöbb, mint akit egy csonknak aknáznak ki az írás napján. Ez a jutalom azonban csak akkor érkezik el, ha a hámot a megfelelő alkatrészekből szerelik össze.
A tesztkábel főbb összetevői
A kábelköteg nem egyetlen program, hanem alkatrészek összessége, amelyek mindegyike eltávolít egy akadályt, amely egyébként megakadályozná a teszt felügyelet nélküli lefuttatását.
- Tesztszkriptek: Automatizált utasítások, amelyek leírják a végrehajtandó lépéseket és a várható eredményt, a dokumentum szerint írva. tesztszkript egyezmények.
- Tesztfuttató motor: A futtatóprogram, amely sorrendben olvassa a szkripteket, feloldja a függőségeket, és elindítja a szekvenciális vagy párhuzamos végrehajtást.
- Tesztadat-tárház: A szkripten kívül CSV, JSON, XML vagy egy seeded adatbázisban tárolt bemeneti értékek, amelyeket gyakran kitöltenek a következők: teszt adatgeneráló eszközök.
- Drivers: Olyan álhívásos modulok, amelyek a tesztelt komponenst hívják meg, amikor a valódi felső réteg, például egy felhasználói felület, még nincs befejezve.
- Csönkök: A dummy előre elkészített válaszokat visszaadó moduloknak nevezte a kódot, például egy fizetési szolgáltatás a „Fizetés sikeres” választ adta anélkül, hogy bankkal kapcsolatba lépett volna.
- Kimeneti validátor: Olyan állítási logika, amely összehasonlítja a tényleges kimenetet a várható értékkel, és minden esetet sikeresnek vagy sikertelennek jelöl.
- Naplózási és jelentéskészítési réteg: Időbélyegek, képernyőképek, konzolkimenet és egy futási összefoglaló, amelyek minden hibát elhárítanak tracutána használható.
Ha bármelyik alkatrészt eltávolítjuk, a kábelköteg nem automatikus, mert akkor minden menetnél kézzel kell valamit hozzáadni.
Hogyan működik a tesztkábel?
A hám minden végrehajtáskor ugyanazt a kört ismétli. A kör ismeretében pontosan megtudhatod, hol van a saját... automatizálási tesztelés eszközök csatlakoztatva vannak, és melyik lépés hibázik, amikor egy futtatás pirosra vált.
- A környezet előkészítése: A kábelköteg feloldja a környezet konfigurációját, megnyitja a kapcsolatokat és betölti a berendezéseket, így minden futtatás ugyanabból az ismert állapotból indul.
- Tesztszkriptek betöltése: A szkripteket, paramétereket és a várt eredményeket a rendszer a tárházból olvassa be. Futásidőben semmit sem gépelnek be, ami miatt a második futtatás összehasonlítható az elsővel.
- Pótold a hiányzó modulokat: A meghajtóprogramok a még nem létező hívókat helyettesítik, a csonkok pedig a befejezetlen, instabil vagy költséges hívású szolgáltatásokat.
- Hívja meg a tesztelt alkalmazást: A végrehajtó motor elindítja a szkript által leírt munkafolyamatot, legyen az egy metódushívás, egy API kérés vagy böngészős interakció.
- Rögzítse a tényleges kimenetet: A visszatérési értékek, a válasz hasznos adatai, az adatbázis sorai, a naplósorok és a képernyő állapota mind rögzítésre kerülnek, amint létrejönnek.
- Hasonlítsa össze a várt eredményekkel: A kimeneti validátor minden rögzített értékre érvényesítést végez. Bármilyen eltérés sikertelenként jelöli az esetet, és rögzíti mind a várt, mind a megfigyelt értéket.
- Naplózás és jelentés: A kábelköteg időbélyeggel ellátott traca futtatás e-jét, és egy sikeres/sikertelen jelentést generál, amelyet a fejlesztő újrafuttatás nélkül elolvashat.
- Lebont: Az ideiglenes adatok, kapcsolatok és a csonkollapot törlődnek, így a következő eset nem örökölhet maradványokat ettől.
💡 Tipp: Frissítsd a csonkokat, valahányszor a valódi modul megváltozik. Egy olyan csonk, amely továbbra is az előző negyedév formátumával válaszol, zöld futást fog jelezni, miközben az élő integráció már hibás.
Egy kidolgozott példa kézzelfoghatóvá teszi a ciklust. Tegyük fel, hogy a fizetési oldal készen áll, de a fizetési átjáró nem. Egy illesztőprogram elindítja a kérést, amelyet az interfész általában küldene, egy csonk először „Sikeres fizetés” üzenettel, majd időtúllépéssel válaszol, és az validator az egyik esetben megerősíti a megrendelést, a másikban pedig újrapróbálkozást kér. Mindkét útvonalat ellenőrzi a rendszer, mielőtt az átjáró csapata egy sor kódot írna.
Két kontextusban használható a Test Harness
Ugyanez a mechanizmus két különböző célt szolgál, és a szókincs kissé változik attól függően, hogy melyikben vagyunk.
- Automatizálási tesztelés: Ez tartalmazza a teszt szkriptek, a szkriptek futtatásához és az elemzéshez szükséges eredmények összegyűjtéséhez szükséges paraméterek
- Integrációs tesztelés: Két kód- vagy modulegység összeállítására szolgál, amelyek kölcsönhatásba lépnek egymással annak ellenőrzésére, hogy a kombinált viselkedés a vártnak megfelelő-e vagy sem.
Vegyünk egy bejelentkezési modult és egy profilmodult, amelyeknek felhasználói tokent kell cserélniük. Az integrációs kontextusban egy illesztőprogram szimulálja a sikeres bejelentkezést, és átadja a tokent a profillogikának, így az adattérképping, az engedélyek ellenőrzése és a képernyő renderelése mind ellenőrizhető a valódi hitelesítési szolgáltatás befejezése előtt. Az automatizálási kontextusban ugyanaz az esetpár hozzáadódik egy csomaghoz, és minden builden újra lefutja anélkül, hogy bárki újra hozzányúlna.
Tesztkábelek típusai
Mivel a szoftver rétegekből épül fel, a harapnivalók általában arra a rétegre specializálódtak, amelyet ellenőriznek. Négy típus fed le szinte minden projektet.
A egységtesztelő kábelköteg a legkisebb kódrészleteket, például egyetlen függvényt vagy metódust futtatja, minden függőséget egy csonkkal helyettesítve. Ez a leggyorsabban futtatható és a legolcsóbban karbantartható, ezért egység tesztelés A csomagok általában az első olyan eszközök, amelyeket egy csapat felépít. Az adószámítás tesztelése a számlázási modul érintése nélkül egy tipikus felhasználási mód.
An integrációs tesztkábel ellenőrzi, hogy két vagy több modul megfelelően működik-e együtt, és ez az a réteg, ahol az adateltérések és a sikertelen hívások felszínre kerülnek. Ez a réteg a ... részben leírtak szerint működik. integrációs tesztelés a fenti kontextusban, például annak ellenőrzése, hogy egy rendelési szolgáltatás a megfelelő hasznos adatot adja-e át egy fizetési szolgáltatásnak.
A rendszer tesztkábel egy teljes, végponttól végpontig terjedő folyamatot biztosít az interfész, a szolgáltatás és az adatbázis között, így rendszertesztelés megerősítheti, hogy az üzleti szabályok érvényesek, ha minden réteg jelen van. regressziós tesztkábel majd minden változtatás után újra lefuttatja a felhalmozott csomagot, ami létrehozza regressziós teszt praktikus, ha minden egyesítéskor több száz forgatókönyvet kell megismételni.
Teszt kábelköteg eszközök
Ezen típusok mindegyike általában egy meglévő eszközre épül, nem pedig a nulláról. A két klasszikus választás továbbra is az egység szintű keretrendszerek:
- Junit: Használat közben használt eszköz Java
- Nunit: Használatához használt eszköz .NET Framework
E kettőn túl a legtöbb csapat olyan eszközöket is hozzáad, amelyek kiterjesztik a hozzáférést a böngészőre, az API rétegre vagy a terhelési profilra. Az alábbi táblázat a gyakori opciókat az egyes szerepkörökhöz igazítja.
| Szerszám | Legmegfelelőbb | Szerepe a hámban |
|---|---|---|
| JUnit | Java egység- és integrációs csomagok | Kellékillesztőket, szerelvényeket és állításokat biztosít |
| NUnit | C# és VB.NET kód .NET platformon | Ugyanaz a szerep, mint JUnit .NET nyelvekhez |
| Selenium | Böngészőalapú, teljes körű folyamatok | A felhasználói felület rétegének meghajtójaként működik |
| TestNG | Large Java alapozásra szoruló lakosztályokping és párhuzamos futások | Tesztfuttató motorként szolgál |
| PyTest | Python szolgáltatások és API szintű ellenőrzések | A mérkőzések egyszerre szolgálnak zárójelentésként és adatszolgáltatóként is |
| Apache JMeter | Terhelési, stressz- és teljesítményforgatókönyvek | Szintetikus forgalmat generál a tesztelt alkalmazás ellen |
| Postman | REST API-kontract-ellenőrzés | Álszervereket biztosít, amelyek befejezetlen végpontokat helyettesítenek |
Bármelyik kombinációt is választod, a kábelköteg csak akkor térül meg, ha felügyelet nélkül működik, ezért kösd be egy folyamatos integráció munka korán. A lehetőségek szélesebb skálája megtalálható a Guru99 tesztelő eszközök összefoglaló. Egy megkülönböztetés továbbra is zavart okoz, és érdemes tisztázni, mielőtt bármit is választanánk.
Teszt kábelköteg vs teszt keretrendszer
A harness-t és az automatizálási keretrendszert gyakran ugyanazon dologként kezelik, mégis különböző kérdésekre adnak választ: a harness az, ami végrehajtja a tesztet, míg a keretrendszer az a struktúra, amelyben a tesztek megtervezésre kerülnek. Az alábbi táblázat egymás mellé helyezi őket.
| Teszt kábelköteg | Teszt automatizálási keretrendszer |
|---|---|
| A teszt kábelköteg illesztőprogramokból és csonkokból áll, amelyek kis álprogramok, amelyek kölcsönhatásba lépnek a tesztelt szoftverrel | Ez folyamatok, eljárások, hasizomszövetek összessége.trackoncepció és egy olyan környezet, amelyben az automatizált teszteket megtervezik és megvalósítják |
| Nem lehet „Record & Playback” szkriptet írni a Teszt kábelkötegben | A tesztelő ebben a keretben manuálisan is képes „Rögzítés és lejátszás” szkriptet írni |
| A tesztkábel minden olyan információt tartalmaz, amely egy teszt összeállításához és futtatásához szükséges, például tesztesetek, céltelepítési port (TDP), tesztelés alatt álló forrásfájl, csonkok stb. | A tesztautomatizálási keretrendszer olyan információkat tartalmaz, mint a tesztkönyvtár, tesztelőeszközök, automatizált tesztelési gyakorlatok, tesztelési platform stb. |
| A tesztheveder a következő kategóriába sorolható Automatizálási tesztelés Integrációs tesztelés |
Automatizálási keretrendszer példák Adatvezérelt tesztelés Kulcsszóvezérelt tesztelés Modularitásvezérelt tesztelés Hibrid tesztelés Modell alapú tesztelés Code vezérelt tesztelés Viselkedésvezérelt tesztelés |

