Mi az a beágyazott tesztelés a szoftvertesztelésben?

⚡ Okos összefoglaló

A beágyazott tesztelés a szoftver és a hardver funkcionális és nem funkcionális viselkedését együttesen vizsgálja, mivel egy beágyazott rendszerben a kettő szorosan összefügg, és egyik sem validálható önmagában megfelelően.

  • 🔘 Szoros csatlakozás: A hardvert a szoftverrel párhuzamosan építik, így a valódi tesztkörnyezet gyakran későn érkezik.
  • ☑️ Öt szint: A szoftveregység, az integráció, a rendszeregység, a rendszerintegráció és a rendszervalidációs tesztelés mindegyike más-más modulhatárt céloz meg.
  • Biztonsági tétek: Az orvosi, vasúti, légi és autóipari termékek szigorú dokumentált tesztelésen esnek át a tanúsítvány megadása előtt.
  • 🧪 Szürke doboz preferencia: A rendszeregység-tesztelés a belső erőforrásokat és az RTOS üzeneteket figyeli, így a szürke dobozos módszerek a legmegfelelőbbek.
  • 🇧🇷 Fő akadályok: Korlátozott hardverhozzáférés, nyílt forráskódú komponensek, vegyes szoftver- és hardverhibák, valamint a reprodukálhatatlan hibák.

Beágyazott rendszer szoftverének és hardverének beágyazott tesztelése

Mik azok a beágyazott rendszerek?

Beágyazott rendszerek A beágyazott rendszerek elektronikusan vezérelt eszközök, ahol a szoftver és a hardver szorosan összekapcsolódik. A beágyazott rendszerek különféle számítástechnikai eszközöket tartalmazhatnak. Ezek olyan PC-k, amelyek más eszközökbe vannak beépítve alkalmazásspecifikus funkciók működtetésére. A végfelhasználó általában nem is tud a létezésükről.

Beágyazott tesztelés

Beágyazott tesztelés egy tesztelési folyamat a funkcionális és nem működőképes a beágyazott rendszer szoftver- és hardvertulajdonságai, valamint a végtermék hibamentességének biztosítása. A beágyazott tesztelés fő célja annak ellenőrzése és validálása, hogy a beágyazott hardver és szoftver végtermék megfelel-e az ügyfél követelményeinek vagy sem.

A beágyazott szoftverek tesztelése ellenőrzi és biztosítja, hogy az adott szoftver jó minőségű legyen, és megfeleljen az összes követelménynek. A beágyazott szoftverek tesztelése kiváló megközelítés a biztonság garantálására kritikus alkalmazásokban, például orvosi berendezésekben, vasutakban, repülésben, járműiparban stb. A szigorú és gondos tesztelés elengedhetetlen a szoftvertanúsítvány megadásához.

Hogyan kell végrehajtani a beágyazott szoftver tesztelését

Általában négy okból tesztel:

  • A szoftverhibák keresése
  • Segít csökkenteni a kockázatot mind a felhasználók, mind a vállalat számára
  • Csökkentse a fejlesztési és karbantartási költségeket
  • A teljesítmény javítása érdekében

A beágyazott tesztelés során a következő tevékenységeket hajtják végre:

  1. A szoftver bizonyos bemeneti adatokkal rendelkezik.
  2. A szoftver egy része fut.
  3. A szoftver állapotát megfigyelik, és a kimeneteket ellenőrzik a várt tulajdonságok szempontjából, például hogy a kimenet megfelel-e a várt eredménynek, megfelel-e a követelményeknek, és nincsenek-e rendszerösszeomlások.

Beágyazott szoftvertesztelési típusok

Alapvetően öt tesztelési szint alkalmazható beágyazott szoftverekre.

Szoftveregység tesztelése

Az egységmodul lehet függvény vagy osztály. Az egységtesztelést a fejlesztőcsapat, elsősorban a fejlesztő végzi, és általában peer-lect modellben zajlik. A teszteseteket a modul specifikációja alapján fejlesztik.

Integrációs tesztelés

Integrációs tesztelés két szegmensre osztható:

  • Szoftverintegrációs tesztelés
  • Szoftver/hardver integrációs tesztelés

Végül a hardver- és szoftverkomponensek interakcióját tesztelik. Ez magában foglalhatja a beépített perifériák és a szoftverek közötti interakció vizsgálatát is.

A beágyazott szoftverfejlesztésnek van egy egyedi jellemzője: a szoftver futtatásának tényleges környezete általában a szoftverrel párhuzamosan jön létre. Ez kényelmetlenséget okoz a tesztelésben, mivel az átfogó tesztelés nem végezhető el szimulált körülmények között.

Rendszeregység tesztelése

A tesztelendő modul egy teljes keretrendszer, amely a teljes szoftverkódból, valamint az összes többiből áll. valós idejű operációs rendszer (RTOS) és platformhoz kapcsolódó elemek, mint például a megszakítások, feladatkezelési mechanizmusok, kommunikáció stb. A Point of Control protokoll már nem egy függvény vagy egy metódus meghívása, hanem egy üzenet küldése vagy fogadása az RTOS üzenetsorok segítségével.

A rendszer erőforrásait figyelik annak értékelésére, hogy a rendszer képes-e támogatni a beágyazott rendszer végrehajtását. Ebből a szempontból szürke doboz tesztelés a kedvelt tesztelési módszer. A szervezettől függően a rendszeregység-tesztelés vagy a fejlesztő, vagy egy erre a célra létrehozott rendszerintegrációs csapat feladata.

Rendszerintegrációs tesztelés

A tesztelendő modul egyetlen csomóponton belüli komponensek halmazából indul ki. A vezérlési és megfigyelési pontok (PCO-k) a hálózattal kapcsolatos kommunikációs protokollok és RTOS események, például hálózati üzenetek keverékei. A komponensen kívül egy virtuális tesztelő is betöltheti a csomópont szerepét.

Rendszerérvényesítési tesztelés

A tesztelendő modul egy teljes megvalósítású alrendszer, vagy a teljes beágyazott rendszer. Ezen végső teszt célja a külső entitás funkcionális követelményeinek teljesítése. Fontos megjegyezni, hogy egy külső entitás lehet egy személy, egy eszköz egy telekommunikációs hálózatban, vagy mindkettő.

Különbség: beágyazott tesztelés és szoftverteszt

Az alábbi táblázat összehasonlítja a beágyazott tesztelést a hagyományossal szoftver tesztelés.

Szoftvertesztelés Beágyazott tesztelés
A szoftvertesztelés csak a szoftverre vonatkozik. A beágyazott tesztelés szoftverre és hardverre egyaránt vonatkozik.
A világon átlagosan a tesztelés 90%-a tisztán manuális. fekete doboz tesztelés. A beágyazott tesztelést beágyazott rendszereken vagy chipeken végzik, és lehet fekete doboz vagy fehér dobozos tesztelés.
A tesztelés elsődleges területei a grafikus felhasználói felület ellenőrzései, a funkcionalitás, az érvényesítés és az adatbázis bizonyos szintű tesztelése. A tesztelés elsődleges területei a hardver viselkedésének vizsgálata a kapott bemenetek számának függvényében.
A szoftvertesztelés főként kliens-szerver, web és mobil alapú alkalmazásokon történik. A beágyazott tesztelést általában hardveren végzik.
például, Google Mail, Yahoo Mail, Android alkalmazásokat. pl. az egészségügyi terület gépei, számítógépekben használt mikrovezérlők.

Kihívások: Beágyazott szoftverek tesztelése

Néhány kihívás, amellyel a beágyazott szoftverek tesztelése során szembesülhetünk:

Hardverfüggőség

A hardverfüggőség a beágyazott szoftverek tesztelése során felmerülő fő nehézségek közé tartozik a hardverekhez való korlátozott hozzáférés miatt. Az emulátorok és szimulátorok azonban nem feltétlenül tükrözik pontosan a tényleges eszköz viselkedését, és téves képet adhatnak a rendszer teljesítményéről és az alkalmazások használhatóságáról.

Nyílt forráskódú szoftver

A beágyazott szoftverkomponensek többsége nyílt forráskódú, nem házon belül készülnek, és nem áll rendelkezésre hozzájuk teljes tesztkészlet. A tesztkombinációk és az ebből eredő forgatókönyvek széles skálája létezik.

Szoftver vs. hardverhibák

Egy másik szempont, amikor frissen létrehozott hardverre fejlesztenek szoftvert. E folyamat során nagy arányban azonosíthatók hardverhibák. A talált hiba nem korlátozódik a szoftverre. A hardverrel is összefüggésben lehet.

Reprodukálható hibák

Beágyazott rendszerek esetén a hibákat nehezebb reprodukálni vagy újra létrehozni. Ez arra kényszeríti a beágyazott tesztelési eljárást, hogy minden hiba előfordulását lényegesen magasabbra értékelje, mint egy standard esetben, és annyi adatot gyűjtsön, amennyi ésszerűen szükséges a hiba okának megtalálásához.

Folyamatos szoftverfrissítések

A beágyazott rendszerek rendszeres szoftverfrissítéseket igényelnek, például kernelfrissítéseket, biztonsági javításokat, különböző eszközillesztőket stb. A szoftverfrissítésekkel kapcsolatos korlátozások megnehezítik a hibák azonosítását. Ezenkívül növelik a build és a telepítési eljárás jelentőségét.

GYIK

A tipikus rendszerek statikus elemzést, C és C típusú egységtesztelési hámokat kombinálnak. C++, busz analizátorok, tracelektronikusan működő hibakeresők és hardveresen integrált áramkörök, valamint teszt automatizálás így a regressziós csomagok felügyelet nélkül futnak.

A hardveres hurok (HIL) valódi firmware-t futtat a valódi vezérlőn, miközben egy szimulátor biztosítja a környező üzem által előállított jeleket, olyan hibafeltételeket gyakorolva, amelyek fizikailag nem biztonságosak.

Egy szimulátor modellezi a viselkedést és lefuttatja a hoszt buildet; egy emulátor reprodukálja a cél utasításkészletet, így a valódi bináris fájl végrehajtódik. Egyik sem reprodukálja pontosan az analóg és időzítési effektusokat.

Az IEC 61508 az általános funkcionális biztonsági szabvány. Az ágazati verziók közé tartozik az ISO 26262 a közúti járművekre, a DO-178C a repülőgép-szoftverekre, az IEC 62304 az orvostechnikai eszközökre és az EN 50128 a vasúti irányítástechnikára.

A mesterséges intelligencia modellek triázzák a nagy naplót és tracA berendezés által előállított mennyiségek, az ismétlődő hibák klaszterezése, és annak rangsorolása, hogy mely regressziós teszteket futtassák először a ritka hardvereken. A biztonsági megítélés a mérnökre bízza.

GitHub másodpilóta C vagy C típusú tesztkábelek és -ágak vázlatai C++ modulokat és felgyorsítja az ismétlődő mockolást. A regiszter viselkedését és az időzítési korlátokat, amelyeket korábban még nem látott, továbbra is ellenőrizni kell.

A legrosszabb eset végrehajtási idejének elemzésével, műszerezett tracAz e a célgépen fut, a stressz pedig csúcsterhelésen. A határidő-mulasztásokat és a megszakítási késleltetést valós hardveren mérik, amit a gazdagép-buildek nem tudnak reprodukálni.

C olvasás és C++, jártasság a kapcsolási rajzokban és logikai analizátorokban, jártasság az RTOS koncepciókban és buszprotokollokban, valamint szkriptelés. Kapcsolódó munkák, mint például IoT tesztelés ugyanarra az alapra támaszkodik.

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