Egységteszt oktatóanyag: Mi az, típusok, eszközök és amp; Teszt PÉLDA

Tartalomjegyzék:

Anonim

Mi az egység tesztelése?

AZ EGYSÉG TESZTELÉSE egyfajta szoftveres tesztelés, ahol a szoftver egyes egységeit vagy alkatrészeit tesztelik. A cél annak ellenőrzése, hogy a szoftverkód minden egysége a várt módon teljesít-e. Az egység tesztelése az alkalmazás fejlesztői (kódolási fázis) alatt történik. Az egységtesztek elkülönítik a kód egy részét és ellenőrzik annak helyességét. Az egység lehet egyedi funkció, módszer, eljárás, modul vagy objektum.

SDLC, STLC, V Model esetén az egység tesztelése az integráció tesztelése előtt végzett első szintű teszt. Az egységteszt egy WhiteBox tesztelési technika, amelyet általában a fejlesztő hajt végre. Bár a gyakorlati világban az idő túllépése vagy a fejlesztők vonakodása a tesztek miatt, a minőségbiztosítási mérnökök egység tesztet is végeznek.

Ebben az oktatóanyagban megtanulja-

  • Miért egység tesztelés?
  • Hogyan kell elvégezni az egység tesztelését
  • Egységtesztelési technikák
  • Egységtesztelő eszközök
  • Tesztvezérelt fejlesztés (TDD) és egység tesztelése
  • Egység tesztelő mítosz
  • Egységtesztelő előny
  • Egységtesztelési hátrányok
  • Egység tesztelése a legjobb gyakorlatokról

Miért egység tesztelés?

Az egység tesztelése azért fontos, mert a szoftverfejlesztők néha megpróbálnak időt megtakarítani minimális egység teszteléssel, és ez mítosz, mert a nem megfelelő egység tesztelése magas költségekhez vezet a hibák javításához a rendszer tesztelése, az integrációs tesztelés és az alkalmazás felépítése után még a béta tesztelés során is. Ha a korai fejlesztés során elvégzik a megfelelő egység tesztelést, az végül időt és pénzt takarít meg.

Itt vannak a legfontosabb okok az egység tesztelésének végrehajtására a szoftverfejlesztésben:

Egység tesztelési szintek
  1. Az egységtesztek segítenek kijavítani a hibákat a fejlesztési ciklus elején és megtakarítani a költségeket.
  2. Segít a fejlesztőknek megérteni a tesztelési kódot, és lehetővé teszi számukra a gyors változtatásokat
  3. A jó egységtesztek projektdokumentációként szolgálnak
  4. Az egységtesztek segítenek a kód újrafelhasználásában. Vigye át a kódot és a teszteket is az új projektjébe. Csípje be a kódot, amíg a tesztek újra lefutnak.

Hogyan kell elvégezni az egység tesztelését

Az egységteszt elvégzéséhez a fejlesztők egy kódrészletet írnak egy adott funkció tesztelésére a szoftveralkalmazásban. A fejlesztők elkülöníthetik ezt a funkciót a szigorúbb tesztelés érdekében, amely felesleges függőségeket tár fel a tesztelt funkció és más egységek között, így a függőségek kiküszöbölhetők. A fejlesztők általában az UnitTest keretrendszert használják az automatizált tesztesetek fejlesztésére az egység teszteléséhez.

Az egység tesztelése kétféle

  • Kézikönyv
  • Automatizált

Az egység tesztelése általában automatizált, de mégis manuálisan elvégezhető. A szoftvertervezés nem előnyben részesíti a másikat, de az automatizálást részesítik előnyben. Az egység tesztelésének kézi megközelítése lépésről lépésre alkalmazhatja az oktatási dokumentumot.

Az automatizált megközelítés

  • Egy fejlesztő a kód tesztelését írja le az alkalmazásba, csak a funkció tesztelésére. Később megjegyzést fűznek hozzá, és végül eltávolítják a tesztkódot, amikor az alkalmazást telepítik.
  • A fejlesztő elkülönítheti a funkciót is, hogy szigorúbb tesztelje. Ez egy alaposabb egységtesztelési gyakorlat, amely magában foglalja a kód másolását és beillesztését a saját tesztelési környezetébe, mint a természetes környezetét. A kód elkülönítése segít felesleges függőségek feltárásában a tesztelt kód és a termék egyéb egységei vagy adatterei között. Ezek a függőségek aztán kiküszöbölhetők.
  • A kódoló általában az UnitTest keretrendszert használja automatizált tesztesetek fejlesztésére. Az automatizálási keretrendszer használatával a fejlesztő a tesztbe kódolja a kritériumokat, hogy ellenőrizze a kód helyességét. A tesztesetek végrehajtása során a keret naplózza a sikertelen teszteseteket. Számos keretrendszer automatikusan megjelöli és összefoglalva jelentést is tesz ezekről a sikertelen tesztesetekről. A meghibásodás súlyosságától függően a keret leállíthatja a későbbi tesztelést.
  • Az egységtesztelés munkafolyamata: 1) Tesztesetek létrehozása 2) Áttekintés / átdolgozás 3) Alapszint 4) Tesztesetek végrehajtása.

Egységtesztelési technikák

Az egységtesztelési technikákat főként három részre osztják: fekete doboz tesztelés, amely magában foglalja a felhasználói felület tesztelését a bemenettel és kimenettel együtt, fehér doboz tesztelés, amely magában foglalja a szoftveralkalmazás funkcionális viselkedésének tesztelését, és a szürke doboz teszt, amelyet a teszt végrehajtására használnak. készletek, tesztelési módszerek, tesztesetek és kockázatelemzés elvégzése.

Az egység tesztelésénél használt kód lefedettség technikákat az alábbiakban soroljuk fel:

  • Nyilatkozati lefedettség
  • Döntési lefedettség
  • Ágfedés
  • Állapot lefedettség
  • Véges állapotú gép lefedettsége

További információ: https://www.guru99.com/code-coverage.html

Egységteszt példa: Modell objektumok

Az egységteszt a létrehozott álobjektumokon alapul, hogy tesztelje azokat a kódrészeket, amelyek még nem tartoznak a teljes alkalmazáshoz. Gúnyobjektumok töltik ki a program hiányzó részeit.

Például lehet egy olyan funkciója, amelyhez változókra vagy objektumokra van szükség, amelyek még nincsenek létrehozva. Az egységtesztelés során ezeket kizárólag a kód adott részén elvégzett egységvizsgálat céljából létrehozott álobjektumok formájában számolják el.

Egységtesztelő eszközök

Számos automatizált egységteszt szoftver áll rendelkezésre az egység tesztelésének segítésére. Az alábbiakban bemutatunk néhány példát:

  1. Junit: A Junit egy ingyenesen használható tesztelő eszköz, amelyet a Java programozási nyelvhez használnak. Állításokat nyújt a vizsgálati módszer azonosítására. Ez az eszköz először teszteli az adatokat, majd beszúrja őket a kódrészletbe.
  2. NUnit: A NUnit az összes .net nyelvhez széles körben használatos egységtesztelési keretrendszer. Ez egy nyílt forráskódú eszköz, amely lehetővé teszi a szkriptek kézi írását. Támogatja az adatvezérelt teszteket, amelyek párhuzamosan futtathatók.
  3. JMockit: A JMockit egy nyílt forráskódú egységtesztelő eszköz. Ez egy kód lefedettség eszköz, vonallal és útvonal metrikákkal. Lehetővé teszi az API gúnyolását rögzítési és ellenőrzési szintaxissal. Ez az eszköz vonalvezetést, útvonal-lefedettséget és adat-lefedettséget kínál.
  4. EMMA: Az EMMA egy nyílt forráskódú eszköztár Java nyelven írt kódok elemzésére és jelentésére. Az Emma támogatja a lefedettség típusait, mint a módszer, a vonal, az alapblokk. Java alapú, tehát külső könyvtárfüggőségektől mentes, és hozzáférhet a forráskódhoz.
  5. PHPUnit: A PHPUnit egy egység tesztelő eszköz a PHP programozó számára. Kis mennyiségű kódra van szükség, amelyet egységeknek hívnak, és mindegyiket külön tesztelje. Az eszköz lehetővé teszi a fejlesztők számára, hogy előre definiált állítási módszereket alkalmazzanak annak igazolására, hogy a rendszer bizonyos módon viselkedik.

Ez csak néhány a rendelkezésre álló egységtesztelő eszközök közül. Sokkal több van, különösen a C nyelvek és a Java esetében, de biztosan talál egy egység tesztelő eszközt a programozási igényekhez, a használt nyelvtől függetlenül.

Tesztvezérelt fejlesztés (TDD) és egység tesztelése

Az egység tesztelése a TDD-ben magában foglalja a tesztelési keretek széleskörű alkalmazását. Egységes tesztkeretet használnak az automatizált egységtesztek létrehozásához. Az egység tesztelési keretrendszerek nem egyedülállóak a TDD-vel, de elengedhetetlenek ahhoz. Az alábbiakban megnézzük, mit hoz a TDD az egységtesztelés világába:

  • A teszteket a kód előtt írják
  • Nagy mértékben támaszkodhat a tesztelési keretekre
  • Az alkalmazások összes osztályát tesztelik
  • Gyors és egyszerű integráció lehetséges

Egység tesztelő mítosz

Mítosz: Időbe telik, és mindig túllépek. A kódom sziklaszilárd! Nincs szükségem egységvizsgálatokra.

A mítoszok természetüknél fogva hamis feltételezések. Ezek a feltételezések ördögi körhöz vezetnek az alábbiak szerint:

Az igazság az, hogy az egység tesztelése növeli a fejlesztés sebességét.

A programozók úgy gondolják, hogy az Integration Testing minden hibát elkap, és nem hajtja végre az egység tesztet. Miután az egységeket integrálták, nagyon egyszerű hibákat, amelyek nagyon könnyen megtalálhatók és kijavíthatók a tesztelt egységekben, nagyon sokáig kell követni és kijavítani.

Egységtesztelő előny

  • Azok a fejlesztők, akik szeretnék megismerni, hogy az egység milyen funkcionalitást nyújt, és hogyan kell használni, megnézhetik az egység tesztjeit, hogy alaposabban megismerjék az egység API-ját.
  • Az egység tesztelése lehetővé teszi a programozó számára, hogy később átalakítsa a kódot, és ellenőrizze, hogy a modul továbbra is megfelelően működik-e (azaz regressziós tesztelés). Az eljárás az, hogy tesztfunkciókat írunk az összes funkcióhoz és módszerhez, hogy amikor egy változás hibát okoz, akkor gyorsan azonosítható és kijavítható legyen.
  • Az egységteszt moduláris jellege miatt tesztelhetjük a projekt egyes részeit anélkül, hogy megvárnánk mások befejezését.

Egységtesztelési hátrányok

  • Nem várható, hogy az egység tesztelése elkapja a program minden hibáját. Még a legcsekélyebb programokban sem lehet minden végrehajtási utat értékelni
  • Az egység tesztelése természeténél fogva a kód egységére összpontosít. Ezért nem tudja elkapni az integrációs hibákat vagy a rendszerszintű hibákat.

Javasolt egység tesztelés más tesztelési tevékenységekkel együtt.

Egység tesztelése a legjobb gyakorlatokról

  • Egység Teszt esetek legyenek függetlenek. Bármely fejlesztés vagy a követelmények változása esetén az egységvizsgálati eseteket nem szabad befolyásolni.
  • Egyszerre csak egy kódot teszteljen.
  • Kövesse az egység tesztjeinek egyértelmű és következetes elnevezési szokásait
  • Ha bármelyik modulban megváltozik a kód, győződjön meg arról, hogy van egy megfelelő egység Teszteset a modulhoz, és a modul sikeresen teljesíti a végrehajtást
  • Az egységteszt során azonosított hibákat ki kell javítani, mielőtt továbblépnénk az SDLC következő szakaszába
  • Fogadjon el egy "teszt kódként" megközelítést. Minél több kódot ír be tesztelés nélkül, annál több utat kell ellenőriznie a hibák szempontjából.

Összegzés

  • AZ EGYSÉG TESZTELÉSE a szoftver tesztelésének olyan típusa, ahol a szoftver egyes egységeit vagy alkatrészeit tesztelik.
  • Amint láthatja, sok minden részt vehet az egység tesztelésében. Lehet összetett vagy meglehetősen egyszerű, a tesztelt alkalmazás és az alkalmazott tesztelési stratégiák, eszközök és filozófiák függvényében. Az egység tesztelése mindig szükséges valamilyen szinten. Ez bizonyosság.