Mi az alkatrésztesztelés? Technikák, példa Tesztesetek

⚡ Okos összefoglaló

A komponenstesztelés az alkalmazás minden egyes részét külön-külön ellenőrzi anélkül, hogy integrálná azokat a többivel, így a hibákat egyetlen modulon belül találja meg és javítja ki, mielőtt az összeszerelés megkezdődne.

  • 🧩 Hatály: Egyszerre egy komponens, elszigetelten a körülötte lévő komponensektől.
  • 👥 Tulajdonos: A tesztelők futtatják, miután a fejlesztők befejezték az egységtesztelést.
  • 🔬 CTIS: A kisméretű komponenstesztelés teljesen elkülöníti a komponenst.
  • 🔗 CTIL: A nagyméretű komponenstesztelés megőrzi a függőségeket, legyenek azok valósak vagy szimuláltak.
  • 🧱 Doubles: Egy illesztőprogram hívja meg a komponenst; egy stubot az hív meg.
  • Exit: A naplóban nem marad nyitva kritikus, magas vagy közepes besorolású hiba.

Komponenstesztelési technikák és példa tesztesetek

Mi az alkatrésztesztelés?

Komponens tesztelése egy olyan szoftvertesztelési típus, amelyben minden egyes komponensen külön-külön végeznek tesztelést anélkül, hogy más komponensekkel integrálnák. Architektúra szempontjából más néven modul tesztelés, és egyes források programtesztelésnek nevezik.

Bármely szoftver egészében több komponensből áll, és a komponens szintű tesztelés ezen komponensek egyenkénti tesztelésével foglalkozik. Ez az egyik leggyakoribb fekete doboz tesztelés a minőségbiztosítási csapat által végzett típusok.

Érdemes már a kezdetektől megjegyezni az elnevezéseket. Az ISTQB szószedet a komponenstesztelést és egység tesztelés ugyanazon tesztelési szint szinonimáiként. Sok fejlesztőcsapat, és ez a cikk is, a gyakorlatban különválasztja a kettőt: a fejlesztők egységteszteket futtatnak a saját kódjukon, majd a tesztelők komponensteszteket futtatnak a leszállított builden. A cikk végén található összehasonlító táblázat bemutatja ezt a gyakorlati különbséget.

Amint az alábbi ábra mutatja, a komponenstesztelésnek megvan a saját tesztelési stratégiája és tesztelési terve, amelyben a szoftver vagy alkalmazás minden részét külön-külön vizsgálják. Minden komponenshez egy tesztforgatókönyv definiálva van, amelyet ezután magas szintű tesztesetekre, végül pedig alacsony szintű részletességűekre bont teszt esetek előfeltételekkel.

Komponenstesztelési hierarchia a tesztelési stratégiától az alacsony szintű tesztesetekig

A „komponens tesztelés” kifejezés használata területenként és szervezetenként változó. A felfogásbeli eltérés leggyakoribb okai az alábbi három.

  1. A választott fejlesztési életciklus-modell típusa
  2. A tesztelt szoftver vagy alkalmazás összetettsége
  3. A tesztelést az alkalmazás többi komponensétől elkülönítve vagy anélkül végzik-e

A szoftvertesztelési életciklus számos tesztműterméket eredményez, azaz a tesztelési tevékenységek során létrehozott és használt dokumentumokat. Ezek közé tartozik a tesztelési irányelv és a tesztelési stratégia, amelyek meghatározzák, hogy milyen típusú tesztelést használnak, és milyen mélyreható a tesztelés egy adott projektben.

Ki végzi a komponens tesztelést

A komponens tesztelést tesztelők végzik. Az egységtesztelést a fejlesztők végzik, akik egy adott függvényt vagy eljárást tesztelnek. Miután az egységtesztelés befejeződött, következik a komponenstesztelés, és a tesztelők átveszik a felelősséget érte.

Mikor kell elvégezni a komponens tesztelését

A komponens tesztelést röviddel azután hajtják végre, hogy a fejlesztők elvégezték az egységtesztelést, és a build kikerült a tesztelőcsapathoz. Ezt a buildet UT-buildnek, vagy Unit Testing buildnek nevezik. Ebben a fázisban minden komponens fő funkcióit tesztelik.

Belépési kritériumok az alkatrészek teszteléséhez

  • Kidolgozták és egységtesztelésnek vetették alá az UT-felépítésben minimálisan szerepeltetendő komponensek készletét.

Kilépési feltételek az alkatrészek teszteléséhez

  • Minden komponens funkciója a leírtaknak megfelelően működik.
  • Nincsenek kritikus, magas vagy közepes súlyosságú vagy prioritású nyitott hibák a rendszerben. hibanapló.

Alkatrészvizsgálati technikák

A tesztelési szint mélysége alapján a komponenstesztelést kétféleképpen kategorizálják.

  1. CTIS – Alkatrésztesztelés kicsiben
  2. CTIL – Komponenstesztelés nagyméretű rendszerekben

CTIS – Alkatrésztesztelés kicsiben

A komponenstesztelés elvégezhető a tesztelt alkalmazás többi komponensétől elkülönítve vagy anélkül. Amikor a többi komponens elkülönítésével végzik, akkor röviden komponenstesztelésnek nevezzük.

Példa 1: Egy öt különböző weboldallal rendelkező weboldalon az egyes weboldalak külön-külön és a többi komponenstől elkülönítve történő tesztelése kis részben komponens tesztelésnek minősül.

Példa 2: Az alább látható guru99.com kezdőlap számos összetevőt tartalmaz, például a Kezdőlap, a Tesztelés, SAP, Web, Tanulni kell!, Big Data, Élő projektek és Blog.

Guru99 főoldali navigációs menü, amelyet különálló tesztelhető komponensként kezelnek

Bármely szoftver sok hasonló komponensből épül fel, és minden komponensnek megvannak a saját alkomponensei. A 2. példában felsorolt ​​egyes modulok külön-külön történő tesztelése, a többi komponenssel való integrációjuk figyelembevétele nélkül, röviden komponenstesztelésnek minősül.

A Tesztelés legördülő menü megnyitásakor megjelennek a Tesztelés összetevő alösszetevői: Kézi tesztelés, SZAPPUI, QTP, JUnit, Selenium, Tesztmenedzsment és Mobil tesztelésAz alábbi pillanatképen ezek az alkomponensek pirossal vannak kiemelve.

Tesztelés legördülő menü, pirossal kiemelve az alkomponenseivel

CTIL – Komponenstesztelés nagyméretű rendszerekben

A tesztelt alkalmazás többi komponensétől való elkülönítés nélkül végzett komponenstesztelést általános komponenstesztelésnek nevezzük.

Egy példa világítja meg a különbséget. Tegyük fel, hogy egy alkalmazás három komponensből áll: A komponensből, B komponensből és C komponensből.

A fejlesztő elkészítette a B komponenst, és tesztelni szeretné. A B komponens teljes körű teszteléséhez annak egyes funkciói az A komponenstől, mások pedig a C komponenstől függenek, ahogy az az alábbi ábrán is látható.

A B komponenst úgy tesztelték, hogy az A komponenst egy meghajtó, a C komponenst pedig egy csonk helyettesítette.

A funkcionalitási folyamat A → B → C, ami azt jelenti, hogy a B komponens mind A-tól, mind C-től függ. Ebben a folyamatban a csonk a meghívott függvény, a meghajtó pedig a hívó függvény.

Az A és a C komponenst még nem fejlesztették ki. A B komponens teljes teszteléséhez az A és a C komponenst szükség szerint egy meghajtóval és egy csonkkal helyettesítik, így a két hiányzó darab álobjektumként szolgál, amíg a valódiak meg nem jelennek.

  • Csonk: A tesztelt komponens meghív egy csonkot. A C komponens még nem áll készen, ezért egy csonk helyettesíti, és a B által várt válaszokat adja vissza.
  • Vezető: Egy illesztőprogram meghívja a tesztelt komponenst. Az A komponens még nem áll készen, ezért egy illesztőprogram helyettesíti, és a szükséges bemenetekkel meghívja a B komponenst.

Példa tesztesetek az alkatrészek teszteléséhez

Az alábbi két weboldal funkcionális szempontból összefügg egymással, ami hasznos komponenspárrá teszi őket a teszteléshez.

Az 1. weboldal a demóbanki oldal bejelentkezési oldala.

Bejelentkezési oldal komponens felhasználói azonosító és jelszó mezőkkel

Amikor a felhasználó érvényes felhasználói azonosítót és jelszót ad meg, majd a küldés gombra kattint, az oldal a demóbank webhelyének kezdőlapjára navigál, amely a következőképpen látható.

Vezetői kezdőlap komponens navigációs hivatkozásokkal és képekkel

Itt a bejelentkezési oldal az egyik komponens, a kezdőlap pedig a másik. Az egyes oldalak működésének külön-külön történő tesztelése komponenstesztelés.

Komponenstesztelési forgatókönyvek a 1. weboldalon:

  • Adjon meg érvénytelen felhasználói azonosítót, és ellenőrizze, hogy megjelenik-e egy felhasználóbarát figyelmeztetés a végfelhasználó számára.
  • Adjon meg érvénytelen felhasználói azonosítót és jelszót, kattintson a Visszaállítás gombra, és ellenőrizze, hogy a felhasználói azonosító és jelszó mezők üresek-e.
  • Adjon meg egy érvényes felhasználónevet és jelszót, majd kattintson a Bejelentkezés gombra.

Komponenstesztelési forgatókönyvek a 2. weboldalon:

  • Ellenőrizze, hogy a vezetői oldal üdvözlő üzenete megjelenik-e a kezdőlapon.
  • Ellenőrizd, hogy a weboldal bal oldalán található összes link kattintható-e.
  • Ellenőrizze, hogy a kezelő azonosítója megjelenik-e a kezdőlap közepén.
  • Ellenőrizze a három különböző kép meglétét a kezdőlapon, az ábra szerint.

Egységtesztelés vs komponensteszt

Az alábbi táblázat összefoglalja, hogy a két szint hogyan különbözik a mindennapi gyakorlatban.

Egység tesztelése Alkatrészek tesztelése
Az egyes programok és modulok tesztelése annak igazolására, hogy a program a specifikációnak megfelelően fut. Minden egyes objektum vagy a szoftver egy részének külön-külön történő tesztelése, más objektumoktól való elkülönítéssel vagy anélkül.
Tervdokumentumok alapján validálva. Tesztkövetelmények és használati esetek alapján validálva.
Fejlesztők készítették. Tesztelők készítették.
Először kész. A fejlesztőknél az egységtesztelés befejezése után történik.
A hibákat általában a helyszínen javítják, és nem rögzítik hivatalosan. A hibákat naplózzák, és tracvégigment a hibakezelési folyamaton.

GYIK

A kockázat csökkentése, az alkatrész funkcionális és nem funkcionális viselkedésének ellenőrzése, a minőségébe vetett bizalom kiépítése, hibák felkutatása és azok további kialakulásának megelőzése.ping magasabb tesztszintekre.

A modellek egy komponens con-t olvasnaktracés javasoljon érvénytelen bemeneteket, határértékeket és hibautakat, amelyeket egy manuális futtatás általában elhibáz. A tesztelő továbbra is megerősíti az összes várható eredményt a végrehajtás előtt.

Igen. Egy előre elkészített válaszokat visszaadó csonk és egy fix bemeneteket ellátó illesztőprogram olyan formulás kód, amit egy asszisztens gyorsan ír. Annak eldöntése, hogy mely válaszok realisztikusak, továbbra is emberi feladat.

A komponenstesztelés egy komponenst önmagában vizsgál. Komponens integrációs tesztelés megvizsgálja a komponensek közötti interfészeket és interakciókat, és a komponenstesztelés után lefut.

Codeszintű keretrendszerek, mint például JUnit, TestNG, NUnit és pytest, valamint felhasználói felület komponens futtatók, mint például Cypress Komponenstesztelés, Storybook és Jest. Mindegyik beleillik egy automatizálás csővezeték.

A duplázott objektumok felépítése és karbantartása. Egy, a valódi komponenstől eltávolodott csonk elrejti a hibákat az integrációig, így minden szimulált választ újra kell vizsgálni, amint a valódi függőség megérkezik.

Ez megfordítja a sorrendet. Az eseteket még a komponens létezése előtt megírják és automatizálják, majd kódot adnak hozzá, amíg azok sikeresen át nem mennek. A komponens már a tesztkészlettel érkezik.

Mindkettő, attól függően, hogy ki futtatja. A tesztelők fekete dobozban dolgoznak a komponens specifikációjával szemben, míg a kódhozzáféréssel rendelkező fejlesztők... fehér doboz lefedettség ugyanazon az alkatrészen belül.

Foglald össze ezt a bejegyzést a következőképpen: